Innehållsförteckning:
- Steg 1: SmartBin -utrustning
- Steg 2: Tillverkning av hallonboxen och LED -fältet
- Steg 3: Lockdelen
- Steg 4: Programvaru- och datainsamling
Video: SmartBin: 4 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Huvudsyftet med detta projekt är att skapa en elektronisk enhet som använder minst en Raspberry Pi. Teamet består av 5 framtida mekaniska ingenjörer och en automationsingenjör. Vårt projekt består av att göra en papperskorg som öppnas och stängs automatiskt utlöst av en fotrörelse under rörelsedetektorn i mitten på papperskorgen. Ett Wifi USB -minne används för att skicka data till en webbplats. Detta fack kallas "The SmartBin". Den humoristiska videon ovan introducerar vår innovativa SmartBin.
För att genomföra detta projekt och denna anmärkningsvärda SmartBin var flera verktyg nödvändiga:
- En meter
- Kraftigt lim
- En tejp
- En vedsåg
- En skruvdragare
- En borrmaskin
- En klämma
- En kniv
Steg 1: SmartBin -utrustning
SmartBin består av gröna, orange och röda LED -lampor som är placerade på en armatur på vänster sida av papperskorgen som visar hur fylld den är. Dessa lampor kommer att vara tydligt synliga och varnar användaren när det är nödvändigt att byta papperskorgen. Programmeringsspråket som används är Python. Fackets uppmätta fyllningsnivå överförs till följande webbplats:
Här är de element som har använts men du kan enkelt hitta en alternativ lösning:
- 1 behållare ("svängskydd")
- 1 Servomotor för att öppna behållaren
- 1 Raspberry Pi 2
- 2 nätaggregat (5V mobiltelefonladdare och 6V strömförsörjning) för att leverera Raspberry Pi och servomotorn
- 1 Ultraljudssensor för att mäta behållarens fyllningsnivå
- Några lysdioder för att visa fyllningsnivån (4 gröna, 2 orange och 1 röda)
- 1 Ultraljudsrörelsedetektor för att upptäcka en rörelse
- 1 16 GB SD-kort
- Elektriska motstånd (10.000 ohm, 2000 ohm och 1000 ohm)
- 1 WiFi usb -stick för att möjliggöra trådlös överföring till webbplatsen.
- 1 brödbräda och några hallonkablar
Det uppskattade tillverkningspriset är 80 €.
Steg 2: Tillverkning av hallonboxen och LED -fältet
Använd en träsåg för att tillverka hallonlådan. Fäst varje sida av lådan med nitar så att den ser ren ut. Som namnet antyder innehåller den här rutan inte bara Raspberry Pi utan också rörelsessensorn som du kommer att placera längst ner. När lådan är byggd målar du den i samma färg som papperskorgen. 3D -utskriftsteknik kan användas för att skapa denna låda.
För tillverkning av LED -stången, använd en elektrisk kanal där du borrar hål för att låta LED -lamporna installeras. LED -stången måste också målas. När allt är klart installerar du lysdioderna i kanalen och gör den elektriska anslutningen. Var uppmärksam på att nummerera varje LED -kabel korrekt med tejp. Det hjälper dig att identifiera varje lysdiod under kabeldragning.
Slutligen fäst lådan och LED -fältet på framsidan av din papperskorg.
Steg 3: Lockdelen
När det gäller locket på behållaren är det första steget att limma servomotorn på locket. En förlängning av hävstången måste göras tidigare. Spaken kommer att träffa ett stopp som tidigare var handgjort. Fäst en skruvlåda på locket och gör ett hål i den för att hålla ultraljudssensorn i rätt läge. Se till att du fäster kablarna korrekt på locket med tejp.
Steg 4: Programvaru- och datainsamling
När det gäller programvarudelen använde vi programmeringsspråket python. Programmet sparas på SD-kortet som kommer att köras av Raspberry Pi när det slås på. Kabelschemat är tillgängligt ovan. Gpio pins -bilden är tillgänglig för alla hallontyper på länken nedan:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Det är möjligt att använda en ultraljudssensor för att ersätta rörelsedetektorn, du behöver bara skapa en "if loop" i koden.
Som nämnts ovan överförs uppgifterna om nivån till vilken papperskorgen fylls till en webbplats skapad på wix.com. På den här webbplatsen kan du hitta olika flikar som samlar teammedlemmar, hårdvaru- och programvarupresentation, … Den intressanta fliken är faktiskt "Databas" -fliken som samlar information om mängden papperskorgen direkt från SmartBin och skapar en graf med data. Diagrammet visar utvecklingen av fyllningens nivå. Det är möjligt att se eller ladda ner data från webbplatsen. Länken nedan är webbplatsen vi använde och visar hur du läser och skriver på Google -ark med python:
www.makeuseof.com/tag/read-write-google-sh…
Angående "autorun-delen" av koden, skriv i terminalen: sudo nano/etc/xdg/lxsession/LXDE-pi/autostart
Skriv sedan dessa två kodrader i slutet av skriptet som just öppnat: python /home/pi/main.py & python /home/pi/csvcontrol.py &
För att spara aurorun, tryck på: C trl + O Tryck sedan: Enter Enter, tryck på: C trl + X
Skriv som sista kodrad: sudo reboot
Du kan också ladda ner bilagan som är hela pythonkoden som används för projektet. Båda koder körs samtidigt!
Här är main.py -koden:
importera RPi. GPIO som GPIOimportera datetime importtid importera csv
GPIO.setmode (GPIO. BCM)
GPIO.setwarnings (falskt)
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
Eko = 24
GPIO.setup (Trig, GPIO. OUT)
GPIO.setup (Echo, GPIO. IN)
GPIO.setwarnings (falskt)
GPIO.output (5, falskt)
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 ()
avstånd = 100 minne = 0 tid. sömn (2) pwm.start (12,5)
medan det är sant:
timetac = time.time () om GPIO.input (capteurP) och 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)
medan GPIO.input (Echo) == 0 och timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()
medan 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 = rund ((60 distans)*5/6, 1) med öppen ('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, 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) om avstånd <22.5: GPIO.output (20, True) else: GPIO.output (20, False) if distance <15: GPIO.output (21, True) else: GPIO.output (21, False) om avstånd <7,5: GPIO.output (26, True) annars: GPIO.output (26, Falskt)
Här är csvcontrol.py -koden. Glöm inte att klistra in den skapade ".json" -filen i samma katalog för main.py. ". Json" -filen skapas med google API. En skärmdump finns på bilderna.
import datetimeimport time import csv import gspread
från oauth2client.service_account import ServiceAccountCredentials
från tid importera sömn import spår tillbaka
timec2 = 'lol'
medan True: time.sleep (5) loc = ('capteur.csv') med open (loc) som csvfile: readCSV = csv.reader (csvfile, delimiter = ',') för rad i readCSV: print (rad [0]) timec = rad [0] print (rad [1]) distans = rad [1] distans = float (str (distans)) om timec2! = timec: timec2 = timec print ('Tid: {0} Quantitee: { 1} '. -Format (tid, avstånd))
SCOPES = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ kör"]
credentials = ServiceAccountCredentials.fr_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (credentials) wks = gc.open ("graf"). sheet1 wks = wks.append_row ((timec, distans))
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg
Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg
Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
SmartBin: 8 steg
SmartBin: Este é um projeto para um system inteligente de coletas, no qual os caminh õ es de lixo recebem dados das lixeiras, identifierando a quantidade de lixo presente em cada uma delas, e uma rota de coleta tra ç ada, com base nas information