Სარჩევი:

SmartBin: 4 ნაბიჯი
SmartBin: 4 ნაბიჯი

ვიდეო: SmartBin: 4 ნაბიჯი

ვიდეო: SmartBin: 4 ნაბიჯი
ვიდეო: Guardforce's Smart Waste Bin 2024, ნოემბერი
Anonim
Image
Image

ამ პროექტის მთავარი მიზანია შექმნას ელექტრონული მოწყობილობა, რომელიც იყენებს მინიმუმ ერთ Raspberry Pi- ს. გუნდი შედგება 5 მომავალი მექანიკოსის და ერთი ავტომატიზაციის ინჟინრისგან. ჩვენი პროექტი შედგება ნაგვის ურნის დამზადებისაგან, რომელიც იხსნება და იხურება ავტომატურად, რაც გამოწვეულია ფეხის მოძრაობით მოძრაობის დეტექტორის ქვეშ, რომელიც მდებარეობს ცენტრში ნაგვის ურნის წინა მხარეს. Wifi USB ჯოხი გამოიყენება ვებ – გვერდზე მონაცემების გასაგზავნად. ამ ურნას ჰქვია "The SmartBin". იუმორისტული ვიდეო წარმოგიდგენთ ჩვენს ინოვაციურ SmartBin- ს.

ამ პროექტისა და ამ შესანიშნავი SmartBin– ის განსახორციელებლად რამდენიმე ინსტრუმენტი იყო საჭირო:

  • მეტრი
  • ძლიერი წებო
  • წებოვანი ლენტი
  • ხის ხერხი
  • ხრახნიანი
  • საბურღი მანქანა
  • დამჭერი
  • Დანა

ნაბიჯი 1: SmartBin აღჭურვილობა

SmartBin აღჭურვილობა
SmartBin აღჭურვილობა
SmartBin აღჭურვილობა
SmartBin აღჭურვილობა

SmartBin შედგება მწვანე, ნარინჯისფერი და წითელი LED ნათურებისგან, რომლებიც მოთავსებულია სანაგვეზე მარცხენა მხარეს, რაც მიუთითებს რამდენად არის შევსებული. ეს შუქები აშკარად ხილული იქნება და გააფრთხილებს მომხმარებელს, როდესაც საჭიროა ნაგვის ჩანთის გამოცვლა. პროგრამირების ენა გამოიყენება პითონი. ურნის შევსების დონე გადაეცემა შემდეგ ვებგვერდს:

აქ არის ელემენტები, რომლებიც გამოყენებულია, მაგრამ თქვენ შეგიძლიათ მარტივად იპოვოთ ალტერნატიული გადაწყვეტა:

  • 1 ურნა ("საქანელის საფარი" ურნა)
  • 1 სერვომოტორული ნაგვის გასახსნელად
  • 1 ჟოლო პი 2
  • 2 დენის წყარო (5V მობილური ტელეფონის დამტენი და 6V დენის წყარო) ჟოლოს პიისა და სერვომოტორების მიწოდებისთვის
  • 1 ულტრაბგერითი სენსორი ურნის შევსების დონის გასაზომად
  • ზოგიერთი LED აჩვენებს შევსების დონეს (4 მწვანე, 2 ნარინჯისფერი და 1 წითელი)
  • 1 ულტრაბგერითი მოძრაობის დეტექტორი მოძრაობის გამოსავლენად
  • 1 16 გბ SD ბარათი
  • ელექტრული რეზისტორები (10.000 Ohms, 2000 Ohms და 1000 Ohms)
  • 1 WiFi USB ჯოხი ვებსაიტზე უკაბელო გადაცემის გასააქტიურებლად.
  • 1 პური და ჟოლოს რამდენიმე კაბელი

წარმოების სავარაუდო ფასია 80 ევრო.

ნაბიჯი 2: ჟოლოს ყუთისა და LED ბარის დამზადება

ჟოლოს ყუთისა და LED ბარის წარმოება
ჟოლოს ყუთისა და LED ბარის წარმოება
ჟოლოს ყუთისა და LED ბარის წარმოება
ჟოლოს ყუთისა და LED ბარის წარმოება
ჟოლოს ყუთისა და LED ბარის წარმოება
ჟოლოს ყუთისა და LED ბარის წარმოება

ჟოლოს ყუთის დასამზადებლად გამოიყენეთ ხის ხერხი. მიამაგრეთ ყუთის ყველა მხარე მოქლონებით, რათა გამოიყურებოდეს სუფთა. როგორც მისი სახელი გვთავაზობს, ამ ყუთში ის იქნება არა მხოლოდ Raspberry Pi, არამედ ასევე იქნება მოძრაობის სენსორი, რომელსაც თქვენ განათავსებთ ბოლოში. ყუთის აშენების შემდეგ, შეღებეთ იგი იმავე ფერით, როგორც ურნა. 3D ბეჭდვის ტექნოლოგია შეიძლება გამოყენებულ იქნას ამ ყუთის შესაქმნელად.

LED ბარის წარმოებისთვის გამოიყენეთ ელექტრული სადინარი, რომელშიც ბურღავთ ხვრელებს, რათა შესაძლებელი იყოს LED ნათურების დაყენება. LED ბარი ასევე უნდა იყოს შეღებილი. როდესაც ყველაფერი მზად არის, დააინსტალირეთ LED- ები სადინარში და გააკეთეთ ელექტრული კავშირი. ყურადღება მიაქციეთ თითოეული LED კაბელის სწორად დანომვლას წებოვანი ლენტით. ეს დაგეხმარებათ თითოეული LED- ის იდენტიფიცირება გაყვანილობის დროს.

დაბოლოს, მიამაგრეთ ყუთი და LED ზოლი თქვენი ურნის წინა მხარეს.

ნაბიჯი 3: სახურავის ნაწილი

სახურავის ნაწილი
სახურავის ნაწილი
სახურავის ნაწილი
სახურავის ნაწილი

ურნის სახურავთან დაკავშირებით, პირველი ნაბიჯი არის სერვომოტორული სახურავის წებო. ბერკეტის გაფართოება უნდა გაკეთდეს ადრე. ბერკეტი მოხვდება გაჩერებას, რომელიც ადრე იყო ხელნაკეთი. მიამაგრეთ ხრახნიანი ყუთი სახურავზე და გააკეთეთ ხვრელი მასში, რათა დაიჭიროთ ულტრაბგერითი სენსორი სწორ მდგომარეობაში. დარწმუნდით, რომ სწორად მიამაგრეთ კაბელები სახურავზე ლენტით.

ნაბიჯი 4: პროგრამული უზრუნველყოფის ნაწილი და მონაცემთა მოპოვება

პროგრამული უზრუნველყოფის ნაწილი და მონაცემთა მოპოვება
პროგრამული უზრუნველყოფის ნაწილი და მონაცემთა მოპოვება
პროგრამული უზრუნველყოფის ნაწილი და მონაცემთა მოპოვება
პროგრამული უზრუნველყოფის ნაწილი და მონაცემთა მოპოვება
პროგრამული უზრუნველყოფის ნაწილი და მონაცემთა მოპოვება
პროგრამული უზრუნველყოფის ნაწილი და მონაცემთა მოპოვება

რაც შეეხება პროგრამულ ნაწილს, ჩვენ გამოვიყენეთ პითონის პროგრამირების ენა. პროგრამა ინახება SD ბარათში, რომელსაც გაუშვებს Raspberry Pi, როდესაც ის ჩართულია. გაყვანილობის სქემა ხელმისაწვდომია ზემოთ. Gpio ქინძისთავების სურათი ხელმისაწვდომია ჟოლოს ყველა ტიპისთვის ქვემოთ მოცემულ ბმულზე:

www.raspberrypi-spy.co.uk/2012/06/simple-g…

შესაძლებელია ულტრაბგერითი სენსორის გამოყენება მოძრაობის დეტექტორის შესაცვლელად, თქვენ უბრალოდ უნდა შექმნათ "თუ მარყუჟი" კოდში.

როგორც ზემოთ აღვნიშნეთ, მონაცემები, თუ რა დონეზეა სავსე ურნა გადაეცემა wix.com– ზე შექმნილ ვებგვერდს. ამ ვებგვერდზე შეგიძლიათ იპოვოთ სხვადასხვა ჩანართი, სადაც თავმოყრილია გუნდის წევრები, აპარატურისა და პროგრამული უზრუნველყოფის პრეზენტაცია… საინტერესო ჩანართი არის „მონაცემთა ბაზის“ჩანართი, რომელიც აგროვებს ინფორმაციას უშუალოდ SmartBin– დან ნაგვის რაოდენობის შესახებ და ქმნის გრაფიკს მონაცემებით რა გრაფიკი აჩვენებს შევსების დონის ევოლუციას. შესაძლებელია ვებგვერდიდან მონაცემების ნახვა ან ჩამოტვირთვა. ქვემოთ მოყვანილი ბმული არის ვებგვერდი, რომელიც ჩვენ გამოვიყენეთ და გაჩვენებთ როგორ კითხულობთ და წერთ პითონთან ერთად Google ფურცლებზე:

www.makeuseof.com/tag/read-write-google-sh…

რაც შეეხება კოდის "autorun ნაწილს", ჩაწერეთ ტერმინალში: sudo nano/etc/xdg/lxsession/LXDE-pi/autostart

შემდეგ, სკრიპტის ბოლოს, რომელიც ახლახანს გაიხსნა, ჩაწერეთ ეს ორი კოდის ხაზი: python /home/pi/main.py & python /home/pi/csvcontrol.py &

Aurorun- ის შესანახად დააჭირეთ: C trl + O შემდეგ, დააჭირეთ: Enter შემდეგ, დააჭირეთ: C trl + X

ჩაწერეთ როგორც ბოლო კოდის ხაზი: sudo reboot

თქვენ ასევე შეგიძლიათ ჩამოტვირთოთ დანართი, რომელიც არის პითონის სრული კოდი, რომელიც გამოიყენება პროექტისათვის. ორივე კოდი მუშაობს ერთდროულად!

აქ არის main.py კოდი:

იმპორტი RPi. GPIO როგორც GPIOimport თარიღი დრო იმპორტი დრო იმპორტი csv

GPIO.setmode (GPIO. BCM)

GPIO.setwarnings (ყალბი)

capteurP = 7

სერვო = 17

GPIO.setup (servo, GPIO. OUT)

GPIO.setup (capteurP, GPIO. IN)

pwm = GPIO. PWM (17, 50)

GPIO.setup (5, GPIO. OUT)

GPIO.setup (6, GPIO. OUT) GPIO.setup (13, GPIO. OUT) GPIO.setup (19, GPIO. OUT) GPIO.setup (20, GPIO. OUT) GPIO.setup (21, GPIO. OUT) GPIO.setup (26, GPIO. OUT)

გააქტიურება = 23

ექო = 24

GPIO.setup (Trig, GPIO. OUT)

GPIO.setup (ექო, GPIO. IN)

GPIO.setwarnings (ყალბი)

GPIO.output (5, ყალბი)

GPIO.output (6, false) GPIO.output (13, false) GPIO.output (19, false) GPIO.output (20, false) GPIO.output (21, false) GPIO.output (26, false)

GPIO.output (Trig, False)

timeset = დრო. დრო ()

მანძილი = 100 მეხსიერება = 0 დრო. ძილი (2) pwm. დაწყება (12.5)

მართალია:

timetac = time.time () თუ GPIO.input (capteurP) და timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) დრო. ძილი (0.2) მეხსიერება = -0.5 pwm. ChangeDutyCycle (0) timetac = დრო. დრო () დრო. ძილი (0.5) თუ timetac-timeset> 15 ან მეხსიერება> 0.4: თუ მეხსიერება> 0.4: pwm. ChangeDutyCycle (2.5) დრო. ძილი (1) x დიაპაზონში (0, 1): # GPIO.output (Trig, ჭეშმარიტი) დრო. ძილი (0.01) GPIO. გამომავალი (გააქტიურება, ყალბი)

ხოლო GPIO.input (Echo) == 0 და timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()

ხოლო GPIO.input (ექო) == 1:

finImpulsion = დრო. დრო () თუ timetac-timeset <17: distance1 = რაუნდი ((finImpulsion-debutImpulsion) * 340 * 100 /2, 1) distance2 = მანძილი if (distance1-distance2) <1 და (distance2-distance1) 0.4: dis = მრგვალი ((60 მანძილი)*5/6, 1) ღია ('capteur.csv', 'w') როგორც csvfile: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (datetime.datetime.now (), '%Y-%m-%d%H:%M:%S') ბეჭდვა ('დრო: {0} რაოდენობრივი: {1}'. ფორმატი (time_str, dis)) capteurwriter. authorow ([time_str, dis]) მეხსიერება = -0.1 თუ მანძილი <52.5: GPIO.output (5, True) სხვა: GPIO.output (5, False) თუ მანძილი <45: GPIO.output (6, True) სხვა: GPIO.output (6, False) თუ მანძილი <37.5: GPIO.output (13, True) სხვა: GPIO.output (13, false) თუ მანძილი <30: GPIO.output (19, True) სხვა: GPIO.output (19, მცდარი) თუ მანძილი <22.5: GPIO.output (20, True) სხვა: GPIO.output (20, False) თუ მანძილი <15: GPIO.output (21, True) სხვა: GPIO.output (21, false) თუ მანძილი <7.5: GPIO.output (26, True) სხვა: GPIO.output (26, False)

აქ არის csvcontrol.py კოდი. არ დაგავიწყდეთ ჩასმული ".json" ფაილის ჩასმა main.py- ს იმავე დირექტორიაში. ". Json" ფაილი შექმნილია google API- ით. ეკრანის ანაბეჭდი ხელმისაწვდომია სურათებში.

იმპორტი datetimeimport დრო იმპორტი csv იმპორტი gspread

oauth2client.service_account იმპორტი ServiceAccountCredentials

დროიდან იმპორტი ძილის იმპორტი ტრეკბექი

timec2 = 'lol'

ხოლო True: time.sleep (5) loc = ('capteur.csv') with open (loc) as csvfile: readCSV = csv.reader (csvfile, delimiter = ',') for read row CSV: print (row [0]) timec = row [0] print (row [1]) distance = row [1] distance = float (str (distance)) if timec2! = timec: timec2 = timec print ('Time: {0} Quantitee: { 1} '. ფორმატი (დრო, მანძილი))

SCOPES = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ მართე "]

რწმუნებათა სიგელები = ServiceAccountCredentials.fr_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (credentials) wks = gc.open ("graph"). sheet1 wks = wks.append_row ((timec, distance))

გირჩევთ: