INHOUDSOPGAWE:
- Stap 1: SmartBin -toerusting
- Stap 2: Vervaardiging van die framboosdoos en die LED -balk
- Stap 3: Die deksel deel
- Stap 4: Sagteware -onderdeel en data -verkryging
Video: SmartBin: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Die hoofdoel van hierdie projek is om 'n elektroniese toestel te skep wat ten minste een Raspberry Pi gebruik. Die span bestaan uit 5 toekomstige meganiese ingenieurs en een outomatiseringsingenieur. Ons projek bestaan uit die maak van 'n asblik wat outomaties oop en toemaak, veroorsaak deur 'n voetbeweging onder die bewegingsdetektor in die middel aan die voorkant van die asblik. 'N Wifi USB -stick word gebruik om data na 'n webwerf te stuur. Hierdie asblik word 'The SmartBin' genoem. Die humoristiese video hierbo stel ons innoverende SmartBin bekend.
Om hierdie projek en hierdie merkwaardige SmartBin uit te voer, was verskeie instrumente nodig:
- 'N Meter
- Sterk gom
- 'N Plakband
- 'N Houtsaag
- 'N Skroewedraaier
- 'N Boormasjien
- 'N Klem
- N mes
Stap 1: SmartBin -toerusting
Die SmartBin bestaan uit groen, oranje en rooi LED -ligte wat op 'n armatuur aan die linkerkant van die bak geplaas word, wat aandui hoe gevul dit is. Hierdie ligte sal duidelik sigbaar wees en sal die gebruiker waarsku wanneer dit nodig is om die asblik te vervang. Die programmeertaal wat gebruik word, is Python. Die gemete vulvlak van die asblik word na die volgende webwerf gestuur:
Hier is die elemente wat gebruik is, maar u kan maklik 'n alternatiewe oplossing vind:
- 1 Bakkie (asbak vir "swaai omslag")
- 1 Servomotor om die as oop te maak
- 1 Framboos Pi 2
- 2 kragtoevoer (5V selfoonlaaier en 6V kragtoevoer) om die Raspberry Pi en die servomotor te voorsien
- 1 Ultrasone sensor om die vulvlak van die asblik te meet
- Sommige LED's om die vulvlak te vertoon (4 groen, 2 oranje en 1 rooi)
- 1 Ultrasoniese bewegingsdetektor om 'n beweging op te spoor
- 1 16 GB SD-kaart
- Elektriese weerstande (10.000 ohm, 2000 ohm en 1000 ohm)
- 1 WiFi -usb -stick om draadlose oordrag na die webwerf moontlik te maak.
- 1 Broodbord en 'n paar framboos kabels
Die geskatte vervaardigingsprys is 80 €.
Stap 2: Vervaardiging van die framboosdoos en die LED -balk
Gebruik 'n houtsaag om die framboosbak te vervaardig. Maak elke kant van die boks vas met klinknaels om dit skoon te laat lyk. Soos die naam aandui, bevat die boks nie net die Raspberry Pi nie, maar ook die bewegingsensor wat u onderaan sal plaas. Sodra die boks gebou is, verf dit in dieselfde kleur as die asblik. 3D -druktegnologie kan gebruik word om hierdie boks te skep.
Vir die vervaardiging van die LED -balk, gebruik 'n elektriese kanaal waarin u gate boor sodat die LED -ligte geïnstalleer kan word. Die LED -balk moet ook geverf word. As alles gereed is, installeer die LED's in die kanaal en maak die elektriese verbinding. Let op die nommer van elke LED -kabel met kleeflint. Dit sal u help om elke LED tydens die bedrading te identifiseer.
Heg laastens die boks en die LED -balk aan die voorkant van u asblik.
Stap 3: Die deksel deel
Met betrekking tot die deksel van die bak, is die eerste stap om die servomotor aan die deksel te plak. 'N Uitbreiding van die hefboom moet vooraf gemaak word. Die hefboom raak 'n stop wat voorheen met die hand gemaak is. Maak 'n skroefdoos aan die deksel vas en maak 'n gaatjie daarin om die ultrasoniese sensor in die regte posisie te hou. Maak seker dat u die kabels korrek op die deksel met band vasmaak.
Stap 4: Sagteware -onderdeel en data -verkryging
Wat die sagtewaregedeelte betref, het ons die python -programmeertaal gebruik. Die program word gestoor op die SD-kaart wat deur die Raspberry Pi bestuur sal word wanneer dit aangeskakel word. Die bedradingskema is hierbo beskikbaar. Die Gpio -penne -beeld is beskikbaar vir al die framboosoorte op die onderstaande skakel:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Dit is moontlik om 'n ultrasoniese sensor te gebruik om die bewegingsdetektor te vervang; u hoef net 'n 'if -lus' in die kode te skep.
Soos hierbo genoem, word die data rakende die vlak waarop die asblik gevul word, oorgedra na 'n webwerf wat op wix.com geskep is. Op hierdie webwerf kan u verskillende oortjies vind wat spanlede, hardeware- en sagtewareaanbiedings bymekaarmaak … Die interessante oortjie is eintlik die blad 'Databasis' wat die inligting rakende die hoeveelheid asblik regstreeks uit die SmartBin versamel en 'n grafiek met die data skep. Die grafiek toon die evolusie van die vulvlak. Dit is moontlik om data van die webwerf af te sien of af te laai. Die onderstaande skakel is die webwerf wat ons gebruik het en sal u wys hoe u met python op Google -blaaie kan lees en skryf:
www.makeuseof.com/tag/read-write-google-sh…
Oor die 'outorun-gedeelte' van die kode, skryf in die terminale: sudo nano/etc/xdg/lxsession/LXDE-pi/autostart
Skryf dan aan die einde van die skrif wat pas oopgemaak is, hierdie twee kode lyne: python /home/pi/main.py & python /home/pi/csvcontrol.py &
Om die aurorun te stoor, druk: C trl + O Druk dan: Enter Dan, druk: C trl + X
Skryf as laaste kode reël: sudo herlaai
U kan ook die aanhangsel aflaai, die volledige python -kode wat vir die projek gebruik is. Beide kodes word gelyktydig uitgevoer!
Hier is die main.py -kode:
voer RPi. GPIO in as GPIO invoer datatyd invoer tyd invoer csv
GPIO.setmode (GPIO. BCM)
GPIO.setwarnings (Onwaar)
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
Echo = 24
GPIO.setup (Trig, GPIO. OUT)
GPIO.setup (Echo, GPIO. IN)
GPIO.setwarnings (Onwaar)
GPIO.output (5, onwaar)
GPIO.output (6, Onwaar) GPIO.output (13, Onwaar) GPIO.output (19, Onwaar) GPIO.output (20, Onwaar) GPIO.output (21, Onwaar) GPIO.output (26, Onwaar)
GPIO.output (Trig, Onwaar)
timeset = time.time ()
afstand = 100 geheue = 0 tyd. slaap (2) pwm.start (12,5)
terwyl dit waar is:
timetac = time.time () as GPIO.input (capteurP) en timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) time.sleep (0.2) memory = -0.5 pwm. ChangeDutyCycle (0) timetac = time.time () time.sleep (0.5) as timetac-timeset> 15 of memory> 0.4: if memory> 0.4: pwm. ChangeDutyCycle (2.5) time.sleep (1) for x in range (0, 1): # GPIO.output (Trig, Waar) time.sleep (0.01) GPIO.output (Trig, Onwaar)
terwyl GPIO.input (Echo) == 0 en timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()
terwyl 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 = rond ((60 afstand)*5/6, 1) met oop ('capteur.csv', 'w') as csvfile: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (datetime.datetime.now (), '%Y-%m-%d%H:%M:%S') druk ('Time: {0} Quantitee: {1}'. format (time_str, dis)) capteurwriter. writerow ([time_str, dis]) memory = -0.1 as afstand <52.5: GPIO.output (5, True) anders: GPIO.output (5, Onwaar) as afstand <45: GPIO.output (6, True) anders: GPIO.output (6, Onwaar) as afstand <37.5: GPIO.output (13, True) anders: GPIO.output (13, Onwaar) as afstand <30: GPIO.output (19, True) anders: GPIO.output (19, Onwaar) as afstand <22.5: GPIO.output (20, True) anders: GPIO.output (20, Onwaar) as afstand <15: GPIO.output (21, True) anders: GPIO.output (21, Onwaar) as afstand <7.5: GPIO.output (26, True) anders: GPIO.output (26, Onwaar)
Hier is die csvcontrol.py -kode. Moenie vergeet om die gemaakte ".json" -lêer in dieselfde gids van die main.py. Die ".json" lêer word geskep met Google API. 'N Kiekie is op die foto's beskikbaar.
import datetimeimport time import csv import gspread
vanaf oauth2client.service_account invoer ServiceAccountCredentials
van tyd af invoer slaap invoer terugvoer
timec2 = 'lol'
terwyl True: time.sleep (5) loc = ('capteur.csv') met open (loc) as csvfile: readCSV = csv.reader (csvfile, delimiter = ',') vir ry in readCSV: print (ry [0]) timec = ry [0] druk (ry [1]) afstand = ry [1] afstand = vlot (str (afstand)) as timec2! = timec: timec2 = timec print ('Tyd: {0} Quantitee: { 1} '. -Formaat (tyd, afstand))
SCOPES = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ ry "]
credentials = ServiceAccountCredentials.fr_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (credentials) wks = gc.open ("grafiek"). sheet1 wks = wks.append_row ((timec, afstand))
Aanbeveel:
Spelontwerp in vyf stappe: 5 stappe
Spelontwerp in fliek in 5 stappe: Flick is 'n baie eenvoudige manier om 'n speletjie te maak, veral iets soos 'n legkaart, visuele roman of avontuurlike spel
Gesigsopsporing op Raspberry Pi 4B in 3 stappe: 3 stappe
Gesigsopsporing op Raspberry Pi 4B in 3 stappe: in hierdie instruksies gaan ons gesigsopsporing uitvoer op Raspberry Pi 4 met Shunya O/S met behulp van die Shunyaface-biblioteek. Shunyaface is 'n biblioteek vir gesigherkenning/opsporing. Die projek het ten doel om die vinnigste opsporing en herkenningssnelheid te bereik met
DIY Vanity Mirror in eenvoudige stappe (met LED -strookligte): 4 stappe
DIY Vanity Mirror in eenvoudige stappe (met behulp van LED Strip Lights): In hierdie pos het ek 'n DIY Vanity Mirror gemaak met behulp van die LED strips. Dit is regtig cool, en u moet dit ook probeer
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): 6 stappe
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): wil u u vriende skrik en 'n skreeu geraas maak tydens Halloween? Of wil u net 'n goeie grap maak? Hierdie pop-up skerm van Zombies kan dit doen! In hierdie instruksies sal ek u leer hoe u maklik Zombies kan spring deur Arduino te gebruik. Die HC-SR0
SmartBin: 8 stappe
SmartBin: Este é ons kan ook 'n stelsel van intellektuele kollegas gebruik, maar ons kan nie meer inligting oor hierdie kwessies kry nie, maar ook 'n aantal inligting wat ons kan aanbied