Cuprins:
- Pasul 1: Echipament SmartBin
- Pasul 2: Fabricarea cutiei cu zmeură și a barei LED
- Pasul 3: partea capacului
- Pasul 4: Partea software și achiziția de date
Video: SmartBin: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Scopul principal al acestui proiect este de a crea un dispozitiv electronic care utilizează cel puțin un Raspberry Pi. Echipa este formată din 5 viitori ingineri mecanici și un inginer automatizat. Proiectul nostru constă în realizarea unui coș de gunoi care se deschide și se închide automat declanșat de o mișcare a piciorului sub detectorul de mișcare situat în centru pe partea din față a coșului de gunoi. Un stick USB Wifi este utilizat pentru a trimite date pe un site web. Acest coș se numește „SmartBin”. Videoclipul plin de umor de mai sus prezintă inovatorul nostru SmartBin.
Pentru a realiza acest proiect și acest remarcabil SmartBin, au fost necesare mai multe instrumente:
- Un metru
- Adeziv puternic
- O bandă adezivă
- Un ferăstrău pentru lemne
- O șurubelniță
- O mașină de găurit
- O clemă
- Un cuțit
Pasul 1: Echipament SmartBin
SmartBin-ul este compus din lumini LED verzi, portocalii și roșii, care sunt plasate pe un dispozitiv din partea stângă a coșului, care va indica cât de umplut este. Aceste lumini vor fi vizibile în mod clar și vor avertiza utilizatorul atunci când este necesar să înlocuiți geanta de gunoi. Limbajul de programare folosit este Python. Nivelul de umplere măsurat al coșului este transmis la următorul site web:
Iată elementele care au fost utilizate, dar puteți găsi cu ușurință o soluție alternativă:
- 1 coș (coșul "capacul oscilant")
- 1 Servomotor pentru a deschide coșul
- 1 Raspberry Pi 2
- 2 surse de alimentare (încărcător de telefon mobil 5V și sursă de alimentare 6V) pentru alimentarea Raspberry Pi și servomotor
- 1 Senzor cu ultrasunete pentru a măsura nivelul de umplere al coșului
- Unele LED-uri pentru a afișa nivelul de umplere (4 verzi, 2 portocalii și 1 roșu)
- 1 Detector de mișcare cu ultrasunete pentru a detecta o mișcare
- 1 card SD de 16 GB
- Rezistoare electrice (10.000 Ohmi, 2000 Ohmi și 1000 Ohmi)
- 1 stick USB WiFi pentru a permite transmisia wireless către site.
- 1 Breadboard și câteva cabluri Raspberry
Prețul de fabricație estimat este de 80 €.
Pasul 2: Fabricarea cutiei cu zmeură și a barei LED
Pentru a fabrica cutia cu zmeură, utilizați ferăstrău pentru lemn. Fixați fiecare parte a cutiei cu nituri pentru a face să arate curat. După cum sugerează și numele, această cutie va conține nu numai Raspberry Pi, ci va include și senzorul de mișcare pe care îl veți plasa în partea de jos. Odată ce cutia este construită, vopsiți-o în aceeași culoare cu coșul. Tehnologia de imprimare 3D ar putea fi utilizată pentru a crea această cutie.
Pentru fabricarea barei cu LED-uri, utilizați o conductă electrică în care faceți găuri pentru a permite instalarea luminilor LED. Bara LED trebuie, de asemenea, vopsită. Când totul este gata, instalați LED-urile în conductă și efectuați conexiunea electrică. Acordați atenție numerotării corespunzătoare a fiecărui cablu LED cu bandă adezivă. Vă va ajuta să identificați fiecare LED în timpul cablării.
În cele din urmă, atașați cutia și bara LED la partea din față a coșului de gunoi.
Pasul 3: partea capacului
În ceea ce privește capacul coșului, primul pas este lipirea servomotorului de capac. O prelungire a pârghiei trebuie făcută anterior. Pârghia va atinge o oprire care a fost realizată anterior manual. Atașați o cutie cu șurub la capac și faceți o gaură în el pentru a menține senzorul cu ultrasunete în poziția corectă. Asigurați-vă că atașați corect cablurile pe capac cu bandă.
Pasul 4: Partea software și achiziția de date
În ceea ce privește partea software, am folosit limbajul de programare python. Programul este salvat în cardul SD, care va fi rulat de Raspberry Pi când este pornit. Schema de cablare este disponibilă mai sus. Imaginea pinilor Gpio este disponibilă pentru toate tipurile de zmeură pe linkul de mai jos:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Este posibil să utilizați un senzor cu ultrasunete pentru a înlocui detectorul de mișcare, trebuie doar să creați un cod „if loop” în cod.
După cum sa menționat mai sus, datele referitoare la nivelul la care este umplut coșul sunt transmise către un site web creat pe wix.com. Pe acest site, puteți găsi diferite file care adună membrii echipei, prezentare hardware și software, … fila interesantă este de fapt fila „Baza de date” care colectează informațiile referitoare la cantitatea de gunoi direct de pe SmartBin și creează un grafic cu datele. Graficul afișează evoluția nivelului de umplere. Este posibil să vedeți sau să descărcați date de pe site. Link-ul de mai jos este site-ul web pe care l-am folosit și vă va arăta cum să citiți și să scrieți pe foi Google cu python:
www.makeuseof.com/tag/read-write-google-sh…
În ceea ce privește „partea de execuție automată” a codului, scrieți în terminal: sudo nano / etc / xdg / lxsession / LXDE-pi / autostart
Apoi, la sfârșitul scriptului care tocmai a fost deschis, scrieți aceste două linii de cod: python /home/pi/main.py & python /home/pi/csvcontrol.py &
Pentru a salva aurorun, apăsați: C trl + O Apoi, apăsați: Enter Apoi, apăsați: C trl + X
Scrieți ca ultimă linie de cod: reporniți sudo
De asemenea, puteți descărca atașamentul care este codul complet Python utilizat pentru proiect. Ambele coduri sunt rulate în același timp!
Iată codul main.py:
import RPi. GPIO ca GPIOimport datetime import timp import csv
GPIO.setmode (GPIO. BCM)
GPIO.setwarnings (Fals)
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
Ecoul = 24
GPIO.setup (Trig, GPIO. OUT)
GPIO.setup (Echo, GPIO. IN)
GPIO.setwarnings (Fals)
GPIO.output (5, fals)
GPIO.output (6, Fals) GPIO.output (13, Fals) GPIO.output (19, Fals) GPIO.output (20, Fals) GPIO.output (21, Fals) GPIO.output (26, Fals)
GPIO.output (Trig, Fals)
timeset = time.time ()
distanță = 100 memorie = 0 timp.sleep (2) pwm.start (12.5)
în timp ce este adevărat:
schedulac = time.time () if GPIO.input (capteurP) și schedulac-timeset0.9: pwm. ChangeDutyCycle (2.5) time.sleep (0.2) memory = -0.5 pwm. ChangeDutyCycle (0) schedulac = time.time () time.sleep (0,5) dacă orar-timp> 15 sau memorie> 0,4: dacă memorie> 0,4: pwm. ChangeDutyCycle (2.5) time.sleep (1) pentru x în intervalul (0, 1): # GPIO.output (Trig, Adevărat) time.sleep (0,01) GPIO.output (Trig, False)
în timp ce GPIO.input (Echo) == 0 și schedulac-timeset <17: schedulac = time.time () debutImpulsion = time.time ()
în timp ce GPIO.input (Echo) == 1:
finImpulsion = time.time () if schedulac-timeset <17: distance1 = round ((finImpulsion - debutImpulsion) * 340 * 100/2, 1) distance2 = distance if (distance1-distance2) <1 and (distance2-distance1) 0.4: dis = round ((60-distance) * 5/6, 1) with open ('capteur.csv', 'w') as csvfile: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (datetime.datetime.now (), '% Y-% m-% d% H:% M:% S') print ('Time: {0} Quantitee: {1}'. format (time_str, dis)) capteurwriter. 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) dacă distanța <37,5: GPIO.output (13, True) altceva: GPIO.output (13, False) dacă distanța <30: GPIO.output (19, True) altceva: GPIO.output (19, False) if distance <22,5: GPIO.output (20, True) else: GPIO.output (20, False) if distance <15: GPIO.output (21, True) else: GPIO.output (21, False) dacă distanța <7,5: ieșire GPIO (26, adevărat) altceva: ieșire GPIO (26, fals)
Iată codul csvcontrol.py. Nu uitați să lipiți fișierul „.json” creat în același director al main.py. Fișierul „.json” este creat cu Google API. O captură de ecran este disponibilă în imagini.
import datetime import timp import csv import gspread
din oauth2client.service_account import ServiceAccountCredentials
din timp import somn import traceback
timec2 = 'lol'
în timp ce True: time.sleep (5) loc = ('capteur.csv') cu open (loc) ca csvfile: readCSV = csv.reader (csvfile, delimiter = ',') pentru rând în readCSV: print (rând [0]) timec = rând [0] print (rând [1]) distance = rând [1] distance = float (str (distanță)) if timec2! = timec: timec2 = timec print ('Time: {0} Quantitee: { 1} '. Format (timec, distanță))
SCOPES = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ conduce"]
acreditări = ServiceAccountCredentials.from_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (acreditări) wks = gc.open ("grafic"). sheet1 wks = wks.append_row ((timec, distanță))
Recomandat:
Cum să faci 4G LTE dublă antenă BiQuade Pași simpli: 3 pași
Cum să fac 4G LTE Double BiQuade Antenna Pași simpli: De cele mai multe ori mă confrunt, nu am o putere de semnal bună pentru lucrările mele de zi cu zi. Asa de. Căut și încerc diferite tipuri de antenă, dar nu funcționează. După un timp pierdut, am găsit o antenă pe care sper să o fac și să o testez, pentru că nu se bazează pe principiul
Design de joc în Flick în 5 pași: 5 pași
Designul jocului în Flick în 5 pași: Flick este un mod foarte simplu de a crea un joc, în special ceva de genul puzzle, roman vizual sau joc de aventură
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino - Pași cu pași: 4 pași
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino | Pași cu pas: în acest proiect, voi proiecta un senzor senzor de parcare inversă Arduino Car Circuit folosind senzorul cu ultrasunete Arduino UNO și HC-SR04. Acest sistem de avertizare auto bazat pe Arduino poate fi utilizat pentru navigație autonomă, autonomie robotică și alte r
Detectarea feței pe Raspberry Pi 4B în 3 pași: 3 pași
Detectarea feței pe Raspberry Pi 4B în 3 pași: În acest instructabil vom efectua detectarea feței pe Raspberry Pi 4 cu Shunya O / S folosind Biblioteca Shunyaface. Shunyaface este o bibliotecă de recunoaștere / detectare a feței. Proiectul își propune să obțină cea mai rapidă viteză de detectare și recunoaștere cu
SmartBin: 8 pași
SmartBin: Este é um proiect pentru un sistem inteligent de colete, nu se poate merge õ es de lixo recebem dados das lixeiras, identificand o cantitate de lixo prezent in fiecare uma delas, e uma rota de coleta tra ç ada, com base nas informa