Indholdsfortegnelse:
- Trin 1: SmartBin -udstyr
- Trin 2: Fremstilling af hindbærkassen og LED -stangen
- Trin 3: Lågdelen
- Trin 4: Softwaredel og dataindsamling
Video: SmartBin: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Hovedformålet med dette projekt er at oprette en elektronisk enhed, der bruger mindst en Raspberry Pi. Teamet består af 5 fremtidige mekaniske ingeniører og en automatiseringsingeniør. Vores projekt består i at lave en skraldespand, der åbner og lukker automatisk udløst af en fodbevægelse under bevægelsesdetektoren placeret i midten på skraldespandens forside. Et Wifi USB -stik bruges til at sende data til et websted. Denne skraldespand kaldes "The SmartBin". Den humoristiske video ovenfor introducerer vores innovative SmartBin.
For at gennemføre dette projekt og denne bemærkelsesværdige SmartBin var flere værktøjer nødvendige:
- En meter
- Kraftig lim
- Et tape
- En træ sav
- En skruetrækker
- En boremaskine
- En klemme
- En kniv
Trin 1: SmartBin -udstyr
SmartBin består af grønne, orange og røde LED -lamper, der er placeret på et armatur i venstre side af skraldespanden, som angiver, hvor fyldt det er. Disse lys vil være tydeligt synlige og vil advare brugeren, når det er nødvendigt at udskifte skraldespanden. Det anvendte programmeringssprog er Python. Skålens målte fyldningsniveau overføres til følgende websted:
Her er de elementer, der er blevet brugt, men du kan nemt finde en alternativ løsning:
- 1 kasse (bakke til "svingdæksel")
- 1 Servomotor til at åbne beholderen
- 1 Raspberry Pi 2
- 2 strømforsyninger (5V mobiltelefon oplader og 6V strømforsyning) til levering af Raspberry Pi og servomotoren
- 1 Ultralydssensor til måling af beholderens påfyldningsniveau
- Nogle lysdioder viser påfyldningsniveauet (4 grønne, 2 orange og 1 røde)
- 1 Ultralyds bevægelsessensor til at registrere en bevægelse
- 1 16 GB SD-kort
- Elektriske modstande (10.000 ohm, 2000 ohm og 1000 ohm)
- 1 WiFi usb -stick for at muliggøre trådløs transmission til webstedet.
- 1 brødbræt og nogle hindbærkabler
Den anslåede fremstillingspris er 80 €.
Trin 2: Fremstilling af hindbærkassen og LED -stangen
Brug træsav til fremstilling af hindbærkassen. Fastgør hver side af kassen med nitter for at få den til at se ren ud. Som navnet antyder, indeholder denne boks ikke kun Raspberry Pi, men indeholder også den bevægelsessensor, som du placerer i bunden. Når kassen er bygget, skal du male den i samme farve som skraldespanden. 3D -printteknologi kan bruges til at oprette denne boks.
Til fremstilling af LED -stangen skal du bruge en elektrisk kanal, hvor du borer huller, så LED -lamperne kan installeres. LED -stangen skal også males. Når alt er klar, skal du installere lysdioderne i kanalen og lave den elektriske forbindelse. Vær opmærksom på at nummerere hver LED -kabler korrekt med tape. Det hjælper dig med at identificere hver LED under ledninger.
Til sidst skal du vedhæfte boksen og LED -stangen på forsiden af din skraldespand.
Trin 3: Lågdelen
Vedrørende låget på beholderen er det første trin at lime servomotoren til låget. En forlængelse af gearingen skal tidligere foretages. Håndtaget rammer et stop, som tidligere var håndlavet. Fastgør en skruekasse til låget og lav et hul i den for at holde ultralydssensoren i den rigtige position. Sørg for korrekt tilslutning af kabler på låget med tape.
Trin 4: Softwaredel og dataindsamling
Med hensyn til softwaredelen brugte vi programmeringssproget python. Programmet gemmes på SD-kortet, som vil blive kørt af Raspberry Pi, når det tændes. Ledningsskemaet er tilgængeligt ovenfor. Gpio pins -billedet er tilgængeligt for alle hindbærtyper på nedenstående link:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Det er muligt at bruge en ultralydssensor til at udskifte bevægelsesdetektoren, du skal bare oprette en "if loop" i koden.
Som nævnt ovenfor, overføres dataene om det niveau, som beholderen er fyldt til, til et websted, der er oprettet på wix.com. På dette websted kan du finde forskellige faner, der samler teammedlemmer, hardware- og softwarepræsentation, … Den interessante fane er faktisk fanen "Database", der indsamler information om mængden af skraldespand direkte fra SmartBin og opretter en graf med dataene. Grafen viser udviklingen af fyldets niveau. Det er muligt at se eller downloade data fra webstedet. Linket herunder er det websted, vi brugte, og viser dig, hvordan du læser og skriver på Google -ark med python:
www.makeuseof.com/tag/read-write-google-sh…
Angående "autorun-delen" af koden, skriv i terminalen: sudo nano/etc/xdg/lxsession/LXDE-pi/autostart
Skriv derefter disse to kodelinjer i slutningen af scriptet, der lige har åbnet: python /home/pi/main.py & python /home/pi/csvcontrol.py &
For at gemme aurorun skal du trykke på: C trl + O Derefter trykke på: Enter derefter trykke på: C trl + X
Skriv som sidste kode linje: sudo reboot
Du kan også downloade vedhæftet fil, som er den fulde python -kode, der bruges til projektet. Begge koder køres på samme tid!
Her er main.py -koden:
importer RPi. GPIO som GPIOimport datetime importtid import csv
GPIO.setmode (GPIO. BCM)
GPIO.setwarnings (falsk)
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 (ekko, GPIO. IN)
GPIO.setwarnings (falsk)
GPIO.output (5, falsk)
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, Falsk)
timeset = time.time ()
afstand = 100 hukommelse = 0 tid. søvn (2) pwm.start (12,5)
mens det er sandt:
timetac = time.time () hvis GPIO.input (capteurP) og timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) time.sleep (0.2) memory = -0.5 pwm. ChangeDutyCycle (0) timetac = time.time () time.sleep (0,5) hvis timetac-timeset> 15 eller hukommelse> 0,4: hvis memory> 0,4: pwm. ChangeDutyCycle (2,5) time.sleep (1) for x i område (0, 1): # GPIO.output (Trig, True) time.sleep (0,01) GPIO.output (Trig, Falsk)
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 og (distance2-distance1) 0,4: dis = rund ((60-distance)*5/6, 1) med åben ('capteur.csv', 'w') som 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, Falsk) hvis afstand <37,5: GPIO.output (13, True) else: GPIO.output (13, False) if distance <30: GPIO.output (19, True) else: GPIO.output (19, Falsk) hvis afstand <22.5: GPIO.output (20, True) else: GPIO.output (20, False) if distance <15: GPIO.output (21, True) else: GPIO.output (21, False) hvis afstand <7,5: GPIO.output (26, True) ellers: GPIO.output (26, Falsk)
Her er csvcontrol.py -koden. Glem ikke at indsætte den oprettede ".json" -fil i den samme mappe i main.py. ". Json" -filen oprettes med google API. Et skærmbillede er tilgængeligt på billederne.
import datetimeimport time import csv import gspread
fra oauth2client.service_account import ServiceAccountCredentials
fra tid importere søvn import spor tilbage
timec2 = 'lol'
mens True: time.sleep (5) loc = ('capteur.csv') med open (loc) som csvfile: readCSV = csv.reader (csvfile, delimiter = ',') for række i readCSV: print (række [0]) timec = række [0] print (række [1]) distance = række [1] distance = float (str (distance)) if timec2! = timec: timec2 = timec print ('Time: {0} Quantitee: { 1} '. Format (tid, afstand))
SCOPES = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ kø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, distance))
Anbefalede:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Tre højttalerkredsløb -- Trin-for-trin vejledning: 3 trin
Tre højttalerkredsløb || Trin-for-trin vejledning: Højttalerkredsløb styrker lydsignalerne, der modtages fra miljøet til MIC og sender det til højttaleren, hvorfra forstærket lyd produceres. Her vil jeg vise dig tre forskellige måder at lave dette højttalerkredsløb på:
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)
SmartBin: 8 trin
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 informationa