Turinys:
- 1 žingsnis: „SmartBin“įranga
- 2 žingsnis: Raspberry Box ir LED juostos gamyba
- 3 žingsnis: dangčio dalis
- 4 žingsnis: programinės įrangos dalis ir duomenų gavimas
Video: „SmartBin“: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Pagrindinis šio projekto tikslas yra sukurti elektroninį įrenginį, kuriame būtų naudojamas bent vienas „Raspberry Pi“. Komandą sudaro 5 būsimi mechanikos inžinieriai ir vienas automatikos inžinierius. Mūsų projektą sudaro šiukšliadėžės atidarymas ir uždarymas, kurį automatiškai sukelia kojos judesys po judesio jutikliu, esančiu centre, šiukšliadėžės priekyje. „Wifi“USB atmintinė naudojama duomenims siųsti į svetainę. Ši šiukšliadėžė vadinama „SmartBin“. Aukščiau pateiktame humoristiniame vaizdo įraše pristatomas mūsų novatoriškas „SmartBin“.
Norint įgyvendinti šį projektą ir šį nuostabų „SmartBin“, reikėjo kelių įrankių:
- Metras
- Stiprus klijai
- Lipni juosta
- Medžio pjūklas
- Atsuktuvas
- Gręžimo mašina
- Spaustukas
- Peilis
1 žingsnis: „SmartBin“įranga
„SmartBin“sudaro žalios, oranžinės ir raudonos spalvos šviesos diodai, kurie dedami ant armatūros kairėje dėžės pusėje, kuri parodys, kaip ji užpildyta. Šios lemputės bus aiškiai matomos ir įspės vartotoją, kai reikia pakeisti šiukšlių maišą. Naudojama programavimo kalba yra „Python“. Išmatuotas dėžės užpildymo lygis perduodamas į šią svetainę:
Štai elementai, kurie buvo naudojami, tačiau galite lengvai rasti alternatyvų sprendimą:
- 1 šiukšliadėžė („sūpynės dangčio“dėžė)
- 1 Servomotoriui atidaryti šiukšliadėžę
- 1 Raspberry Pi 2
- 2 maitinimo šaltiniai (5 V mobiliojo telefono įkroviklis ir 6 V maitinimo šaltinis) „Raspberry Pi“ir servomotoriui tiekti
- 1 Ultragarsinis jutiklis, skirtas matuoti dėžės pripildymo lygį
- Kai kurie šviesos diodai rodo užpildymo lygį (4 žali, 2 oranžiniai ir 1 raudoni)
- 1 Ultragarsinis judesio detektorius judesiui aptikti
- 1 16 GB SD kortelė
- Elektros rezistoriai (10 000 omų, 2000 omų ir 1000 omų)
- 1 „WiFi“USB atmintinė, leidžianti belaidį perdavimą į svetainę.
- 1 Duonos lenta ir kai kurie aviečių kabeliai
Numatoma gamybos kaina yra 80 eurų.
2 žingsnis: Raspberry Box ir LED juostos gamyba
Norėdami pagaminti aviečių dėžutę, naudokite medinį pjūklą. Kiekvieną dėžutės pusę pritvirtinkite kniedėmis, kad ji atrodytų švari. Kaip rodo jo pavadinimas, šioje dėžutėje bus ne tik „Raspberry Pi“, bet ir judesio jutiklis, kurį įdėsite apačioje. Kai dėžutė bus pastatyta, dažykite ją ta pačia spalva kaip ir šiukšliadėžė. Šiai dėžutei sukurti gali būti naudojama 3D spausdinimo technologija.
LED juostos gamybai naudokite elektrinį ortakį, kuriame gręžiate skyles, kad būtų galima sumontuoti LED žibintus. LED juosta taip pat turi būti nudažyta. Kai viskas bus paruošta, įdėkite šviesos diodus į kanalą ir prijunkite elektros jungtį. Atkreipkite dėmesį, kad kiekvienas LED kabelis būtų tinkamai sunumeruotas lipnia juostele. Tai padės jums nustatyti kiekvieną šviesos diodą laidų metu.
Galiausiai pritvirtinkite dėžutę ir LED juostą prie šiukšliadėžės priekio.
3 žingsnis: dangčio dalis
Kalbant apie šiukšliadėžės dangtį, pirmiausia reikia priklijuoti variklį prie dangčio. Anksčiau turi būti pratęstas svertas. Svirtis atsitrenks į sustojimą, kuris anksčiau buvo rankų darbo. Pritvirtinkite varžtą prie dangtelio ir padarykite skylę, kad ultragarso jutiklis būtų tinkamoje padėtyje. Įsitikinkite, kad tinkamai pritvirtinote kabelius prie dangtelio juostele.
4 žingsnis: programinės įrangos dalis ir duomenų gavimas
Kalbant apie programinę įrangą, mes naudojome „python“programavimo kalbą. Programa išsaugoma SD kortelėje, kurią paleis „Raspberry Pi“, kai ji bus įjungta. Elektros instaliacijos schema pateikiama aukščiau. „Gpio“kaiščių vaizdą galima rasti visų tipų avietėms, esančioje žemiau esančioje nuorodoje:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Galima pakeisti judesio jutiklį ultragarso jutikliu, tereikia kodu sukurti „if loop“.
Kaip minėta aukščiau, duomenys apie lygį, iki kurio šiukšliadėžė užpildyta, yra perduodami į svetainę, sukurtą svetainėje wix.com. Šioje svetainėje galite rasti įvairių skirtukų, kuriuose renkami komandos nariai, techninės ir programinės įrangos pristatymas… Įdomus skirtukas iš tikrųjų yra skirtukas „Duomenų bazė“, kuriame tiesiogiai iš „SmartBin“surenkama informacija apie šiukšlių kiekį ir sudaromas grafikas su duomenimis. Diagrama rodo užpildymo lygio raidą. Galima pamatyti ar atsisiųsti duomenis iš svetainės. Žemiau esanti nuoroda yra mūsų naudojama svetainė ir parodys, kaip skaityti ir rašyti „Google“lapuose naudojant „python“:
www.makeuseof.com/tag/read-write-google-sh…
Dėl kodo „autorun“dalies įrašykite terminale: sudo nano/etc/xdg/lxsession/LXDE-pi/autostart
Tada ką tik atidaryto scenarijaus pabaigoje parašykite šias dvi kodo eilutes: python /home/pi/main.py & python /home/pi/csvcontrol.py &
Norėdami išsaugoti „aurorun“, paspauskite: C trl + O Tada paspauskite: Enter, tada paspauskite: C trl + X
Rašykite kaip paskutinę kodo eilutę: sudo reboot
Taip pat galite atsisiųsti priedą, kuris yra visas projektui naudojamas python kodas. Abu kodai vykdomi vienu metu!
Čia yra pagrindinis.py kodas:
importuoti RPi. GPIO kaip GPIOimportuoti laiko ir laiko importavimo laiką importuoti csv
GPIO.setmode (GPIO. BCM)
GPIO.setwarnings (klaidinga)
kapitonas P = 7
servo = 17
GPIO nustatymas (servo, GPIO. OUT)
GPIO.setup (capteurP, GPIO. IN)
pwm = GPIO. PWM (17, 50)
GPIO nustatymas (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 nustatymas (26, GPIO. OUT)
Trig = 23
Aidas = 24
GPIO.setup (Trig, GPIO. OUT)
GPIO nustatymas (Echo, GPIO. IN)
GPIO.setwarnings (klaidinga)
GPIO. output (5, klaidinga)
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 ()
atstumas = 100 atminties = 0 laiko. miegas (2) pwm. pradžia (12.5)
nors tiesa:
timetac = time.time () jei GPIO.input (capteurP) ir timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) time.sleep (0.2) atmintis = -0.5 pwm. ChangeDutyCycle (0) timetac = time.time () time.sleep (0,5), jei timetac-timeset> 15 arba atmintis> 0,4: jei atmintis> 0,4: pwm. ChangeDutyCycle (2.5) time.sleep (1) x diapazone (0, 1): # GPIO.output (Trig, Tiesa) time.sleep (0.01) GPIO.putput (Trig, False)
tuo tarpu GPIO.input (Echo) == 0 ir timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()
o GPIO.input (aidas) == 1:
finImpulsion = laikas. laikas (), jei laiko nustatymo laikas <17: atstumas1 = apvalus ((finImpulsion-debiutinis impulsas) * 340 * 100/2, 1) atstumas2 = atstumas, jei (atstumas1 atstumas2) <1 ir (atstumas2 atstumas1) 0,4: dis = apvalus ((60 atstumų)*5/6, 1) su atidarytu ('capteur.csv', 'w') kaip 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. writeow ([laiko_str, disas]) atmintis = -0,1, jei atstumas <52,5: GPIO. išvestis (5, tiesa) else: GPIO. išvestis (5, klaidinga), jei atstumas <45: GPIO. išvestis (6, tiesa) dar: GPIO. output (6, False), jei atstumas <37,5: GPIO. output (13, True) else: GPIO. output (13, False), jei atstumas <30: GPIO. output (19, True) else: GPIO. output (19, klaidinga), jei atstumas <22,5: GPIO. išvestis (20, tiesa) kita: GPIO. Išvestis (20, klaidinga), jei atstumas <15: GPIO. Išvestis (21, tiesa) dar: GPIO. Išvestis (21, klaidinga) jei atstumas <7.5: GPIO.putput (26, True) else: GPIO.putput (26, False)
Čia yra csvcontrol.py kodas. Nepamirškite įklijuoti sukurto „.json“failo į tą patį main.py katalogą. Failas „.json“sukurtas naudojant „Google“API. Nuotraukose galima rasti ekrano kopiją.
importas datetimeimport laikas importuoti csv import gspread
iš oauth2client.service_account importuoti ServiceAccountCredentials
nuo laiko importavimo miego importo atsekamumo
timec2 = 'lol'
o tiesa: time.sleep (5) loc = ('capteur.csv') su open (loc) kaip csvfile: readCSV = csv.reader (csvfile, delimiter = ',') eilutei readCSV: print (eilute [0]) timec = eilutė [0] spauda (eilutė [1]) atstumas = eilutė [1] atstumas = plūdė (str (atstumas)), jei laikasc2! = timec: timec2 = timec print ('Laikas: {0} Kvantitas: { 1} '. Formatas (timec, atstumas))
TAIKYMO SRITIS = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ vairuoti "]
kredencialai = ServiceAccountCredentials.from_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (kredencialai) wks = gc.open ("graph"). sheet1 wks = wks.append_row ((timec, distance))
Rekomenduojamas:
„Arduino“automobilių atbulinės eigos įspėjimo sistema - Žingsniai po žingsnio: 4 žingsniai
„Arduino“automobilių atbulinės eigos įspėjimo sistema | Žingsniai po žingsnio: Šiame projekte aš suprojektuosiu paprastą „Arduino“automobilio atbulinės eigos stovėjimo jutiklio grandinę, naudodamas „Arduino UNO“ir ultragarsinį jutiklį „HC-SR04“. Ši „Arduino“pagrįsta automobilio atbulinės eigos įspėjimo sistema gali būti naudojama autonominei navigacijai, robotų diapazonui ir kitiems diapazonams
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su nuotraukomis): 6 žingsniai
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su paveikslėliais): norite Helovino metu išgąsdinti savo draugus ir sukelti riksmą? O gal tiesiog norite padaryti gerą išdaigą? Šis iššokantis „Zombies“ekranas gali tai padaryti! Šioje instrukcijoje aš išmokysiu jus, kaip lengvai padaryti iššokančius zombius naudojant „Arduino“. HC-SR0
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): 8 žingsniai
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): ultragarsiniai garso keitikliai L298N nuolatinės srovės adapterio maitinimo šaltinis su vyrišku nuolatinės srovės kaiščiu „Arduino UNOBreadboard“Kaip tai veikia: pirmiausia įkelkite kodą į „Arduino Uno“(tai yra mikrovaldiklis su skaitmeniniu ir analoginiai prievadai kodui konvertuoti (C ++)
„Pixel Kit“, kuriame veikia „MicroPython“: pirmieji žingsniai: 7 žingsniai
„Pixel Kit“, kuriame veikia „MicroPython“: pirmieji žingsniai: Kelionė, skirta visam „Kano Pixel“potencialui išnaudoti, prasideda gamyklos programinės įrangos pakeitimu „MicroPython“, tačiau tai tik pradžia. Norėdami koduoti „Pixel Kit“, turime prie jo prijungti savo kompiuterius. Ši pamoka paaiškins, kas
„SmartBin“: 8 žingsniai
„SmartBin“: „Este é um projeto para um sistema inteligente de coletas, no quality os caminh õ es de lixo recebem dados das lixeiras, identifikand a quantidade de lixo presente em cada uma delas, e uma rota de coleta tra ç ada, com base nas information