Sadržaj:
- Korak 1: SmartBin oprema
- Korak 2: Proizvodnja kutije za maline i LED trake
- Korak 3: Poklopac
- Korak 4: Softverski dio i akvizicija podataka
Video: SmartBin: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Glavna svrha ovog projekta je stvaranje elektroničkog uređaja koji koristi barem jedan Raspberry Pi. Tim čini 5 budućih mašinskih inženjera i jedan inženjer automatizacije. Naš projekt sastoji se u izradi kante za smeće koja se otvara i zatvara automatski pokrenuta pokretom stopala ispod detektora pokreta koji se nalazi u sredini na prednjoj strani kante za smeće. Wifi USB stick koristi se za slanje podataka na web stranicu. Ova kanta se zove "SmartBin". Gornji humoristični video predstavlja naš inovativni SmartBin.
Za izvođenje ovog projekta i ovog izuzetnog SmartBina bilo je potrebno nekoliko alata:
- Metar
- Snažno ljepilo
- Ljepljiva traka
- Testera za drvo
- Odvijač
- Mašina za bušenje
- Stezaljka
- Nož
Korak 1: SmartBin oprema
SmartBin se sastoji od zelenih, narandžastih i crvenih LED svjetala koja su postavljena na svjetiljku s lijeve strane kante koja pokazuje koliko je napunjena. Ova svjetla će biti jasno vidljiva i upozorit će korisnika kada je potrebno zamijeniti vreću za smeće. Programski jezik koji se koristi je Python. Izmjereni nivo napunjenosti kante prenosi se na sljedeću web stranicu:
Evo elemenata koji su korišteni, ali lako možete pronaći alternativno rješenje:
- 1 korpa (kanta sa "okretnim poklopcem")
- 1 Servomotor za otvaranje kante
- 1 Malina Pi 2
- 2 napajanja (5V punjač za mobilne telefone i 6V napajanje) za napajanje Raspberry Pi i servomotora
- 1 Ultrazvučni senzor za mjerenje napunjenosti kante
- Neke LED diode za prikaz nivoa punjenja (4 zelene, 2 narandžaste i 1 crvena)
- 1 Ultrazvučni detektor pokreta za detekciju pokreta
- 1 SD kartica od 16 GB
- Električni otpornici (10.000 Ohma, 2000 Ohma i 1000 Ohma)
- 1 WiFi USB štapić za bežični prijenos na web stranicu.
- 1 Breadboard i neki kablovi od maline
Procijenjena proizvodna cijena je 80 €.
Korak 2: Proizvodnja kutije za maline i LED trake
Za proizvodnju kutije od malina upotrijebite pilu za drvo. Pričvrstite svaku stranu kutije zakovicama kako bi izgledala čisto. Kao što mu ime govori, ovaj okvir neće sadržavati samo Raspberry Pi, već će uključivati i senzor pokreta koji ćete postaviti na dno. Nakon što je kutija izgrađena, obojite je u istu boju kao kantu. Za izradu ove kutije mogla bi se koristiti tehnologija 3D štampanja.
Za izradu LED šipki upotrijebite električni kanal u kojem izbušite rupe kako biste omogućili ugradnju LED svjetala. LED traka se takođe mora ofarbati. Kad je sve spremno, instalirajte LED diode u kanal i napravite električnu vezu. Obratite pažnju na pravilno numeriranje svakog LED kabela ljepljivom trakom. Pomoći će vam pri prepoznavanju svake LED diode tijekom ožičenja.
Na kraju, pričvrstite kutiju i LED traku na prednju stranu kante.
Korak 3: Poklopac
Što se tiče poklopca kante, prvi korak je lijepljenje servomotora na poklopac. Proširenje poluge mora biti prethodno napravljeno. Poluga će udariti u graničnik koji je prethodno bio ručno izrađen. Pričvrstite kutiju s vijcima na poklopac i napravite rupu u njemu kako bi ultrazvučni senzor držao u pravom položaju. Provjerite jeste li pravilno pričvrstili kabele na poklopac trakom.
Korak 4: Softverski dio i akvizicija podataka
Što se tiče programskog dijela, koristili smo programski jezik python. Program se sprema na SD karticu koju će Raspberry Pi pokrenuti kada je uključena. Shema ožičenja dostupna je gore. Slika Gpio pinova dostupna je za sve vrste malina na donjoj poveznici:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Moguće je koristiti ultrazvučni senzor za zamjenu detektora pokreta, samo trebate stvoriti "if petlju" u kodu.
Kao što je gore spomenuto, podaci o razini napunjenosti kante prenose se na web stranicu napravljenu na wix.com. Na ovoj web stranici možete pronaći različite kartice koje okupljaju članove tima, hardversku i softversku prezentaciju … Zanimljiva kartica je zapravo kartica "Baza podataka" koja prikuplja podatke o količini smeća izravno iz SmartBina i stvara grafikon s podacima. Grafikon prikazuje evoluciju nivoa punjenja. Moguće je vidjeti ili preuzeti podatke sa web stranice. Donja veza je web stranica koju smo koristili i pokazat će vam kako čitati i pisati na google tablicama s pythonom:
www.makeuseof.com/tag/read-write-google-sh…
Što se tiče "autorun dijela" koda, upišite u terminal: sudo nano/etc/xdg/lxsession/LXDE-pi/autostart
Zatim, na kraju skripte koja se upravo otvorila, napišite ove dvije linije koda: python /home/pi/main.py & python /home/pi/csvcontrol.py &
Da biste sačuvali aurorunu, pritisnite: C trl + O Zatim pritisnite: Enter Zatim pritisnite: C trl + X
Zapišite kao posljednju liniju koda: sudo reboot
Takođe ste u mogućnosti da preuzmete privitak koji predstavlja potpuni python kôd koji se koristi za projekat. Oba koda se izvode istovremeno!
Evo koda main.py:
uvoz RPi. GPIO kao GPIOimport datum -vreme uvoz vreme uvoza csv
Način rada GPIO.set (GPIO. BCM)
GPIO.setwarnings (False)
capteurP = 7
servo = 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)
Trig = 23
Odjek = 24
GPIO.setup (Trig, GPIO. OUT)
GPIO.setup (Echo, GPIO. IN)
GPIO.setwarnings (False)
GPIO.output (5, Netačno)
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 = time.time ()
udaljenost = 100 memorija = 0 vrijeme.spavanje (2) pwm.start (12.5)
dok je True:
timetac = time.time () ako je GPIO.input (capteurP) i timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) time.sleep (0.2) memorija = -0.5 pwm. ChangeDutyCycle (0) timetac = time.time () time.sleep (0.5) ako je timetac-timeset> 15 ili memorija> 0.4: ako je memorija> 0.4: pwm. ChangeDutyCycle (2.5) time.sleep (1) za x u rasponu (0, 1): # GPIO.output (Trig, Tačno) time.sleep (0.01) GPIO.output (Trig, False)
dok je GPIO.input (Echo) == 0 i timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()
dok je GPIO.input (Echo) == 1:
finImpulsion = time.time () ako je timetac-timeset <17: distance1 = round ((finImpulsion-debutImpulsion) * 340 * 100 /2, 1) distance2 = distance if (distance1-distance2) <1 and (distance2-distance1) 0.4: dis = okruglo ((60 udaljenosti)*5/6, 1) sa otvorenim ('capteur.csv', 'w') kao csv datoteka: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (datetime.datetime.now (), '%Y-%m-%d%H:%M:%S') print ('Vrijeme: {0} Količine: {1}'. format (time_str, dis)) capteurwriter. writerow ([time_str, dis]) memorija = -0,1 ako je udaljenost <52,5: GPIO.izlaz (5, Tačno) drugo: GPIO.izlaz (5, Netačno) ako je udaljenost <45: GPIO.izlaz (6, Tačno) drugo: GPIO.output (6, False) ako je udaljenost <37,5: GPIO.output (13, True) inače: GPIO.output (13, False) if distance <30: GPIO.output (19, True) else: GPIO.output (19, Netačno) ako je udaljenost <22,5: GPIO.izlaz (20, Tačno) drugo: GPIO.izlaz (20, Netačno) ako je udaljenost <15: GPIO.izlaz (21, Tačno) inače: GPIO.izlaz (21, Netačno) ako je udaljenost <7,5: GPIO.izlaz (26, Tačno) drugo: GPIO.izlaz (26, Netačno)
Evo koda csvcontrol.py. Ne zaboravite zalijepiti kreiranu ".json" datoteku u isti direktorij main.py. Datoteka ".json" kreirana je s google API -jem. Snimak ekrana je dostupan na slikama.
import datetimeimport time import csv import gspread
iz oauth2client.service_account unesite ServiceAccountCredentials
from time import sleep import traceback
timec2 = 'lol'
dok je True: time.sleep (5) loc = ('capteur.csv') sa otvorenim (loc) kao csvfile: readCSV = csv.reader (csvfile, delimiter = ',') za red u readCSV: print (red [0]) timec = row [0] print (row [1]) distance = row [1] distance = float (str (distance)) if timec2! = timec: timec2 = timec print ('Vrijeme: {0} Količina: { 1} '. Format (timec, udaljenost))
SCOPES = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ voziti "]
vjerodajnice = ServiceAccountCredentials.from_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (vjerodajnice) wks = gc.open ("grafikon"). sheet1 wks = wks.append_row ((timec, udaljenost))
Preporučuje se:
Dizajn igre brzim pokretom u 5 koraka: 5 koraka
Dizajn igre u Flick -u u 5 koraka: Flick je zaista jednostavan način da napravite igru, posebno nešto poput zagonetke, vizuelnog romana ili avanturističke igre
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: 3 koraka
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: U ovom uputstvu ćemo izvršiti otkrivanje lica na Raspberry Pi 4 sa Shunya O/S koristeći biblioteku Shunyaface. Shunyaface je biblioteka za prepoznavanje/otkrivanje lica. Cilj projekta je postići najbržu brzinu otkrivanja i prepoznavanja sa
Kako napraviti brojač koraka?: 3 koraka (sa slikama)
Kako napraviti brojač koraka?: Nekada sam se dobro snašao u mnogim sportovima: hodanje, trčanje, vožnja bicikla, igranje badmintona itd. Volim jahanje da bih brzo putovao. Pa, pogledaj moj trbušni trbuh … Pa, u svakom slučaju, odlučujem ponovo početi vježbati. Koju opremu treba pripremiti?
SmartBin: 8 koraka
SmartBin: Este é um projeto para um sistem inteligente de coletas, no qual os caminh õ es de lixo recebem dados das lixeiras, identificando a quantidade de lixo presente em cada uma delas, e uma rota de coleta tra ç ada, com base nas informa
Broj koraka / koraka: 3 koraka
পেনড্রাইভ / মেমোরি কার্ডে ভাইরাসের ভাইরাসের হারিয়ে সমাধান সমাধান সমাধান সমাধান সমাধান পেনড্রাইভ পেনড্রাইভ পেনড্রাইভ পেনড্রাইভ মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি এখন এখন এখন।।।।।। Zaštita podataka, pristup prečicama / virusima