Obsah:

Zariadenie na kŕmenie domácich zvierat s robotom RasPi a telegramom: 4 kroky (s obrázkami)
Zariadenie na kŕmenie domácich zvierat s robotom RasPi a telegramom: 4 kroky (s obrázkami)

Video: Zariadenie na kŕmenie domácich zvierat s robotom RasPi a telegramom: 4 kroky (s obrázkami)

Video: Zariadenie na kŕmenie domácich zvierat s robotom RasPi a telegramom: 4 kroky (s obrázkami)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Júl
Anonim
Stroj na kŕmenie domácich zvierat s robotom RasPi a telegramom
Stroj na kŕmenie domácich zvierat s robotom RasPi a telegramom
Stroj na kŕmenie domácich zvierat s robotom RasPi a telegramom
Stroj na kŕmenie domácich zvierat s robotom RasPi a telegramom

Najprv musím objasniť, že to nie je originál Idea Mine, len aktualizujte a prispôsobte programovacie skripty práci s telegramom, našiel som to v predchádzajúcom Instructable, takže autormi sú skutočne kredity.

Španielsku verziu ste mohli vidieť na mojom osobnom blogu:

Musíte vybudovať malý obvod, ktorý aktivuje motor s vysokým krútiacim momentom, a pretože moje znalosti elektroniky sú veľmi, veľmi vzácne, musel som stráviť pár dní učením sa základov sledovaním videí na YouTube.

Pôvodný automatizačný skript je napísaný v Pythone a používa GMail pripojenie na konzultáciu príkazov. Nikdy som tento programovací jazyk nepoužíval, ale pravda sa až tak nelíši od ostatných, trochu som ho upravil, aby sa lepšie prispôsobil novému knižnice Python a automatizačný proces spolu s konfiguráciami operačného systému vám umožňujú parametrizovať nasledujúce položky:

  • Interakcia prostredníctvom príkazov odoslaných do chatu je riadená prostredníctvom ChatBots.
  • Umožňuje sledovať stav vydaných potravín.
  • Kontroluje, koľko jedla sa bude vydávať.
  • Má tlačidlá, ktoré vám umožňujú podávať ručne.
  • Neumožňuje prekrmovanie tým, že zakáže kŕmenie v 8-hodinových intervaloch.
  • Má stavový LCD displej, ktorý zobrazuje údaje ako dátum a čas nasledujúceho času pre ďalšie napájanie, SSID, ku ktorému je pripojený k WiFi, a IP adresu zariadenia.
  • Voliteľné: Ukazuje niekoľko náhodných vtipov Chucka Norrisa a / alebo Trivia of Numbers pomocou dvojice verejných APIS (Geniálny pôvodný autor).
  • Systém je odolný voči reštartu z dôvodu výpadkov prúdu, pretože ukladá stavový súbor.
  • Systém detekuje výpadok pripojenia a pokúsi sa znova pripojiť, kým nebude úspešný.

Krok 1: Použitý materiál

  • 1 Raperry Pi, najlepšie verzia 3, ktorá je už integrovaná s bezdrôtovou kartou, môžete použiť aj verziu Pi 3 Zero, chce to trochu viac práce, pretože musíte spájkovať piny, ale veľmi neskoro som zistil, že by to šlo použite jeden z nich, ktorý je ekonomickejší.
  • 1 elektromotor s vysokým krútiacim momentom, 37 mm, 3,5 ot / min a 12V.
  • 1 brzda pre 37 mm motor.
  • 1 znakový LCD displej s rozmermi 20 x 4 riadky a ovládaním HD44780.
  • 1 dávkovač na cereálie Zevro Model WM1001 hriadeľ-D s dĺžkou 5 palcov a priemerom 0,63 cm (na jeho pripevnenie k dávkovaču je potrebný rez D)
  • 1 Hriadeľová spojka od 1/4 "do 6 mm na pripojenie k motoru.

Všetky predchádzajúce materiály, okrem posledných dvoch, som ich nemohol dostať vo svojej krajine (alebo som aspoň nevedel, kde ich získať), tyč a spojka sú však pravdepodobne vo zváračskej dielni, ale keď niečo robím prvýkrát takto som netušil, ako by sa to malo hodiť k motoru, a tak som sa spýtal na stránku odkazov popísaných vyššie; Nasleduje materiál, ktorý som si mohol kúpiť v miestnych obchodoch:

  • 1 drevená krabica, používam šírku 20,3 cm × 26,7 cm x hĺbku 13 cm. box má dvere, ktoré sa otvárajú vpravo s otvorom 10 cm x 4 cm na umiestnenie obrazovky LCD (miestne stolárstvo)
  • 3 Tlačidlá
  • 1 Malý protoboard
  • 1 LED 3,3 voltov (nezáleží na farbe, ale pre napätie sú zvyčajne červené)
  • 1 tranzistor NPN PN2222
  • 1 Odpor 270 Ω
  • 1 Odpor 10 KΩ
  • 1 potenciometer 10 KΩ
  • 1 dióda IN4003 (môže fungovať IN4001 alebo IN4004)
  • 1 adaptér 12V 3A
  • 1 5V 2A adaptér
  • 4 skrutky s krídlovou maticou od 1,5 palca do 2 palcov (v závislosti od hrúbky použitého dreva majú pripevniť konzolu motora k drevenej krabici)
  • Káble Prepojovacie vlákna rôznych farieb
  • 1 skladacia trubica alebo sada PVC s priemerom 4 palce, to závisí od výšky, v ktorej bude drevená krabica umiestnená.
  • 1 koleno z PVC, ktoré sa pripája k predchádzajúcemu nahodeniu.
  • 3 svorky na automobilové rúry (Svet)
  • 4 stopy kábla UTP (na pripojenie potrebujeme krútené páry)
  • 1 webová kamera USB, nie je potrebné mať vysoké rozlíšenie.

Niektoré rôzne materiály, ktoré je možné získať v železiarstve alebo možno už máme: Priemyselná páska

  • Cínová zváračka
  • Cín
  • Vŕtačka
  • Vrták 16/16
  • Skrutky S8 s expandérmi

Krok 2: Umiestnenie konštrukcie

Umiestnenie konštrukcie
Umiestnenie konštrukcie
Umiestnenie konštrukcie
Umiestnenie konštrukcie
Umiestnenie konštrukcie
Umiestnenie konštrukcie

Hlavnou myšlienkou je nahradiť dávkovaciu rukoväť, ktorá sa dodáva v ZEVRO, za tyč D, ktorá bude potom spojená s motorom pomocou spojky. Dávkovač bude pripevnený k drevenej krabici a drevená krabica k stene. Keďže neviem veľa elektroniky, na zapojenie obvodu som nepoužil žiadnu bakelitovú dosku, preto som na vloženie všetkých komponentov použil dosku, takže v spodnej časti škatule sa upevňujú skrutkami Rapberry Pi a doštička, ktorá už mala lepidlo. na chrbát tak som to išiel len nalepiť. Krabica musí mať tri tlačidlá, ktoré budú mať funkciu Reštartovať časovač, aktivovať podávač a posledné bude priamym krokom k aktivácii motora bez toho, aby ste museli prechádzať obvodom. Motor bude držaný vo vnútri škatule pomocou konzoly, takže z tyče bude vyčnievať iba tyč D, ktorá sa pripája k výdajnému stojanu, v spodnej časti škatule upevnite a upravte webovú kameru tak, aby pri každej mailovej konzultácii a potvrdení poslala fotografiu, ako je na tom tanier, aby sa neprekrmovalo v prípade, že nedokončili posledné kolo jedla.

Zo spodnej časti dávkovača bola umiestnená trubica, ktorá klesá k doske, a na základňu bolo umiestnené koleno z PVC. Do vývodu som umiestnil malú priemyselnú pásku, aby sa minimalizovala rýchlosť toku jedla, a vyrobil som dávkovaciu základňu pre zabráňte striekaniu potravín kdekoľvek. Na pripevnenie potrubia k stene použite kovové konzoly, ktoré pripevníte k stene pomocou skrutiek S8.

Na dverách škatule držte dosku LCD obrazovky a skrútenými pármi UTP kábla ich vezmite priamo k Raspberry, na druhom konci káblov spojte ženské konce prepojok, aby ste uľahčili pripojenie v GPIO porty Raspberry. Toto by bola schéma zapojenia. Pokúsim sa to vysvetliť s tým málom, čo môžem od elektroniky získať.

Motor je pripojený priamo k kladnému pólu 12 -voltového transformátora, ale aby prúd mohol pretekať, musí prejsť obvodom v neutrálnom póle motora, pretože sa používa tento tranzistor N2222. Tranzistory majú zvyčajne 3 nohy, ktoré zodpovedajú kolektoru, základni a emitoru, v závislosti od modelu tranzistora sa umiestnenie týchto vetiev môže líšiť; Tento tranzistor robí funkciu spínača. Tu spojíme neutrálny pól motora s kolektorom tranzistora, pin # 19 rapberry je spojený s bázou pomocou odporu 270Ω a vysielač je spojený s neutrálnou svorkou tranzistora. Transformátor 12V spolu s jedným zo zemných pólov maliny; tranzistor nechá prúdiť prúd medzi kolektorom a emitorom, pokiaľ je báza stimulovaná dostatočným napätím; neskôr naprogramujeme rapberry tak, aby podľa určitých príkazov port 19 vysielal 3,3 voltov, dosť na to, aby obvod pokračoval a aktivoval motor.

V prípade obrazovky LCD je iná časť protobardu použitá v inom obvode, kde pripojíte potenciometer 10 KΩ, ktorý odmietne kontrast textu, ktorý sa zobrazuje na displeji LCD, takže ak sa na obrazovke nič nezobrazí, je to pravdepodobne preto, že potenciometer je úplne zatvorené; v mojom prípade to nechávam úplne otvorené, aby bol text lepšie vizualizovaný. Nakoniec budú spojenia v breadboarde nasledujúce.

Krok 3: Konfigurácia Raspberry Pi

Najprv je dôležité vytvoriť telegramového robota, ktorý bude systém spravovať. Na úpravu priloženého skriptu python budete potrebovať kľúč. Prečítajte si kroky v dokumentácii k telegramu:

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

Na konfiguráciu rapberry použite zjednodušenú verziu programu Rapbian (grafické rozhranie nepotrebujeme) a použite základnú konfiguráciu, ktorá ukazuje raspbian hneď po inštalácii alebo pomocou príkazu raspi-config: rozšírte priestor na 100% a povoľte SSH, ale najdôležitejšia vec je zmeniť heslo a používateľské meno na používateľské pi, ktoré je predvolene dodávané (V opačnom prípade, ako sa mi stalo, môžu utrpieť útok cez port 22, ak majú verejnú IP adresu adresovanú malinovému). Okrem toho konfigurácia na automatické pripojenie k mojej sieti WiFi (za predpokladu, že sa moja sieť nazýva „BlogSoriano“a moje heslo je „$ ecure123!“) Generujeme a uložíme kľúč v súbore bezdrôtových pripojení pomocou nasledujúceho príkazu:

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

ďalšia vec je aktualizovať a nainštalovať inštalačný systém pythonu „pip“, aby sme sa prihlásili ako root, aktualizovali a nainštalovali potrebné balíky:

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

Vďaka tomu už máme prístup do knižnice tried python, pre skript, ktorý budeme používať, musíme nainštalovať nasledujúce:

pip install RPi. GPIO Adafruit-CharLCD httplib2 html2text siete bezdrôtový telepot cv2

Akonáhle je inštalácia závislostí ukončená, použijeme skript priložený k tomuto kroku, uložím ho na cestu /opt/petfeeder.py a súbor je možné vytvoriť pomocou príkazu nano /opt/petfeeder.py a vo vnútri tohto súboru prilepíme kód, alebo ak máte viac skúseností s Linuxom, môžete si ho stiahnuť priamo pomocou wget. V skripte je dôležité upraviť premenné BOTKEY (v riadku 36) a SYSPASSWORD (v riadku 23).

Upresňujem, že tento kód som nepísal ja, pretože som nikdy neprogramoval v Pythone, iba som ho upravil tak, aby pracoval s novými knižnicami a s obrazovkou 20x4 LCD a používal telegram Bot.

Akonáhle máme skript, musíme zmeniť hodnoty premenných pomocou kľúča pre robota; na to je potrebné vytvoriť nového telegramového robota, pomocou ktorého by bol súbor iba uložený a ukončený (pomocou klávesov Ctrl + alebo uložiť a ctrl + x ponechá editor nano), stačí nám dôkaz reštartov; samotný skript sa ukladá pri poslednej aktivácii systému napájania, takže musíme iba spustiť skript pri každom spustení operačného systému, pretože som našiel veľmi konkrétne riešenie s programom s názvom supervisor, ktorý je nainštalovaný z úložísk Debianu:

vedúci inštalácie apt-get

a po inštalácii stačí vytvoriť konfiguračný súbor v /etc/supervisor/conf.d/petfeeder.conf, pretože v predchádzajúcom prípade ho môžeme vytvoriť a uložiť pomocou nano, tento súbor bude mať nasledujúce:

[program: petfeederd] adresár =/opt príkaz = python petfeeder.py autostart = true autorestart = true

Akonáhle je súbor uložený, môžeme použiť príkaz supervisorctl [start | zastaviť | restart] petfeederd, pretože v tomto prípade služba nebola spustená, vykonáme ju so štartom:

supervisorctl start petfeederd

Krok 4: Pripravené na test

Image
Image
Pripravené na test
Pripravené na test
Pripravené na test
Pripravené na test
Pripravené na test
Pripravené na test

A s týmto by mal systém fungovať, LCD obrazovka by mala zobrazovať informácie o tom, kedy by to malo byť ďalšie krmivo alebo či je pripravené na kŕmenie, ak to mám povedať. Musíte tiež uviesť názov bezdrôtovej siete, ku ktorej ste pripojení, a IP adresu, ktorá sa používa v prípade, že sa potrebujeme pripojiť cez SSH. Zdieľam malé video, ktoré som urobil, ospravedlňujem sa za jeho kvalitu. nie som veľmi dobrý, je táto téma vlogov.

Po autorizácii chatu by ste mali mať možnosť vyhľadať svojho robota na Telegrame a odoslať jeden z nasledujúcich príkazov:

/feed: Spustí proces podávania, pokiaľ uplynie parametrizované časové obdobie.

/kedy: vráti informácie o tom, kedy bolo posledné kŕmenie a obrázok taniera na jedlo.

/foto: Vráťte obrázok taniera s jedlom.

/restart: Reštartujte systém, nastavte premennú posledného kanála na 0, aby bolo možné okamžite podávať.

/status Informuje o stave internetového pripojenia: SSID pripojeného Wireless a IP adresu, ktorú má systém v rámci siete.

Odporúča: