Innholdsfortegnelse:
- Trinn 1: SmartBin -utstyr
- Trinn 2: Produksjon av bringebærboksen og LED -stangen
- Trinn 3: Lokkdelen
- Trinn 4: Programvaredel og datainnsamling
Video: SmartBin: 4 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Hovedformålet med dette prosjektet er å lage en elektronisk enhet som bruker minst en Raspberry Pi. Teamet består av 5 fremtidige mekaniske ingeniører og en automatiseringsingeniør. Prosjektet vårt består av å lage en søppelbøtte som åpnes og lukkes automatisk utløst av en fotbevegelse under bevegelsesdetektoren i midten på forsiden av søppelbøtten. En Wifi USB -pinne brukes til å sende data til et nettsted. Denne bingen kalles "The SmartBin". Den humoristiske videoen ovenfor introduserer vår innovative SmartBin.
For å gjennomføre dette prosjektet og denne bemerkelsesverdige SmartBin, var flere verktøy nødvendig:
- En meter
- Sterkt lim
- En tape
- En tresag
- En skrutrekker
- En boremaskin
- En klemme
- En kniv
Trinn 1: SmartBin -utstyr
SmartBin består av grønne, oransje og røde LED -lys som er plassert på et armatur på venstre side av beholderen som vil indikere hvor fylt den er. Disse lysene vil være godt synlige og varsle brukeren når det er nødvendig å bytte søppelsekken. Programmeringsspråket som brukes er Python. Det målte fyllingsnivået til beholderen overføres til følgende nettsted:
Her er elementene som har blitt brukt, men du kan enkelt finne en alternativ løsning:
- 1 kasse ("svingdeksel")
- 1 Servomotor for å åpne beholderen
- 1 Raspberry Pi 2
- 2 strømforsyninger (5V mobiltelefon lader og 6V strømforsyning) for å forsyne Raspberry Pi og servomotoren
- 1 Ultralydsensor for å måle fyllingsnivået på beholderen
- Noen lysdioder viser fyllingsnivået (4 grønne, 2 oransje og 1 røde)
- 1 Ultralydbevegelsesdetektor for å oppdage en bevegelse
- 1 16 GB SD-kort
- Elektriske motstander (10.000 ohm, 2000 ohm og 1000 ohm)
- 1 WiFi usb -pinne for å aktivere trådløs overføring til nettstedet.
- 1 brødbrett og noen bringebærkabler
Den estimerte produksjonsprisen er 80 €.
Trinn 2: Produksjon av bringebærboksen og LED -stangen
Bruk tresag for å produsere bringebærboksen. Fest hver side av esken med nagler for å få den til å se ren ut. Som navnet antyder, inneholder denne boksen ikke bare Raspberry Pi, men vil også inneholde bevegelsessensoren som du vil plassere nederst. Når esken er bygget, må du male den i samme farge som beholderen. 3D -utskriftsteknologi kan brukes til å lage denne boksen.
For fremstilling av LED -stangen, bruk en elektrisk kanal der du borer hull for å la LED -lysene installeres. LED -stangen må også males. Når alt er klart, installerer du lysdiodene i kanalen og gjør den elektriske tilkoblingen. Vær oppmerksom på å nummerere hver LED -kabel med tape. Det vil hjelpe deg med å identifisere hver LED under ledninger.
Fest til slutt esken og LED -stangen foran på beholderen.
Trinn 3: Lokkdelen
Når det gjelder lokket på beholderen, er det første trinnet å lime servomotoren til lokket. En forlengelse av innflytelsen må gjøres tidligere. Spaken treffer et stopp som tidligere var håndlaget. Fest en skruekasse til lokket og lag et hull i den for å holde ultralydsensoren i riktig posisjon. Sørg for at du fester kabler korrekt på lokket med tape.
Trinn 4: Programvaredel og datainnsamling
Når det gjelder programvaredelen, brukte vi programmeringsspråket python. Programmet lagres på SD-kortet som vil bli kjørt av Raspberry Pi når det slås på. Ledningsopplegget er tilgjengelig ovenfor. Gpio pins -bildet er tilgjengelig for alle bringebærtypene på lenken nedenfor:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Det er mulig å bruke en ultralydsensor til å erstatte bevegelsesdetektoren, du trenger bare å lage en "if loop" i koden.
Som nevnt ovenfor, blir dataene om nivået som beholderen fylles til, overført til et nettsted opprettet på wix.com. På dette nettstedet kan du finne forskjellige faner som samler teammedlemmer, maskinvare- og programvarepresentasjon, … Den interessante kategorien er faktisk "Database" -fanen som samler informasjon om mengden søppel direkte fra SmartBin og lager en graf med dataene. Grafen viser utviklingen av fyllingsnivået. Det er mulig å se eller laste ned data fra nettstedet. Lenken nedenfor er nettstedet vi brukte, og viser deg hvordan du leser og skriver på Google -ark med python:
www.makeuseof.com/tag/read-write-google-sh…
Angående "autorun-delen" av koden, skriver du i terminalen: sudo nano/etc/xdg/lxsession/LXDE-pi/autostart
Skriv deretter disse to kodelinjene på slutten av skriptet som nettopp har åpnet: python /home/pi/main.py & python /home/pi/csvcontrol.py &
For å lagre aurorun, trykk: C trl + O Trykk deretter: Enter Deretter, trykk: C trl + X
Skriv som siste kodelinje: sudo reboot
Du kan også laste ned vedlegget som er hele pythonkoden som ble brukt til prosjektet. Begge kodene kjøres samtidig!
Her er main.py -koden:
importer RPi. GPIO som GPIOimport datetime import time import csv
GPIO.setmode (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
Ekko = 24
GPIO.setup (Trig, GPIO. OUT)
GPIO.setup (Echo, GPIO. IN)
GPIO.setwarnings (False)
GPIO.output (5, False)
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 ()
avstand = 100 minne = 0 tid. søvn (2) pwm.start (12,5)
mens det er sant:
timetac = time.time () hvis GPIO.input (capteurP) og timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) time.sleep (0.2) minne = -0.5 pwm. ChangeDutyCycle (0) timetac = time.time () time.sleep (0.5) if timetac-timeset> 15 or memory> 0.4: if memory> 0.4: pwm. ChangeDutyCycle (2.5) time.sleep (1) for x in range (0, 1): # GPIO.output (Trig, True) time.sleep (0,01) GPIO.output (Trig, False)
mens GPIO.input (Echo) == 0 og timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()
mens GPIO.input (Echo) == 1:
finImpulsion = time.time () if timetac-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) if distance <37.5: GPIO.output (13, True) else: GPIO.output (13, False) if distance <30: GPIO.output (19, True) else: GPIO.output (19, Falsk) hvis avstand <22.5: GPIO.output (20, True) else: GPIO.output (20, False) if distance <15: GPIO.output (21, True) else: GPIO.output (21, False) hvis avstand <7,5: GPIO.output (26, True) else: GPIO.output (26, False)
Her er csvcontrol.py -koden. Ikke glem å lime inn den.. Json -filen i den samme katalogen til main.py. ". Json" -filen er opprettet med google API. Et skjermbilde er tilgjengelig på bildene.
import datetimeimport time import csv import gspread
fra oauth2client.service_account import ServiceAccountCredentials
fra tid importere søvn importere spor tilbake
timec2 = 'lol'
while True: time.sleep (5) loc = ('capteur.csv') with open (loc) as csvfile: readCSV = csv.reader (csvfile, delimiter = ',') for rad i readCSV: print (rad [0]) timec = rad [0] print (rad [1]) distanse = rad [1] distanse = float (str (distanse)) hvis timec2! = timec: timec2 = timec print ('Time: {0} Quantitee: { 1} '. -Format (tid, avstand))
SCOPES = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ kjøre"]
credentials = ServiceAccountCredentials.fr_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (credentials) wks = gc.open ("graf"). sheet1 wks = wks.append_row ((timec, distanse))
Anbefalt:
Arduino bilvarslingssystem for omvendt parkering - Trinn for trinn: 4 trinn
Arduino Car Reverse Parking Alert System | Trinn for trinn: I dette prosjektet skal jeg designe en enkel Arduino Car Reverse Parking Sensor Circuit ved hjelp av Arduino UNO og HC-SR04 Ultrasonic Sensor. Dette Arduino -baserte bilreverseringssystemet kan brukes til autonom navigasjon, robotavstand og andre områder
Trinn for trinn PC -bygging: 9 trinn
Steg for trinn PC -bygging: Rekvisita: Maskinvare: HovedkortCPU & CPU -kjøler PSU (strømforsyningsenhet) Lagring (HDD/SSD) RAMGPU (ikke nødvendig) CaseTools: Skrutrekker ESD -armbånd/mathermal pasta m/applikator
Tre høyttalerkretser -- Trinn-for-trinn opplæring: 3 trinn
Tre høyttalerkretser || Trinn-for-trinn opplæring: Høyttalerkretsen styrker lydsignalene som mottas fra miljøet til MIC og sender den til høyttaleren der forsterket lyd produseres. Her vil jeg vise deg tre forskjellige måter å lage denne høyttalerkretsen på:
RC -sporet robot ved hjelp av Arduino - Trinn for trinn: 3 trinn
RC -sporet robot ved bruk av Arduino - Steg for trinn: Hei folkens, jeg er tilbake med et annet kult Robot -chassis fra BangGood. Håper du har gått gjennom våre tidligere prosjekter - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot with Robotic Arms og The Badland Braw
SmartBin: 8 trinn
SmartBin: Este é um projeto para um system 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