Cuprins:

Mașină de alimentat animale de companie cu RasPi și Telegram Bot: 4 pași (cu imagini)
Mașină de alimentat animale de companie cu RasPi și Telegram Bot: 4 pași (cu imagini)

Video: Mașină de alimentat animale de companie cu RasPi și Telegram Bot: 4 pași (cu imagini)

Video: Mașină de alimentat animale de companie cu RasPi și Telegram Bot: 4 pași (cu imagini)
Video: Un jurnal care conține secrete teribile. Tranziție. Gerald Durrell. Mistic. Groază 2024, Iulie
Anonim
Mașină de alimentat animale de companie cu RasPi și Telegram Bot
Mașină de alimentat animale de companie cu RasPi și Telegram Bot
Mașină de alimentat animale de companie cu RasPi și Telegram Bot
Mașină de alimentat animale de companie cu RasPi și Telegram Bot

Mai întâi de toate, trebuie să clarific că aceasta nu este o mină originală, doar actualizează și adaptează scripturile de programare pentru a lucra cu telegrama, l-am găsit într-o versiune anterioară instructabilă, deci creditele sunt chiar autorul acesteia.

Puteți vedea versiunea în spaniolă a acestui blog personal:

Trebuie să construiți un circuit mic care să activeze un motor cu cuplu ridicat și, din moment ce cunoștințele mele despre electronică sunt foarte, foarte rare, a trebuit să petrec câteva zile învățând elementele de bază vizionând videoclipuri pe YouTube.

Scriptul original de automatizare este scris în Python și folosește o conexiune GMail pentru a consulta comenzile, nu folosisem niciodată acest limbaj de programare, dar adevărul nu este atât de diferit de celelalte, l-am modificat puțin, astfel încât să se adapteze mai bine la noul bibliotecile Python și procesul de automatizare, împreună cu configurațiile sistemului de operare, vă permit să parametrați următoarele:

  • Interacțiunea prin comenzi trimise către Chat controlată prin ChatBots.
  • Permite urmărirea stării alimentelor distribuite.
  • Controlează cantitatea de mâncare care va fi distribuită.
  • Are butoane care vă permit să vă alimentați manual.
  • Nu permite supraalimentarea prin dezactivarea alimentării la intervale de 8 ore.
  • Are un ecran LCD de stare care arată datele ca data și ora următoarei date pentru următoarea sursă de alimentare, SSID-ul la care este conectat la WiFi și adresa IP a dispozitivului.
  • Opțional: Afișează câteva glume aleatorii ale lui Chuck Norris și / sau Trivia de numere folosind o pereche de APIS publice (ingenios de autorul original).
  • Sistemul este imun la reporniri din cauza întreruperilor de curent, deoarece salvează un fișier de stare.
  • Sistemul detectează când există o pierdere a conexiunii și încearcă să se reconecteze până când are succes.

Pasul 1: Materiale uzate

  • 1 Raperry Pi, preferabil versiunea 3 care este deja integrată cu cardul Wireless, poți folosi și versiunea Pi 3 Zero, durează puțin mai mult pentru că trebuie să lipiți pinii, dar am aflat foarte târziu că ar putea folosiți unul dintre acestea mai economic.
  • 1 motor electric cu cuplu ridicat, 37 mm, 3,5 rpm și 12 V.
  • 1 Garnitură pentru motor de 37 mm.
  • Ecran LCD cu 1 caracter de 20x4 linii cu control HD44780.
  • 1 Dispenser de cereale Zevro Model WM1001 ax-D de 5 inci lungime, 0,63cm diametru (tăierea D este necesară pentru a-l atașa la dozator)
  • 1 Cuplaj pentru arbore de la 1/4 "la 6mm pentru a se uni cu motorul.

Toate materialele anterioare, cu excepția ultimelor două, nu le-am putut obține în țara mea (sau cel puțin nu știam de unde să le obțin), totuși tija și cuplajul sunt probabil într-un atelier de sudură, dar fiind prima dată când fac ceva așa, nu aveam idee cum ar trebui să se potrivească motorul, așa că am întrebat pagina linkurilor descrise mai sus; Sub materialele pe care le-aș putea cumpăra în magazinele locale:

  • 1 cutie de lemn, folosesc o lățime de 20,3 cm × 26,7 cm înălțime x 13 cm adâncime. cutia are o ușă care se deschide spre dreapta cu o gaură de 10cm x 4cm pentru a plasa ecranul LCD (tâmplărie locală)
  • 3 Apăsați butoanele
  • 1 Protoboard mic
  • 1 LED de 3,3 volți (nu contează culoarea, dar pentru tensiune sunt de obicei roșii)
  • 1 tranzistor NPN PN2222
  • 1 Rezistență de 270 Ω
  • 1 Rezistență de 10 KΩ
  • 1 potențiometru de 10 KΩ
  • 1 diodă IN4003 (IN4001 sau IN4004 pot funcționa)
  • 1 adaptor 12V 3A
  • 1 adaptor 5V 2A
  • 4 șuruburi cu piuliță aripă de la 1,5 inci la 2 inci (depinde de grosimea lemnului utilizat, acestea trebuie să fixeze suportul motorului la cutia de lemn)
  • Cabluri Jumper fire de diferite culori
  • 1 tub pliant sau un set de PVC cu diametrul de 4 inch, depinde de înălțimea la care va fi plasată cutia de lemn.
  • 1 cot din PVC care se atașează la distribuția anterioară.
  • 3 cleme pentru conducte auto (Lumea)
  • 4 picioare de cablu UTP (avem nevoie de perechile răsucite pentru a face conexiunile)
  • 1 USB WebCam, nu este necesar să aveți o rezoluție înaltă.

Unele materiale diverse care pot fi obținute în magazinele de hardware sau, eventual, le avem deja: Bandă industrială

  • Sudor de cositor
  • Staniu
  • Burghiu
  • Burghiu 5/16
  • Șuruburi S8 cu expansoare

Pasul 2: Plasarea structurii

Amplasarea structurii
Amplasarea structurii
Amplasarea structurii
Amplasarea structurii
Amplasarea structurii
Amplasarea structurii

Ideea principală este înlocuirea mânerului de distribuție care vine în ZEVRO cu tija D care va fi apoi conectată la motor prin intermediul cuplajului. Distribuitorul va fi atașat la cutia de lemn și cutia de lemn la perete. Deoarece nu știu prea multe electronice, nu am folosit nicio placă de bakelită pentru a monta circuitul, așa că am folosit placa pentru a pune toate componentele, astfel încât în partea de jos a cutiei este fixată cu șuruburi Rapberry Pi și placa de panou care avea deja un adeziv pe spate, așa că tocmai m-am dus să-l lipesc. Cutia trebuie să aibă trei butoane care să aibă funcția de Reporniți temporizatorul, activați alimentatorul și ultimul va fi un pas direct pentru a activa motorul fără a trece prin circuit. Motorul va fi ținut în interiorul cutiei prin intermediul suportului, astfel încât numai tija D care se conectează la dozator va ieși din cutie, în partea de jos a cutiei, fixați și reglați camera web, astfel încât în fiecare consultare și confirmare prin e-mail a trimis o fotografie despre cum este farfuria, aceasta să nu se hrănească peste măsură în caz că nu au terminat ultima rundă de mâncare.

Din partea de jos a dozatorului, tubul care coboară pe placă a fost plasat și cotul din PVC a fost așezat pe bază, am așezat o mică bandă industrială în priză pentru a minimiza viteza fluxului de alimente și am făcut o bază de distribuire pentru împiedicați pulverizarea alimentelor peste tot. Pentru a fixa conducta de perete, utilizați suporturi metalice pe care le fixați de perete cu șuruburile cu șurub S8.

Pe ușa cutiei țineți placa ecranului LCD și utilizați perechile răsucite ale cablului UTP pentru a le duce direct la Raspberry, la celălalt capăt al cablurilor îmbinați vârfurile femele ale jumperilor pentru a ușura conexiunea în porturile GPIO ale Raspberry. Aceasta ar fi schema circuitului. Voi încerca să-l explic cu puținul pe care îl pot obține de la Electronics.

Motorul este conectat direct la polul pozitiv al transformatorului de 12 volți, dar pentru ca curentul să curgă trebuie să treacă prin circuitul din polul neutru al motorului, pentru acest tranzistor este utilizat N2222. Tranzistoarele au în mod normal 3 picioare care corespund unui colector, o bază și un emițător, în funcție de modelul tranzistorului locația acestor picioare poate varia; Acest tranzistor face ca funcția de comutare. Aici conectăm polul neutru al motorului la colectorul tranzistorului, pinul # 19 al rapberry este conectat la bază printr-o rezistență de 270Ω, iar emițătorul este conectat la terminalul neutru al tranzistorului. Transformator de 12V împreună cu unul dintre polii de pământ ai zmeurii; tranzistorul va lăsa curentul să curgă între colector și emițător atâta timp cât baza este stimulată cu o tensiune suficientă; mai târziu vom programa rapberry astfel încât, conform anumitor ordine, portul 19 să emită 3,3 volți, suficient pentru ca circuitul să continue și să activeze motorul.

Pentru ecranul LCD, o altă parte a protobardului este utilizată într-un circuit diferit în care conectați potențiometrul de 10KΩ, care respinge contrastul textului care apare pe LCD, deci dacă nu apare nimic pe ecran, este probabil pentru că potențiometrul este total închis; în cazul meu îl las complet deschis, astfel încât textul să fie mai bine vizualizat. În cele din urmă, conexiunile din panoul de verificare ar fi după cum urmează.

Pasul 3: Configurarea Raspberry Pi

În primul rând, este important să creați botul Telegram pentru ca sistemul să fie gestionat. Veți avea nevoie de o cheie pentru a modifica scriptul python atașat. Vă rugăm să citiți pașii din documentația telegramei:

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

Pentru a configura rapberry, utilizați versiunea Lite a Rapbian (nu avem nevoie de interfața grafică) și aplicați configurația de bază care arată raspbian odată ce este instalat sau utilizând comanda raspi-config: extindeți spațiul la 100% și activați SSH-ul, dar mai ales cel mai important lucru este să schimbați parola și numele de utilizator către utilizatorul pi care vine în mod implicit (Altfel, așa cum mi s-a întâmplat, pot suferi un atac din portul 22 dacă au un IP public adresat zmeurii). În afară de asta, configurația pentru conectarea automată la rețeaua mea WiFi (Presupunând că rețeaua mea se numește „BlogSoriano” și parola mea este „$ ecure123!”) Generăm și salvăm cheia în fișierul Conexiuni fără fir cu următoarea comandă:

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

următorul lucru este să actualizăm și să instalăm sistemul de instalare python „pip”, astfel încât să ne conectăm ca root, să actualizăm și să instalăm pachetele necesare:

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

Cu aceasta avem deja acces la biblioteca de clase python, pentru scriptul pe care urmează să-l folosim, trebuie să instalăm următoarele:

pip instala RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces wireless telepot cv2

Odată ce instalarea dependențelor este terminată, vom folosi scriptul atașat la acest pas, îl salvez în calea /opt/petfeeder.py și fișierul poate fi creat folosind comanda nano /opt/petfeeder.py și în interiorul acestui fișier. lipim codul sau, dacă aveți mai multă experiență în Linux, îl puteți descărca direct cu wget. În script este important să modificați variabilele BOTKEY (în linia 36) și SYSPASSWORD (în linia 23).

Clarific că acest cod nu a fost scris de mine, deoarece nu programasem niciodată în Python, l-am modificat doar pentru a lucra cu noile biblioteci și cu ecranul LCD 20x4 și pentru a utiliza telegrama Bot.

Odată ce avem Scriptul, trebuie să schimbăm valorile variabilelor cu cheia pentru bot; pentru aceasta este necesar să creăm un nou Telegram Bot, cu care ar fi salvat doar fișierul și ieșire (cu Ctrl + sau salvare și ctrl + x părăsește editorul nano), trebuie doar să fim dovada repornirii; scriptul în sine salvează ultima dată când sistemul de alimentare este activat, așa că trebuie să executăm scriptul doar de fiecare dată când pornește sistemul de operare, pentru aceasta am găsit o soluție foarte specială cu un program numit supervisor, care este instalat din depozitele Debian:

supervizor de instalare apt-get

și odată instalat, trebuie să creăm doar un fișier de configurare în /etc/supervisor/conf.d/petfeeder.conf, deoarece în cazul precedent îl putem crea și salva cu nano, acest fișier va avea următoarele:

[program: petfeederd] directory = / opt command = python petfeeder.py autostart = true autorestart = true

Odată ce fișierul este salvat putem folosi comanda supervisorctl [start | opri | restart] petfeederd, deoarece în acest caz serviciul nu a fost pornit, îl executăm cu start:

supervisorctl start petfeederd

Pasul 4: Gata de testat

Image
Image
Gata de testat
Gata de testat
Gata de testat
Gata de testat
Gata de testat
Gata de testat

Și, cu aceasta, sistemul ar trebui să funcționeze, ecranul LCD ar trebui să afișeze informații despre când ar trebui să fie următorul flux sau dacă este gata să se alimenteze, aș spune așa. De asemenea, trebuie să afișați numele rețelei wireless la care sunteți conectat și adresa IP care este utilizată în cazul în care trebuie să ne conectăm prin SSH, împărtășesc un mic videoclip pe care l-am făcut, îmi cer scuze pentru calitatea acestuia, eu nu sunt foarte bun este acest subiect al vlogurilor.

Ar trebui să puteți căuta botul dvs. pe Telegram și să trimiteți una dintre următoarele comenzi după ce ați autorizat chatul:

/ feed: pornește procesul de hrănire atâta timp cât a trecut perioada parametrizată.

/ când: returnează informații despre când a fost ultima hrănire și o imagine a farfuriei.

/ fotografie: Întoarceți o imagine a farfuriei cu alimente.

/ restart: Reporniți sistemul, setați variabila ultimului feed la 0 pentru a putea alimenta imediat.

/ status Acesta informează despre starea conexiunii la Internet: SSID al conexiunii wireless și adresa IP pe care sistemul o are în rețea.

Recomandat: