Sadržaj:
- Korak 1: SmartBin oprema
- Korak 2: Proizvodnja kutije od malina i LED trake
- Korak 3: Poklopac
- Korak 4: Softverski dio i prikupljanje podataka
Video: SmartBin: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Glavna svrha ovog projekta je stvaranje elektroničkog uređaja koji koristi barem jedan Raspberry Pi. Tim čini 5 budućih strojarskih 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
- Pila za drvo
- Odvijač
- Stroj za bušenje
- Stezaljka
- Nož
Korak 1: SmartBin oprema
SmartBin se sastoji od zelenih, narančastih i crvenih LED svjetala koja su postavljena na svjetiljku s lijeve strane kante koja pokazuje koliko je napunjena. Ta svjetla bit će jasno vidljiva i upozorit će korisnika kada je potrebno zamijeniti vreću za smeće. Programski jezik koji se koristi je Python. Izmjerena razina 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 kanta (kanta za "ljuljanje poklopca")
- 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 razine napunjenosti (4 zelene, 2 naranč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 malinovi kabeli
Procijenjena proizvodna cijena je 80 €.
Korak 2: Proizvodnja kutije od malina 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 ispisa.
Za izradu LED šipke upotrijebite električni kanal u kojem izbušite rupe kako biste omogućili ugradnju LED svjetiljki. LED traka također mora biti obojana. Kad je sve spremno, ugradite LED diode u kanal i napravite električni priključak. Obratite pozornost 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 zalijepiti servomotor na poklopac. Proširenje poluge mora biti prethodno učinjeno. 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. Pazite da kabele pričvrstite trakom na poklopac.
Korak 4: Softverski dio i prikupljanje podataka
Što se tiče programskog dijela, koristili smo programski jezik python. Program se sprema na SD karticu koju će Raspberry Pi pokrenuti kad 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 izrađenu na wix.com. Na ovoj web stranici možete pronaći različite kartice koje okupljaju članove tima, prezentaciju hardvera i softvera,… 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 razvoj razine punjenja. Moguće je vidjeti ili preuzeti podatke s 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 &
Za spremanje aurorune pritisnite: C trl + O Zatim pritisnite: Enter Zatim pritisnite: C trl + X
Napiši kao zadnji kodni redak: sudo reboot
Također možete preuzeti privitak koji je cijeli python kôd koji se koristi za projekt. Oba koda se izvode istovremeno!
Evo koda main.py:
uvoz RPi. GPIO kao GPIOimport datum -vrijeme uvoz vrijeme uvoza csv
Način rada GPIO.set (GPIO. BCM)
GPIO.setwarnings (False)
kapitan P = 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, netoč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 istina:
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) if timetac-timeset> 15 ili memory> 0.4: if memory> 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) s 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čina: {1}'. format (time_str, dis)) pisac zapisivač. writerow ([time_str, dis]) memory = -0.1 if distance <52.5: GPIO.output (5, True) else: GPIO.output (5, False) if distance <45: GPIO.output (6, True) else: 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: Izlaz GPIO. (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)
Ovdje je kôd csvcontrol.py. Ne zaboravite zalijepiti stvorenu ".json" datoteku u isti direktorij main.py. Datoteka ".json" izrađena je s google API -jem. Snimka zaslona dostupna je na slikama.
import datetimeimport time import csv import gspread
iz oauth2client.service_account uvoz ServiceAccountCredentials
from time import sleep import import traceback
timec2 = 'lol'
dok je True: time.sleep (5) loc = ('capteur.csv') s otvorenim (loc) kao csv datoteka: readCSV = csv.reader (csvfile, delimiter = ',') za red u readCSV: print (redak [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čeni:
Dizajn igre brzim pokretom u 5 koraka: 5 koraka
Dizajn igre u Flick -u u 5 koraka: Flick je zaista jednostavan način stvaranja igre, osobito nečega poput zagonetke, vizualnog romana ili avanturističke igre
Broj koraka: 17 koraka
الكشف عن عن أنواع المحاليل: محمدآل سعودالكشف عن المحاليل رابط الفديو
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: 3 koraka
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: U ovom Instructableu ćemo izvršiti detekciju lica na Raspberry Pi 4 sa Shunya O/S pomoću knjižnice Shunyaface. Shunyaface je biblioteka za prepoznavanje/otkrivanje lica. Cilj projekta je postići najbržu brzinu otkrivanja i prepoznavanja s
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 ponovno početi vježbati. Koju opremu trebam pripremiti?
SmartBin: 8 koraka
SmartBin: Este é um projeto para um sistema 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