Tartalomjegyzék:

Háziállat -etető gép RasPi -vel és táviratbot -tal: 4 lépés (képekkel)
Háziállat -etető gép RasPi -vel és táviratbot -tal: 4 lépés (képekkel)

Videó: Háziállat -etető gép RasPi -vel és táviratbot -tal: 4 lépés (képekkel)

Videó: Háziállat -etető gép RasPi -vel és táviratbot -tal: 4 lépés (képekkel)
Videó: Raspberry Pi Rack - 6 node 3D Printed 1U Pi cluster 2024, Július
Anonim
Pet Feeder Machine RasPi és Telegram Bot segítségével
Pet Feeder Machine RasPi és Telegram Bot segítségével
Pet Feeder Machine RasPi és Telegram Bot segítségével
Pet Feeder Machine RasPi és Telegram Bot segítségével

Először is tisztáznom kell, hogy ez nem eredeti Idea Mine, csak frissítse és adaptálja a programozási szkripteket a távirattal való működéshez, egy korábbi Instructable -ben találtam, így a hitelek valóban a szerzői.

Ennek a spanyol változatát láthatjátok a személyes blogomban:

Ki kell építeni egy kis áramkört, amely aktiválja a nagy nyomatékú motort, és mivel az elektronikai ismereteim nagyon -nagyon szűkösek, pár napot el kellett töltenem az alapok tanulásával a YouTube -on lévő videók megtekintésével.

Az eredeti automatizálási szkript Python nyelven íródott, és GMail kapcsolatot használ a parancsok megtekintéséhez, még soha nem használtam ezt a programozási nyelvet, de az igazság nem annyira különbözik a többitől, kicsit módosítottam, hogy jobban alkalmazkodjon az újhoz A Python könyvtárak és az automatizálási folyamat az operációs rendszer konfigurációival együtt lehetővé teszi a következők paraméterezését:

  • Az interakció a Chat -hez küldött parancsokon keresztül, a ChatBots segítségével vezérelhető.
  • Lehetővé teszi a kiadott étel állapotának nyomon követését.
  • Szabályozza, hogy mennyi ételt adjon ki.
  • Gombokkal rendelkezik, amelyek lehetővé teszik a kézi adagolást.
  • Nem teszi lehetővé a túltáplálást, ha 8 órás időközönként letiltja az etetést.
  • Állapotkijelzővel rendelkezik, amely az adatokat a következő tápegység következő alkalmának dátumaként és időként jeleníti meg, az SSID -t, amelyhez a WiFi -hez csatlakozik, és az eszköz IP -címét.
  • Választható: Chuck Norris véletlenszerű vicceit és / vagy számok apróságát mutatja be egy pár nyilvános APIS segítségével (az eredeti szerző zseniális).
  • A rendszer immunis az újraindításra az áramkimaradások miatt, mivel elmenti az állapotfájlt.
  • A rendszer észleli, ha megszakad a kapcsolat, és megpróbálja újracsatlakozni, amíg nem sikerül.

1. lépés: Használt anyagok

  • 1 Raperry Pi, lehetőleg a 3 -as verzió, amely már integrálva van a Wireless kártyával, a Pi 3 Zero verziót is használhatja, kicsit több munkát igényel, mert forrasztania kell a csapokat, de nagyon későn jöttem rá, hogy használjon ezek közül a gazdaságosabbakat.
  • 1 nagy nyomatékú elektromos motor, 37 mm, 3,5 fordulat / perc és 12 V.
  • 1 Keret 37 mm -es motorhoz.
  • 1 karakteres, 20x4 soros LCD képernyő HD44780 vezérlővel.
  • 1 gabonaadagoló Zevro WM1001 modell 5 tengely hosszú, 0,63 cm átmérőjű (D vágás szükséges az adagolóhoz való rögzítéshez)
  • 1 Tengelycsatoló 1/4 "-tól 6 mm -ig a motorhoz való csatlakoztatáshoz.

Az összes korábbi anyagot, kivéve az utolsó kettőt, nem tudtam beszerezni hazámban (vagy legalábbis nem tudtam, hol lehet beszerezni), de a rúd és a csatlakozó valószínűleg hegesztőműhelyben vannak, de először csinálok valamit így fogalmam sem volt, hogyan kell illeszkedni a motorhoz, ezért megkérdeztem a fent leírt linkek oldalát; Az alábbiakban a helyi boltokban vásárolható anyagok találhatók:

  • 1 fadoboz, én 20,3 cm széles × 26,7 cm magas x 13 cm mélységet használok. a doboz egy ajtóval rendelkezik, amely jobbra nyílik, 10 cm x 4 cm lyukkal az LCD képernyő elhelyezéséhez (helyi asztalos)
  • 3 Nyomógombok
  • 1 kis Protoboard
  • 1 3,3 voltos LED (nem számít a színe, de a feszültség miatt általában pirosak)
  • 1 NPN PN2222 tranzisztor
  • 1 270 Ω ellenállás
  • 1 ellenállás 10 KΩ
  • 1 10 KΩ -os potenciométer
  • 1 IN4003 dióda (IN4001 vagy IN4004 működhet)
  • 1 db 12V 3A adapter
  • 1 db 5V 2A adapter
  • 4 csavar 1,5 hüvelyk és 2 hüvelyk közötti szárnyas anyával (a használt fa vastagságától függően a motorkeretet a fadobozhoz kell rögzíteni)
  • Kábelek Jumper szálak különböző színekben
  • 1 összecsukható cső vagy 4 hüvelyk átmérőjű PVC készlet, ez attól függ, hogy milyen magasságban helyezik el a fadobozt.
  • 1 PVC könyök, amely az előző öntvényhez kapcsolódik.
  • 3 bilincs autócsövekhez (A világ)
  • 4 láb UTP kábel (a csavart párokra van szükségünk a csatlakoztatáshoz)
  • 1 USB Webkamera, nem feltétlenül kell nagy felbontásúnak lennie.

Néhány különféle anyag, amelyet a hardverboltokban lehet beszerezni, vagy esetleg már rendelkezünk: Ipari szalag

  • Bádoghegesztő
  • Ón
  • Fúró
  • Fúró 5/16
  • S8 csavarok bővítőkkel

2. lépés: A szerkezet elhelyezése

A szerkezet elhelyezése
A szerkezet elhelyezése
A szerkezet elhelyezése
A szerkezet elhelyezése
A szerkezet elhelyezése
A szerkezet elhelyezése

A fő ötlet az, hogy a ZEVRO -ban lévő adagoló fogantyút lecseréljük a D rúdra, amelyet ezután a tengelykapcsoló segítségével csatlakoztatunk a motorhoz. Az adagolót a fadobozhoz, a fadobozt pedig a falhoz rögzítik. Mivel nem ismerem sok elektronikát, nem használtam bakelit lemezt az áramkör felszerelésére, ezért a kenyérlemezt használtam az összes alkatrész elhelyezésére, így a doboz alján csavarokkal kell rögzíteni a Rapberry Pi -t és a kenyérlapot, amelyen már volt ragasztó hátul, így csak elmentem beilleszteni. A doboznak három gombbal kell rendelkeznie, amelyek az időzítő újraindítását, az adagoló aktiválását és az utolsó közvetlen lépést jelentenek a motor aktiválásához anélkül, hogy át kellene menni az áramkörön. A motort a dobozon belül tartjuk a konzol segítségével, így csak az adagolóhoz csatlakozó D rúd fog kilógni a dobozból, a doboz alján rögzítse és állítsa be a webkamerát úgy, hogy minden e -mail konzultáció és megerősítés során fényképet küldött arról, hogy milyen a tányér, ezt ne tegyük túl etetésre, ha nem fejezték be az utolsó ételkört.

Az adagoló aljáról a csövet, amely lemegy a lemezhez, és a PVC könyökét az alapra helyezték, egy kis ipari szalagot helyeztem a kimenetbe, hogy minimalizálja az élelmiszer áramlásának sebességét, és adagolóalapot készítettem megakadályozza, hogy az élelmiszer mindenhol permetezzen. A cső falhoz rögzítéséhez használjon fém konzolokat, amelyeket az S8 csapokkal rögzít a falhoz.

A doboz ajtajánál fogva tartsa az LCD képernyő lemezét, és az UTP kábel sodrott párjaival vigye őket közvetlenül a Málnához, a kábelek másik végén pedig a jumper hüvelyét illessze össze, hogy megkönnyítse a csatlakozást a Raspberry GPIO portjait. Ez lenne a kapcsolási rajz. Megpróbálom elmagyarázni, hogy milyen keveset kaphatok az Electronics -tól.

A motor közvetlenül a 12 voltos transzformátor pozitív pólusához van csatlakoztatva, de az áramláshoz át kell haladnia a motor semleges pólusán lévő áramkörön, ehhez az N2222 tranzisztorhoz használják. A tranzisztoroknak általában 3 lába van, amelyek egy kollektornak, egy bázisnak és egy emitternek felelnek meg, a tranzisztor modelljétől függően ezeknek a lábaknak a helye változhat; Ez a tranzisztor működteti a kapcsolót. Itt csatlakoztatjuk a motor semleges pólusát a tranzisztor kollektorához, a rózsabogyó # 19 -es csapja 270Ω ellenállással csatlakozik az alaphoz, és az emitter a tranzisztor semleges csatlakozójához. 12V -os transzformátor a málna egyik földi pólusával együtt; a tranzisztor addig engedi az áramot a kollektor és az emitter között, amíg a bázist kellő feszültséggel stimulálják; később úgy programozzuk a répát, hogy bizonyos megrendelések szerint a 19 -es port 3,3 voltot bocsásson ki, ami elegendő az áramkör folytatásához és a motor aktiválásához.

Az LCD képernyő esetében a protobard másik részét egy másik áramkörben használják, ahol csatlakoztatja a 10KΩ -os potenciométert, amely elutasítja az LCD -n megjelenő szöveg kontrasztját, így ha semmi sem jelenik meg a képernyőn, valószínűleg azért, mert a potenciométer teljesen zárva; esetemben teljesen nyitva hagyom, hogy a szöveg jobban látható legyen. Végül a kenyértábla csatlakozásai a következők.

3. lépés: A Raspberry Pi konfigurálása

Először is fontos létrehozni a Telegram Botot, amelyet a rendszer felügyel. A kulcshoz szüksége lesz a mellékelt python -parancsfájl módosításához. Kérjük, olvassa el a távirat dokumentációjának lépéseit:

core.telegram.org/bots#3-how-do-i-create-a-bot

A rapberry konfigurálásához használja a Rapbian Lite verzióját (nincs szükségünk a grafikus felületre), és alkalmazza azt az alapkonfigurációt, amely megjeleníti a raspbian telepítését vagy a raspi-config parancsot: bővítse ki a helyet 100% -ra, és engedélyezze az SSH, de különösen a legfontosabb, hogy a jelszót és a felhasználónevet az alapértelmezett pi felhasználóra változtassuk (különben, ahogy velem történt, a 22 -es port támadást szenvedhetnek, ha nyilvános IP -címük van a málnának). Ettől eltekintve az a konfiguráció, amely automatikusan kapcsolódik a WiFi hálózatomhoz (feltéve, hogy a hálózatomat "BlogSoriano" -nak hívják, és a jelszavam "$ ecure123!") A kulcsot a következő paranccsal generáljuk és mentjük a vezeték nélküli kapcsolatok fájlba:

sudo wpa_passphrase "BlogSoriano" "$ ecure123!" | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf>/dev/null

a következő dolog a python telepítési rendszer "pip" frissítése és telepítése, így root felhasználóként jelentkezünk be, frissítjük és telepítjük a szükséges csomagokat:

sudo -i apt-get update apt-get install build-essential python-dev python-smbus python-pip

Ezzel már hozzáférünk a python osztálykönyvtárhoz, a használni kívánt szkripthez telepítenünk kell a következőket:

pip install RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces vezeték nélküli telepot cv2

Amint a függőségek telepítése befejeződött, a lépéshez csatolt szkriptet fogjuk használni, elmentem a /opt/petfeeder.py elérési útra, és a fájl létrehozható a nano /opt/petfeeder.py paranccsal és ezen a fájlon belül beillesztjük a kódot, vagy ha több Linux tapasztalattal rendelkezik, akkor közvetlenül a wget segítségével töltheti le. A szkriptben fontos módosítani a BOTKEY (a 36. sorban) és a SYSPASSWORD (a 23. sorban) változókat.

Tisztázom, hogy ezt a kódot nem én írtam, mivel soha nem programoztam Python -ban, csak módosítottam, hogy működjön az új könyvtárakkal és a 20x4 -es LCD -képernyővel, valamint a Bot táviratot.

Miután megvan a Script, meg kell változtatnunk a változók értékeit a bot kulcsát; ehhez új Telegram Bot létrehozása szükséges, ezzel csak a fájl mentése és kilépése lenne (Ctrl + vagy mentés és ctrl + x elhagyja a szerkesztő nano -t), csak az újraindítás bizonyítéka kell, hogy legyünk; maga a szkript menti az energiaellátó rendszer legutóbbi aktiválását, így csak a szkriptet kell futtatnunk minden alkalommal, amikor az operációs rendszer elindul, erre találtam egy nagyon különleges megoldást egy felügyelő nevű programmal, amelyet a Debian tárolókból telepítenek:

apt-get telepítésfelügyelő

és miután telepítettük, csak egy konfigurációs fájlt kell létrehoznunk az /etc/supervisor/conf.d/petfeeder.conf fájlban, mint az előző esetben, ha nano segítségével készíthetjük és menthetjük, ez a fájl a következőket tartalmazza:

[program: petfeederd] könyvtár =/opt parancs = python petfeeder.py autostart = true autorestart = true

A fájl mentése után használhatjuk a supervisorctl [start | megáll | restart] petfeederd, mivel ebben az esetben a szolgáltatás még nem indult el, a következővel indítjuk:

felügyelő indítson petfeederd

4. lépés: Készen áll a tesztelésre

Image
Image
Tesztre kész
Tesztre kész
Tesztre kész
Tesztre kész
Tesztre kész
Tesztre kész

És ezzel a rendszernek működnie kell, az LCD -képernyőn információkat kell megjeleníteni arról, hogy mikor legyen a következő adag, vagy ha készen áll az etetésre, ha azt mondom. Meg kell mutatnia annak a vezeték nélküli hálózatnak a nevét, amelyhez csatlakozik, és a használt IP -címet, ha SSH -n keresztül kell csatlakoznunk. Megosztom egy kis videót, amelyet készítettem, elnézést a minőségéért, nem vagyok túl jó ez a vlogok témája.

Képesnek kell lennie keresni a botját a Telegramon, és elküldeni a következő parancsok egyikét, miután engedélyezte a csevegést:

/feed: Elindítja az etetési folyamatot mindaddig, amíg a paraméterezett időtartam letelt.

/mikor: információt ad vissza arról, hogy mikor volt az utolsó etetés, és képet az étel tányérjáról.

/fotó: Visszaad egy képet az étel tányérjáról.

/restart: Indítsa újra a rendszert, állítsa az utolsó feed változóját 0 -ra, hogy azonnal tudjon etetni.

/állapot Informál az internetkapcsolat állapotáról: a csatlakoztatott vezeték nélküli hálózat SSID -je és a rendszer IP -címe.

Ajánlott: