Tartalomjegyzék:

SmartBin: 4 lépés
SmartBin: 4 lépés

Videó: SmartBin: 4 lépés

Videó: SmartBin: 4 lépés
Videó: ▶️ Третья жизнь Дарьи Кирилловны 3 и 4 серия - Мелодрама | Фильмы и сериалы - Русские мелодрамы 2024, November
Anonim
Image
Image

A projekt fő célja egy elektronikus eszköz létrehozása, amely legalább egy Raspberry Pi -t használ. A csapat 5 leendő gépészmérnökből és egy automatizálási mérnökből áll. Projektünk abból áll, hogy egy kukát készítünk, amely automatikusan kinyílik és bezáródik, a lábmozgás hatására, a szemetes közepén található mozgásérzékelő alatt. A Wifi USB pendrive segítségével adatokat küldhet a webhelyre. Ezt a tárolót "The SmartBin" -nek hívják. A fenti humoros videó bemutatja innovatív SmartBin készülékünket.

A projekt és a figyelemre méltó SmartBin megvalósításához számos eszközre volt szükség:

  • Egy méter
  • Erős ragasztó
  • Ragasztószalag
  • Egy fa fűrész
  • Egy csavarhúzó
  • Fúrógép
  • Egy bilincs
  • Kés

1. lépés: SmartBin berendezés

SmartBin berendezés
SmartBin berendezés
SmartBin berendezés
SmartBin berendezés

A SmartBin zöld, narancssárga és piros LED -es lámpákból áll, amelyek a tartály bal oldalán található szerelvényen vannak elhelyezve, és jelzik, hogy mennyire van tele. Ezek a lámpák jól láthatók lesznek, és figyelmeztetik a felhasználót, ha ki kell cserélni a szemeteszsákot. A programozási nyelv a Python. A tartály mért töltési szintjét a következő webhelyre továbbítják:

Íme a felhasznált elemek, de könnyen megtalálhatja az alternatív megoldást:

  • 1 szemetes ("lengőtakaró")
  • 1 Szervómotor a tartály kinyitásához
  • 1 Raspberry Pi 2
  • 2 tápegység (5V -os mobiltelefon -töltő és 6V -os tápegység) a Raspberry Pi és a szervomotor ellátásához
  • 1 Ultrahangos érzékelő a tartály töltési szintjének mérésére
  • Néhány LED jelzi a töltési szintet (4 zöld, 2 narancssárga és 1 piros)
  • 1 Ultrahangos mozgásérzékelő mozgás érzékelésére
  • 1 db 16 GB-os SD kártya
  • Elektromos ellenállások (10 000 ohm, 2000 ohm és 1000 ohm)
  • 1 WiFi usb pálca a vezeték nélküli átvitel engedélyezéséhez a webhelyre.
  • 1 Kenyértábla és néhány málna kábel

A becsült gyártási ár 80 €.

2. lépés: A Málna doboz és a LED sáv gyártása

A Raspberry Box és a LED Bar gyártása
A Raspberry Box és a LED Bar gyártása
A Raspberry Box és a LED Bar gyártása
A Raspberry Box és a LED Bar gyártása
A Raspberry Box és a LED Bar gyártása
A Raspberry Box és a LED Bar gyártása

A Málna doboz gyártásához használjon fűrészt. Rögzítse a doboz minden oldalát szegecsekkel, hogy tiszta legyen. Ahogy a neve is sugallja, ez a doboz nemcsak a Raspberry Pi -t tartalmazza, hanem a mozgásérzékelőt is, amelyet az aljára helyez. Ha a doboz meg van építve, fesse le a kukával azonos színűre. A doboz létrehozásához 3D nyomtatási technológia használható.

A LED -sáv gyártásához használjon elektromos csatornát, amelyben lyukakat fúr, hogy lehetővé tegye a LED -lámpák felszerelését. A LED oszlopot is festeni kell. Ha minden készen áll, szerelje be a LED -eket a csatornába, és végezze el az elektromos csatlakozást. Ügyeljen arra, hogy az egyes LED -kábeleket ragasztószalaggal megfelelően számozza. Segít azonosítani az egyes LED -eket a bekötés során.

Végül rögzítse a dobozt és a LED -sávot a kukája elé.

3. lépés: A fedél része

A fedél része
A fedél része
A fedél része
A fedél része

Ami a tartály fedelét illeti, az első lépés a szervomotor ragasztása a fedélre. Korábban meg kell hosszabbítani a tőkeáttételt. A kar ütközésbe ütközik, amely korábban kézzel készült. Csatlakoztasson egy csavardobozt a fedélhez, és készítsen rajta egy lyukat az ultrahangos érzékelő megfelelő helyzetben tartásához. Győződjön meg arról, hogy a kábeleket helyesen rögzítette a fedélre ragasztószalaggal.

4. lépés: Szoftverrész és adatgyűjtés

Szoftver rész és adatgyűjtés
Szoftver rész és adatgyűjtés
Szoftver rész és adatgyűjtés
Szoftver rész és adatgyűjtés
Szoftver rész és adatgyűjtés
Szoftver rész és adatgyűjtés

A szoftver rész tekintetében a python programozási nyelvet használtuk. A program az SD-kártyára kerül mentésre, amelyet a Raspberry Pi futtat, amikor bekapcsolja. A bekötési séma fent olvasható. A Gpio csapok képe az összes málnatípushoz elérhető az alábbi linken:

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

Lehetőség van ultrahangos érzékelő használatával a mozgásérzékelő cseréjére, csak létre kell hoznia egy "if loop" -t a kódban.

Amint fentebb említettük, a tartály feltöltési szintjére vonatkozó adatokat a wix.com webhelyen létrehozott webhelyre továbbítják. Ezen a webhelyen különböző lapokat találhat, amelyek csoporttagokat, hardver- és szoftverbemutatót gyűjtenek össze.… Az érdekes lap valójában az "Adatbázis" lap, amely közvetlenül a SmartBin -ből gyűjti a szemét mennyiségére vonatkozó információkat, és grafikont készít az adatokról. A grafikon a töltés szintjének alakulását mutatja. Lehetőség van adatok megtekintésére vagy letöltésére a webhelyről. Az alábbi link az általunk használt webhely, és megmutatja, hogyan kell olvasni és írni a Google lapokon python segítségével:

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

A kód "autorun" részével kapcsolatban írja be a terminálba: sudo nano/etc/xdg/lxsession/LXDE-pi/autostart

Ezután a most megnyíló szkript végén írja be ezt a két kód sort: python /home/pi/main.py & python /home/pi/csvcontrol.py &

Az aurorun mentéséhez nyomja meg: C trl + O, majd nyomja meg: Enter, majd nyomja meg: C trl + X

Írja be utolsó kódsorként: sudo reboot

Letöltheti a mellékletet is, amely a projekthez használt teljes python -kód. Mindkét kód egyszerre fut!

Itt a main.py kód:

import RPi. GPIO mint GPIOimport dátum és idő import import csv

GPIO.setmode (GPIO. BCM)

GPIO.setwarnings (hamis)

capteurP = 7

szervo = 17

GPIO.setup (szervo, 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

Visszhang = 24

GPIO.setup (Trig, GPIO. OUT)

GPIO.setup (Echo, GPIO. IN)

GPIO.setwarnings (hamis)

GPIO.output (5, hamis)

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

távolság = 100 memória = 0 idő. alvás (2) pwm.start (12.5)

míg igaz:

timetac = time.time () ha GPIO.input (capteurP) és timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) time.sleep (0.2) memória = -0.5 pwm. ChangeDutyCycle (0) timetac = time.time () time.sleep (0,5), ha timetac-timeset> 15 vagy memória> 0,4: ha memória> 0,4: pwm. ChangeDutyCycle (2.5) time.sleep (1) x tartományban (0, 1): # GPIO.output (Trig, True) time.sleep (0.01) GPIO.output (Trig, False)

míg a GPIO.input (Echo) == 0 és a timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()

míg a GPIO.input (Echo) == 1:

finImpulsion = time.time () ha timetac-timeset <17: distance1 = round ((finImpulsion-debutImpulsion) * 340 * 100 /2, 1) distance2 = távolság, ha (távolság1-távolság2) <1 és (távolság2-távolság1) 0,4: dis = kerek ((60-távolság)*5/6, 1) nyitva ('capteur.csv', 'w') csv-fájlként: 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. író ([idő_str, dis]) memória = -0,1, ha a távolság <52,5: GPIO.kimenet (5, igaz) más: GPIO.kimenet (5, hamis), ha a távolság <45: GPIO.kimenet (6, igaz) más: GPIO.kimenet (6, hamis), ha a távolság <37,5: GPIO.kimenet (13, igaz) más: GPIO.kimenet (13, hamis), ha a távolság <30: GPIO.kimenet (19, igaz) más: GPIO. kimenet (19, hamis), ha a távolság <22,5: GPIO.kimenet (20, igaz) más: GPIO.kimenet (20, hamis), ha a távolság <15: GPIO.kimenet (21, igaz) más: GPIO.kimenet (21, hamis) ha a távolság <7,5: GPIO.output (26, True) else: GPIO.output (26, False)

Itt található a csvcontrol.py kód. Ne felejtse el beilleszteni a létrehozott ".json" fájlt a main.py fájl azonos könyvtárába. A ".json" fájl a Google API segítségével jön létre. A képeken elérhető egy screenshot.

import datetimeimport time import csv import gspread

from oauth2client.service_account import ServiceAccountCredentials

időtől import alvás import nyomkövetés

timec2 = 'lol'

míg igaz: time.sleep (5) loc = ('capteur.csv') open (loc) as csvfile: readCSV = csv.reader (csvfile, delimiter = ',') for readCSV: print (row [0]) timec = sor [0] nyomtatás ([1] sor) távolság = sor [1] távolság = lebegés (str (távolság)), ha timec2! = timec: timec2 = timec print ('Idő: {0} Quantitee: { 1} '. Formátum (timec, távolság))

TARTOMÁNYOK = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ hajtás"]

hitelesítő adatok = ServiceAccountCredentials.from_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (hitelesítő adatok) wks = gc.open ("graph"). sheet1 wks = wks.append_row ((timec, távolság))

Ajánlott: