Satura rādītājs:

SmartBin: 4 soļi
SmartBin: 4 soļi

Video: SmartBin: 4 soļi

Video: SmartBin: 4 soļi
Video: Guardforce's Smart Waste Bin 2024, Novembris
Anonim
Image
Image

Šī projekta galvenais mērķis ir izveidot elektronisku ierīci, kas izmanto vismaz vienu Raspberry Pi. Komandā ir pieci topošie mehāniķi un viens automatizācijas inženieris. Mūsu projekts sastāv no miskastes izgatavošanas, kas atveras un aizveras automātiski, ko izraisa pēdas kustība zem kustības detektora, kas atrodas atkritumu tvertnes priekšpusē. Wifi USB zibatmiņa tiek izmantota, lai nosūtītu datus uz vietni. Šo atkritumu tvertni sauc par "SmartBin". Humoristiskais video iepriekš iepazīstina ar mūsu novatorisko SmartBin.

Lai īstenotu šo projektu un šo ievērojamo SmartBin, bija nepieciešami vairāki rīki:

  • Metrs
  • Spēcīga līme
  • Līmlente
  • Koka zāģis
  • Skrūvgriezis
  • Urbjmašīna
  • Skava
  • Nazis

1. darbība: SmartBin aprīkojums

SmartBin aprīkojums
SmartBin aprīkojums
SmartBin aprīkojums
SmartBin aprīkojums

SmartBin sastāv no zaļām, oranžām un sarkanām LED gaismām, kas novietotas uz stiprinājuma tvertnes kreisajā pusē, kas norāda, cik tā ir piepildīta. Šīs gaismas būs skaidri redzamas un brīdinās lietotāju, kad nepieciešams nomainīt atkritumu maisu. Programmēšanas valoda ir Python. Izmērītais tvertnes piepildīšanas līmenis tiek pārsūtīts uz šādu vietni:

Šeit ir izmantoti elementi, taču jūs varat viegli atrast alternatīvu risinājumu:

  • 1 tvertne ("šūpoles pārsega" tvertne)
  • 1 Servomotors, lai atvērtu tvertni
  • 1 Raspberry Pi 2
  • 2 barošanas avoti (5V mobilā tālruņa lādētājs un 6V barošanas avots), lai piegādātu Raspberry Pi un servomotoru
  • 1 Ultraskaņas sensors tvertnes uzpildes līmeņa mērīšanai
  • Dažas gaismas diodes, lai parādītu uzpildes līmeni (4 zaļas, 2 oranžas un 1 sarkanas)
  • 1 Ultraskaņas kustības detektors, lai noteiktu kustību
  • 1 16 GB SD karte
  • Elektriskie rezistori (10 000 omi, 2000 omi un 1000 omi)
  • 1 WiFi USB zibatmiņa, lai iespējotu bezvadu pārraidi uz vietni.
  • 1 Maizes dēlis un daži aveņu kabeļi

Paredzamā ražošanas cena ir 80 eiro.

2. darbība: aveņu kastes un LED joslas izgatavošana

Aveņu kastes un LED joslas ražošana
Aveņu kastes un LED joslas ražošana
Aveņu kastes un LED joslas ražošana
Aveņu kastes un LED joslas ražošana
Aveņu kastes un LED joslas ražošana
Aveņu kastes un LED joslas ražošana

Aveņu kastes ražošanai izmantojiet koka zāģi. Piestipriniet visas kastes puses ar kniedēm, lai tā izskatītos tīra. Kā norāda nosaukums, šajā kastē būs ne tikai Raspberry Pi, bet arī kustības sensors, kuru jūs novietosit apakšā. Kad kaste ir uzbūvēta, krāsojiet to tādā pašā krāsā kā tvertni. Lai izveidotu šo lodziņu, varētu izmantot 3D drukas tehnoloģiju.

LED stieņa ražošanai izmantojiet elektrisko kanālu, kurā urbjat caurumus, lai varētu uzstādīt LED gaismas. LED josla ir arī jākrāso. Kad viss ir gatavs, uzstādiet gaismas diodes kanālā un izveidojiet elektrisko savienojumu. Pievērsiet uzmanību, lai pareizi pieskaitītu katru LED kabeli ar līmlenti. Elektroinstalācijas laikā tas palīdzēs identificēt katru gaismas diodi.

Visbeidzot, piestipriniet kastīti un LED joslu atkritumu tvertnes priekšpusē.

3. solis: vāka daļa

Vāka daļa
Vāka daļa
Vāka daļa
Vāka daļa

Kas attiecas uz tvertnes vāku, pirmais solis ir pielīmēt servomotoru pie vāka. Iepriekš ir jāpagarina sviras efekts. Svira sasniegs pieturu, kas iepriekš bija roku darbs. Pievienojiet vākam skrūvju kārbu un izveidojiet tajā caurumu, lai noturētu ultraskaņas sensoru pareizajā stāvoklī. Pārliecinieties, vai kabeļi ir pareizi piestiprināti pie vāka ar lenti.

4. solis: programmatūras daļa un datu iegūšana

Programmatūras daļa un datu iegūšana
Programmatūras daļa un datu iegūšana
Programmatūras daļa un datu iegūšana
Programmatūras daļa un datu iegūšana
Programmatūras daļa un datu iegūšana
Programmatūras daļa un datu iegūšana

Attiecībā uz programmatūras daļu mēs izmantojām python programmēšanas valodu. Programma tiek saglabāta SD kartē, kuru pēc ieslēgšanas darbinās Raspberry Pi. Elektroinstalācijas shēma ir pieejama iepriekš. Gpio tapas attēls ir pieejams visiem aveņu veidiem zemāk esošajā saitē:

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

Kustības detektora nomaiņai ir iespējams izmantot ultraskaņas sensoru, jums vienkārši jāizveido kodā "if loop".

Kā minēts iepriekš, dati par tvertnes piepildīšanas līmeni tiek pārsūtīti uz vietni, kas izveidota vietnē wix.com. Šajā vietnē jūs varat atrast dažādas cilnes, kurās tiek apkopoti komandas locekļi, aparatūras un programmatūras prezentācija … Interesanta cilne patiesībā ir cilne "Datu bāze", kas apkopo informāciju par atkritumu daudzumu tieši no SmartBin un izveido grafiku ar datiem. Diagramma parāda pildījuma līmeņa attīstību. Vietnē ir iespējams redzēt vai lejupielādēt datus. Zemāk esošā saite ir mūsu izmantotā vietne, un tā parādīs, kā lasīt un rakstīt Google lapās, izmantojot python:

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

Attiecībā uz koda "autorun daļu" terminālī ierakstiet: sudo nano/etc/xdg/lxsession/LXDE-pi/autostart

Pēc tam tikko atvērtā skripta beigās ierakstiet šīs divas koda rindiņas: python /home/pi/main.py & python /home/pi/csvcontrol.py &

Lai saglabātu aurorun, nospiediet: C trl + O Pēc tam nospiediet: Enter Tad nospiediet: C trl + X

Ierakstiet kā pēdējo koda rindiņu: sudo reboot

Jūs varat arī lejupielādēt pielikumu, kas ir pilns projektam izmantotais pitona kods. Abi kodi tiek palaisti vienlaikus!

Šeit ir kods main.py:

importēt RPi. GPIO kā GPIOimport datetime importēšanas laiku importēt csv

GPIO.setmode (GPIO. BCM)

GPIO.setwarnings (nepatiess)

kapteinisP = 7

servo = 17

GPIO iestatīšana (servo, GPIO. OUT)

GPIO.setup (capteurP, GPIO. IN)

pwm = GPIO. PWM (17, 50)

GPIO iestatīšana (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 iestatīšana (26, GPIO. OUT)

Trig = 23

Atbalss = 24

GPIO iestatīšana (Trig, GPIO. OUT)

GPIO iestatīšana (Echo, GPIO. IN)

GPIO.setwarnings (nepatiess)

GPIO.izvade (5, nepatiesa)

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 ()

attālums = 100 atmiņa = 0 laiks. miega (2) pwm. sākums (12,5)

kamēr taisnība:

timetac = time.time (), ja GPIO.input (capteurP) un timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) time.sleep (0.2) atmiņa = -0,5 pwm. ChangeDutyCycle (0) timetac = time.time () time.sleep (0,5), ja timetac-timeet> 15 vai atmiņa> 0,4: ja atmiņa> 0,4: pwm. ChangeDutyCycle (2.5) time.sleep (1) x diapazonā (0, 1): # GPIO.output (Trig, True) time.sleep (0.01) GPIO.output (Trig, False)

kamēr GPIO.input (Echo) == 0 un timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()

kamēr GPIO.input (atbalss) == 1:

finImpulsion = time.time (), ja timetac-timeset <17: distance1 = round ((finImpulsion-debitImpulsion) * 340 * 100 /2, 1) distance2 = distance if (distance1-distance2) <1 and (distance2-distance1) 0.4: dis = apaļš ((60 attālums)*5/6, 1) ar atvērtu ('capteur.csv', 'w') kā 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)) kapteinis. writeow ([time_str, dis]) atmiņa = -0,1, ja attālums <52,5: GPIO.output (5, True) cits: GPIO.output (5, False), ja attālums <45: GPIO. output (6, True) cits: GPIO.izvade (6, nepatiesa), ja attālums <37,5: GPIO.izvade (13, patiesa) cits: GPIO.izvade (13, nepatiesa), ja attālums <30: GPIO.izvade (19, patiesa) cits: GPIO.izvade (19, nepatiess), ja attālums <22,5: GPIO.izvade (20, patiesa) cits: GPIO.izvade (20, nepatiesa), ja attālums <15: GPIO.izvade (21, patiesa) cits: GPIO.izvade (21, nepatiesa) ja attālums <7.5: GPIO.output (26, True) cits: GPIO.output (26, False)

Šeit ir kods csvcontrol.py. Neaizmirstiet ielīmēt izveidoto ".json" failu tajā pašā main.py direktorijā. Fails ".json" ir izveidots, izmantojot google API. Attēlos ir pieejams ekrānuzņēmums.

importēt datetimeimport laiks importēt csv importēt gspread

no oauth2client.service_account importēšanas ServiceAccountCredentials

no laika importēšanas miega importa izsekošana

timec2 = 'lol'

kamēr True: time.sleep (5) loc = ('capteur.csv') ar atvērtu (loc) kā csvfile: readCSV = csv.reader (csvfile, delimiter = ',') rindai readCSV: print (rinda [0]) timec = rinda [0] drukāt ([1] rinda) attālums = rinda [1] attālums = peldēt (str (attālums)), ja laiksc2! = timec: timec2 = timec print ('Laiks: {0} Kvantīts: { 1} '. Formāts (timec, distance))

DARBĪBAS JOMAS = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ braukt "]

akreditācijas dati = ServiceAccountCredentials.from_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (akreditācijas dati) wks = gc.open ("graph"). sheet1 wks = wks.append_row ((timec, distance))

Ieteicams: