Kazalo:
- 1. korak: Oprema SmartBin
- 2. korak: izdelava škatle za maline in LED palice
- Korak 3: Del pokrova
- 4. korak: Del programske opreme in pridobivanje podatkov
Video: SmartBin: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Glavni namen tega projekta je ustvariti elektronsko napravo, ki uporablja vsaj eno Raspberry Pi. Ekipo sestavlja 5 bodočih strojnih inženirjev in en inženir avtomatizacije. Naš projekt je sestavljen iz izdelave koša za smeti, ki se samodejno odpre in zapre, ki ga sproži gibanje stopala pod detektorjem gibanja, ki se nahaja v sredini na sprednji strani koša za smeti. USB -ključek Wifi se uporablja za pošiljanje podatkov na spletno mesto. Ta koš se imenuje "SmartBin". Zgornji humoristični videoposnetek predstavlja naš inovativni SmartBin.
Za izvedbo tega projekta in tega izjemnega SmartBina je bilo potrebno več orodij:
- Meter
- Močno lepilo
- Lepilni trak
- Žaga za les
- Izvijač
- Vrtalni stroj
- Objemka
- Nož
1. korak: Oprema SmartBin
SmartBin je sestavljen iz zelenih, oranžnih in rdečih LED luči, ki so nameščene na svetilki na levi strani koša, kar kaže, kako napolnjen je. Te luči bodo jasno vidne in bodo uporabnika opozorile, kdaj je treba zamenjati vrečko za smeti. Uporabljeni programski jezik je Python. Izmerjena raven napolnjenosti koša se posreduje na naslednjo spletno stran:
Tu so elementi, ki so bili uporabljeni, vendar lahko preprosto najdete alternativno rešitev:
- 1 zabojnik (zaboj za "pokrov z zamahom")
- 1 Servomotor za odpiranje koša
- 1 malina Pi 2
- 2 napajalnika (5V polnilec za mobilne telefone in 6V napajalnik) za napajanje Raspberry Pi in servomotorja
- 1 Ultrazvočni senzor za merjenje stopnje napolnjenosti koša
- Nekaj LED za prikaz nivoja polnjenja (4 zelene, 2 oranžne in 1 rdeča)
- 1 Ultrazvočni detektor gibanja za zaznavanje gibanja
- 1 16 GB pomnilniška kartica SD
- Električni upori (10.000 ohmov, 2000 ohmov in 1000 ohmov)
- 1 WiFi USB ključek za brezžični prenos na spletno stran.
- 1 Ohišje in nekaj malinovih kablov
Ocenjena cena izdelave je 80 €.
2. korak: izdelava škatle za maline in LED palice
Za izdelavo škatle za maline uporabite žago za les. Pritrdite vsako stran škatle z zakovicami, da bo videti čista. Kot že ime pove, bo to polje vsebovalo ne samo Raspberry Pi, ampak bo vključevalo tudi senzor gibanja, ki ga boste postavili na dno. Ko je škatla zgrajena, jo pobarvajte v isto barvo kot koš. Za izdelavo te škatle bi lahko uporabili tehnologijo 3D tiskanja.
Za izdelavo LED palice uporabite električni kanal, v katerem izvrtate luknje, da omogočite vgradnjo LED luči. LED bar je treba tudi pobarvati. Ko je vse pripravljeno, namestite LED v kanal in izvedite električno povezavo. Bodite pozorni na pravilno oštevilčenje vsakega LED kabla z lepilnim trakom. Pomagal vam bo pri ožičenju vsake LED.
Na koncu pritrdite škatlo in LED palico na sprednji del koša.
Korak 3: Del pokrova
Kar zadeva pokrov koša, je prvi korak lepljenje servomotorja na pokrov. Predhodno je treba razširiti vzvod. Ročica bo udarila v omejevalnik, ki je bil prej ročno izdelan. Na pokrov pritrdite vijačno škatlo in v njej naredite luknjo, da ultrazvočni senzor držite v pravem položaju. Prepričajte se, da ste s pokrovom pravilno pritrdili kable.
4. korak: Del programske opreme in pridobivanje podatkov
Kar zadeva programsko opremo, smo uporabili programski jezik python. Program se shrani na kartico SD, ki jo bo ob vklopu zagnala Raspberry Pi. Shema ožičenja je na voljo zgoraj. Slika zatičev Gpio je na voljo za vse vrste malin na spodnji povezavi:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Za zamenjavo detektorja gibanja je mogoče uporabiti ultrazvočni senzor, v kodi morate samo ustvariti "zanko if".
Kot je navedeno zgoraj, se podatki o ravni napolnjenosti koša prenašajo na spletno stran, ustvarjeno na wix.com. Na tem spletnem mestu lahko najdete različne zavihke, na katerih so zbrani člani skupine, predstavitev strojne in programske opreme … Zanimiv zavihek je pravzaprav zavihek "Baza podatkov", ki zbira podatke o količini smeti neposredno iz SmartBina in ustvari graf s podatki. Graf prikazuje razvoj stopnje polnjenja. Podatke je mogoče videti ali prenesti s spletnega mesta. Spodnja povezava je spletno mesto, ki smo ga uporabili in vam bo pokazalo, kako brati in pisati na Googlovih listih s pythonom:
www.makeuseof.com/tag/read-write-google-sh…
V zvezi z "samodejnim delom" kode vpišite v terminal: sudo nano/etc/xdg/lxsession/LXDE-pi/autostart
Nato na koncu pravkar odprtega skripta napišite te dve kodni vrstici: python /home/pi/main.py & python /home/pi/csvcontrol.py &
Če želite shraniti aurorun, pritisnite: C trl + O Nato pritisnite: Enter Nato pritisnite: C trl + X
Zapiši kot zadnjo vrstico kode: sudo reboot
Prav tako lahko prenesete prilogo, ki je celotna koda python, uporabljena za projekt. Obe kodi se izvajata hkrati!
Tu je koda main.py:
uvoz RPi. GPIO kot GPIOimport datum -čas uvoz čas uvoza csv
Način GPIO.set (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)
Sprožilec = 23
Odmev = 24
GPIO.setup (Trig, GPIO. OUT)
GPIO.setup (Echo, GPIO. IN)
GPIO.setwarnings (False)
GPIO.output (5, napačno)
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 ()
razdalja = 100 pomnilnika = 0 čas. spanje (2) pwm.start (12.5)
medtem ko je res:
timetac = time.time (), če GPIO.input (capteurP) in timetac-timeset0,9: pwm. ChangeDutyCycle (2,5) time.sleep (0,2) pomnilnik = -0,5 pwm. ChangeDutyCycle (0) timetac = time.time () time.sleep (0,5), če timetac-timeset> 15 ali memory> 0,4: if memory> 0,4: pwm. ChangeDutyCycle (2,5) time.sleep (1) za x v območju (0, 1): # GPIO.output (Trig, True) time.sleep (0,01) GPIO.output (Trig, False)
medtem ko je GPIO.input (Echo) == 0 in timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()
medtem ko je GPIO.input (Echo) == 1:
finImpulsion = time.time () če je timetac-timeset <17: distance1 = round ((finImpulsion-debutImpulsion) * 340 * 100 /2, 1) distance2 = distance if (distance1-distance2) <1 and (distance2-distance1) 0.4: dis = okrogel ((60 razdalj)*5/6, 1) z odprtim ('capteur.csv', 'w') kot csv datoteka: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (datetime.datetime.now (), '%Y-%m-%d%H:%M:%S') print ('Čas: {0} Količine: {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), če je razdalja <37,5: GPIO.output (13, True) drugače: GPIO.output (13, False), če je razdalja <30: GPIO.output (19, True) else: GPIO.output (19, False), če je razdalja <22,5: GPIO.output (20, True) else: GPIO.output (20, False) if distance <15: GPIO.output (21, True) else: GPIO.output (21, False) če je razdalja <7,5: izhod GPIO (26, True) drugače: izhod GPIO (26, napačno)
Tukaj je koda csvcontrol.py. Ne pozabite prilepiti ustvarjene datoteke ».json« v isti imenik main.py. Datoteka ".json" je ustvarjena z google API -jem. Posnetek zaslona je na voljo na slikah.
import datetimeimport time import csv import gspread
iz oauth2client.service_account uvoz ServiceAccountCredentials
from time import sleep import import traceback
timec2 = 'lol'
medtem ko je True: time.sleep (5) loc = ('capteur.csv') z odprto (loc) kot datoteko csv: readCSV = csv.reader (csvfile, ločilo = ',') za vrstico v readCSV: print (vrstica [0]) timec = vrstica [0] tiskanje (vrstica [1]) razdalja = vrstica [1] razdalja = float (str (razdalja)), če je časc2! = timec: timec2 = timec print ('Čas: {0} Količina: { 1} '. Format (timec, razdalja))
SCOPES = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ voziti "]
poverilnice = ServiceAccountCredentials.from_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (poverilnice) wks = gc.open ("graf"). sheet1 wks = wks.append_row ((timec, razdalja))
Priporočena:
DIY stativ pod koraki 1: 3 koraki
DIY stativ pod 1 USD: Ta pouk vas bo naučil, kako narediti fantastičen stativ pod 1 USD. Z uporabo samo gospodinjskih predmetov, kot je moka, lahko naredite fantastičen stativ, ki je še boljši od običajnega stojala, celo prenosnega … poskusite! najprej bi si moral ogledati video
4G/5G HD video pretakanje v živo z DJI Drone z nizko zakasnitvijo [3 koraki]: 3 koraki
4G/5G HD video pretakanje v živo z DJI Drone z nizko zakasnitvijo [3 koraki]: Naslednji vodnik vam bo pomagal prenašati videoposnetke v visoki kakovosti HD v skoraj vseh DJI-jih. S pomočjo mobilne aplikacije FlytOS in spletne aplikacije FlytNow lahko začnete pretakati videoposnetke iz drona
4 koraki za merjenje notranje odpornosti baterije: 4 koraki
4 koraki za merjenje notranje odpornosti baterije: Tu so 4 preprosti koraki, ki vam lahko pomagajo izmeriti notranji upor baterije
Brezžični monitor pulzne frekvence s 4 koraki Duino-24: 4 koraki
Brezžični monitor pulzne frekvence s funkcijo 4Duino-24: Brezžični monitor pulzne frekvence je konceptualni projekt za bolnišnice in klinike, njegova glavna funkcija je skrajšati čas, ki ga medicinske sestre ali zdravniki potrebujejo za obisk vsakega bolnika v bolnišnici. Običajno zdravniki in medicinske sestre obiščejo vsakega pacienta, da preverijo
SmartBin: 8 korakov
SmartBin: Este é um projeto para um sistema 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