Sisukord:

SmartBin: 4 sammu
SmartBin: 4 sammu

Video: SmartBin: 4 sammu

Video: SmartBin: 4 sammu
Video: Неуловимые мстители (4К, приключения, реж. Эдмонд Кеосаян, 1966 г.) 2024, November
Anonim
Image
Image

Selle projekti peamine eesmärk on luua elektrooniline seade, mis kasutab vähemalt ühte Raspberry Pi. Meeskonda kuulub 5 tulevast mehaanikainseneri ja üks automaatikainsener. Meie projekt seisneb prügikasti valmistamises, mis avaneb ja sulgub automaatselt jalgade liikumise tõttu liikumisanduri all, mis asub prügikasti esiküljel. Wifi USB -mälupulka kasutatakse andmete saatmiseks veebisaidile. Seda prügikasti nimetatakse "SmartBiniks". Ülaltoodud humoorikas video tutvustab meie uuenduslikku SmartBini.

Selle projekti ja selle tähelepanuväärse SmartBini elluviimiseks oli vaja mitmeid tööriistu:

  • Meeter
  • Tugev liim
  • Kleeplint
  • Puidust saag
  • Kruvikeeraja
  • Puurmasin
  • Klamber
  • Nuga

Samm: SmartBini seadmed

SmartBini seadmed
SmartBini seadmed
SmartBini seadmed
SmartBini seadmed

SmartBin koosneb rohelistest, oranžidest ja punastest LED -tuledest, mis on paigutatud prügikasti vasakul küljel asuvale seadmele, mis näitab selle täitmist. Need tuled on selgelt nähtavad ja hoiatavad kasutajat, kui on vaja prügikott välja vahetada. Programmeerimiskeeleks on Python. Prügikasti mõõdetud täitmistase edastatakse järgmisele veebisaidile:

Siin on kasutatud elemendid, kuid leiate hõlpsalt alternatiivse lahenduse.

  • 1 prügikast (kiigekaane prügikast)
  • 1 Servomootor prügikasti avamiseks
  • 1 Vaarika Pi 2
  • 2 toiteallikat (5 V mobiililaadija ja 6 V toiteallikas) Raspberry Pi ja servomootori varustamiseks
  • 1 Ultraheliandur prügikasti täitmistaseme mõõtmiseks
  • Mõned LED -id näitavad täitmistaset (4 rohelist, 2 oranži ja 1 punast)
  • 1 Ultraheli liikumisandur liikumise tuvastamiseks
  • 1 16 GB SD-kaart
  • Elektrilised takistid (10 000 oomi, 2000 oomi ja 1000 oomi)
  • 1 WiFi USB -mälupulk, mis võimaldab veebisaidile juhtmevabalt edastada.
  • 1 Leivalaud ja mõned vaarikakaablid

Hinnanguline tootmishind on 80 €.

Samm: valmistage vaarikakarp ja LED -riba

Vaarikakasti ja LED -riba tootmine
Vaarikakasti ja LED -riba tootmine
Vaarikakasti ja LED -riba tootmine
Vaarikakasti ja LED -riba tootmine
Vaarikakasti ja LED -riba tootmine
Vaarikakasti ja LED -riba tootmine

Vaarika kasti valmistamiseks kasutage puidusaega. Kinnitage karbi iga külg neetidega, et see puhas välja näeks. Nagu nimigi ütleb, sisaldab see kast mitte ainult Raspberry Pi, vaid sisaldab ka liikumisandurit, mille paigutate selle põhja. Kui kast on ehitatud, värvige see prügikastiga sama värvi. Selle kasti loomiseks võiks kasutada 3D printimise tehnoloogiat.

LED -riba valmistamiseks kasutage elektrilist kanalit, millesse puurite auke, et võimaldada LED -tulede paigaldamist. LED -riba tuleb ka värvida. Kui kõik on valmis, paigaldage valgusdioodid kanalisse ja tehke elektriühendus. Pöörake tähelepanu iga LED -kaabli nõuetekohasele nummerdamisele kleeplindiga. See aitab teil juhtmestiku ajal iga LED -i tuvastada.

Lõpuks kinnitage kast ja LED -riba prügikasti esiküljele.

3. samm: kaane osa

Kaane osa
Kaane osa
Kaane osa
Kaane osa

Prügikasti kaane osas tuleb esimene samm servomootor kaane külge liimida. Finantsvõimendust tuleb eelnevalt pikendada. Hoob tabab peatust, mis oli varem käsitsi valmistatud. Kinnitage kruvikarp kaane külge ja tehke sellesse auk, et hoida ultraheliandurit õiges asendis. Veenduge, et kinnitate kaabli kaabli külge teibiga õigesti.

4. samm: tarkvara osa ja andmete hankimine

Tarkvara osa ja andmete hankimine
Tarkvara osa ja andmete hankimine
Tarkvara osa ja andmete hankimine
Tarkvara osa ja andmete hankimine
Tarkvara osa ja andmete hankimine
Tarkvara osa ja andmete hankimine

Tarkvara osas kasutasime programmeerimiskeelt python. Programm salvestatakse SD-kaardile, mida käivitab Raspberry Pi, kui see sisse lülitatakse. Juhtmestiku skeem on ülalpool saadaval. Gpio tihvtide pilt on saadaval kõigi vaarikatüüpide jaoks alloleval lingil:

www.raspberrypi-spy.co.uk/2012/06/simple-g…

Liikumisanduri asendamiseks on võimalik kasutada ultraheliandurit, peate lihtsalt looma koodi "if loop".

Nagu eespool mainitud, edastatakse prügikasti täitmise taset puudutavad andmed veebisaidile wix.com loodud veebisaidile. Sellel veebisaidil leiate erinevaid vahekaarte, mis koondavad meeskonnaliikmeid, riist- ja tarkvaraesitust,… Huvitav vahekaart on tegelikult vahekaart „Andmebaas”, mis kogub prügikoguse kohta teavet otse SmartBinist ja loob andmetega graafiku. Graafik näitab täidise taseme arengut. Andmeid on võimalik veebisaidilt vaadata või alla laadida. Alloleval lingil on veebisait, mida kasutasime, ja see näitab teile, kuidas lugeda ja kirjutada Google'i lehtedel pythoniga:

www.makeuseof.com/tag/read-write-google-sh…

Koodi "autorun osa" kohta kirjutage terminali: sudo nano/etc/xdg/lxsession/LXDE-pi/autostart

Seejärel kirjutage äsja avatud skripti lõppu need kaks koodirida: python /home/pi/main.py & python /home/pi/csvcontrol.py &

Auroruni salvestamiseks vajutage: C trl + O Seejärel vajutage: Enter Seejärel vajutage: C trl + X

Kirjutage viimase koodireana: sudo reboot

Samuti saate alla laadida manuse, mis on projekti jaoks kasutatud täielik püütoni kood. Mõlemat koodi käitatakse korraga!

Siin on kood main.py:

RPi. GPIO importimine GPIO -na Impordi kuupäeva ja aja importimise aeg impordi csv

GPIO.setmode (GPIO. BCM)

GPIO.setwarnings (vale)

kaptenP = 7

servo = 17

GPIO.seadistus (servo, GPIO. OUT)

GPIO.seadistus (capteurP, GPIO. IN)

pwm = GPIO. PWM (17, 50)

GPIO.seadistus (5, GPIO. OUT)

GPIO.seadistus (6, GPIO. OUT) GPIO.seadistus (13, GPIO. OUT) GPIO.seadistus (19, GPIO. OUT) GPIO.seadistus (20, GPIO. OUT) GPIO.seadistus (21, GPIO. OUT) GPIO.seadistus (26, GPIO. OUT)

Trig = 23

Kaja = 24

GPIO.seadistus (käivitus, GPIO. OUT)

GPIO.seadistus (kaja, GPIO. IN)

GPIO.setwarnings (vale)

GPIO.väljund (5, vale)

GPIO.väljund (6, vale) GPIO.väljund (13, vale) GPIO.väljund (19, vale) GPIO.väljund (20, vale) GPIO.väljund (21, vale) GPIO.väljund (26, vale)

GPIO.väljund (käivitus, vale)

timeset = time.time ()

kaugus = 100 mälu = 0 aega. uni (2) pwm. algus (12,5)

kuigi tõsi:

timetac = time.time () kui GPIO.input (capteurP) ja timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) time.sleep (0.2) mälu = -0,5 pwm. ChangeDutyCycle (0) timetac = time.time () time.sleep (0,5), kui timetac-timeset> 15 või mälu> 0,4: kui mälu> 0,4: pwm. ChangeDutyCycle (2,5) time.sleep (1) x vahemikus (0, 1): # GPIO.output (Trig, Tõsi) time.sleep (0,01) GPIO.väljund (käivitus, vale)

samas kui GPIO.input (Echo) == 0 ja timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()

samas kui GPIO.input (kaja) == 1:

finImpulsion = time.time () kui timetac-timeset <17: distance1 = round ((finImpulsion-debutImpulsion) * 340 * 100 /2, 1) distance2 = distants, kui (kaugus1-vahemaa2) <1 ja (kaugus2-vahemaa1) 0,4: dis = ümmargune ((60-distants)*5/6, 1) avatud ('capteur.csv', 'w') kui csv-fail: 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. writtenow ([time_str, dis]) mälu = -0,1, kui kaugus <52,5: GPIO.väljund (5, tõene) else: GPIO.väljund (5, vale), kui kaugus <45: GPIO.väljund (6, tõsi) muu: GPIO.väljund (6, vale), kui kaugus <37,5: GPIO.väljund (13, tõsi) muu: GPIO.väljund (13, vale), kui kaugus <30: GPIO.väljund (19, tõene) muu: GPIO.väljund (19, vale), kui kaugus <22,5: GPIO.väljund (20, tõene) muu: GPIO.väljund (20, vale), kui kaugus <15: GPIO.väljund (21, tõene) muu: GPIO.väljund (21, vale) kui kaugus <7,5: GPIO.väljund (26, tõene) muu: GPIO.väljund (26, vale)

Siin on kood csvcontrol.py. Ärge unustage kleepida loodud ".json" faili samasse kataloogi main.py. Fail ".json" luuakse Google'i API abil. Piltidel on saadaval ekraanipilt.

import datetimeimport aeg import csv import gspread

saidilt oauth2client.service_account import ServiceAccountCredentials

ajast impordi unerežiimi impordi jälgimine

timec2 = 'lol'

samas tõsi: time.sleep (5) loc = ('capteur.csv') avatud (loc) kui csvfile: readCSV = csv.reader (csvfile, delimiter = ',') readCSV rea jaoks: print (rida [0]) timec = rida [0] print (rida [1]) kaugus = rida [1] kaugus = ujuk (str (kaugus)), kui timec2! = timec: timec2 = timec print ('Aeg: {0} Kvantiteet: { 1} '. Vorming (timec, vahemaa))

KOHALDAMISALA = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ sõita "]

volikirjad = ServiceAccountCredentials.from_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (mandaat) wks = gc.open ("graph"). sheet1 wks = wks.append_row ((timec, distance))

Soovitan: