Turinys:

Naminių gyvūnėlių maitinimo aparatas su „RasPi“ir telegramos robotu: 4 žingsniai (su paveikslėliais)
Naminių gyvūnėlių maitinimo aparatas su „RasPi“ir telegramos robotu: 4 žingsniai (su paveikslėliais)

Video: Naminių gyvūnėlių maitinimo aparatas su „RasPi“ir telegramos robotu: 4 žingsniai (su paveikslėliais)

Video: Naminių gyvūnėlių maitinimo aparatas su „RasPi“ir telegramos robotu: 4 žingsniai (su paveikslėliais)
Video: Naminių gyvūnėlių blusų, utelių valymo prietaisas 2024, Liepa
Anonim
Naminių gyvūnėlių maitinimo aparatas su „RasPi“ir „Telegram Bot“
Naminių gyvūnėlių maitinimo aparatas su „RasPi“ir „Telegram Bot“
Naminių gyvūnėlių maitinimo aparatas su „RasPi“ir „Telegram Bot“
Naminių gyvūnėlių maitinimo aparatas su „RasPi“ir „Telegram Bot“

Pirmiausia turiu paaiškinti, kad tai nėra originali „Idea Mine“, tiesiog atnaujinkite ir pritaikykite programavimo scenarijus, kad jie veiktų su telegrama, radau ją ankstesnėje „Instructable“programoje, todėl kreditai tikrai yra jos autoriai.

Ispanišką šios versijos variantą galite pamatyti mano asmeniniame tinklaraštyje:

Jums reikia sukurti nedidelę grandinę, kuri suaktyvina didelio sukimo momento variklį, ir kadangi mano žinios apie elektroniką yra labai, labai menkos, teko porą dienų mokytis pagrindų žiūrint vaizdo įrašus „YouTube“.

Originalus automatizavimo scenarijus parašytas „Python“ir komandoms peržiūrėti naudojamas „GMail“ryšys. Niekada nenaudojau šios programavimo kalbos, tačiau tiesa ne taip skiriasi nuo kitų, šiek tiek pakeičiau, kad ji geriau prisitaikytų prie naujos „Python“bibliotekos ir automatizavimo procesas kartu su operacinės sistemos konfigūracijomis leidžia parametruoti šiuos dalykus:

  • Sąveika per komandas, išsiųstas į „Chat“, valdoma per „ChatBots“.
  • Tai leidžia stebėti išleisto maisto būklę.
  • Kontroliuoja, kiek maisto bus išleista.
  • Jame yra mygtukai, leidžiantys maitinti rankiniu būdu.
  • Tai neleidžia permaitinti, išjungiant maitinimą 8 valandų intervalu.
  • Jame yra būsenos skystųjų kristalų ekranas, kuriame duomenys rodomi kaip kito maitinimo šaltinio data ir laikas, SSID, prie kurio jis prijungtas prie „WiFi“, ir įrenginio IP adresas.
  • Neprivaloma: rodo keletą Chuck Norris anekdotų ir (arba) smulkmenų, naudojant viešą APIS (išradingas pagal originalų autorių).
  • Sistema yra apsaugota nuo paleidimo iš naujo dėl elektros energijos tiekimo nutraukimo, nes išsaugo būsenos failą.
  • Sistema aptinka, kai nutrūksta ryšys, ir bando iš naujo prisijungti, kol nepavyks.

1 žingsnis: Naudotos medžiagos

  • 1 „Raperry Pi“, pageidautina 3 versija, kuri jau yra integruota su „Wireless“kortele, taip pat galite naudoti „Pi 3 Zero“versiją, tam reikia šiek tiek daugiau darbo, nes turite lituoti kaiščius, tačiau labai vėlai sužinojau, kad tai gali naudokite vieną iš ekonomiškesnių.
  • 1 didelio sukimo momento elektros variklis, 37 mm, 3,5 aps / min ir 12V.
  • 1 laikiklis 37 mm varikliui.
  • 1 simbolio LCD ekranas iš 20x4 eilučių su HD44780 valdikliu.
  • 1 javų dozatorius „Zevro“modelis WM1001 velenas-D, 5 colių ilgio, 0,63 cm skersmens (norint supjaustyti jį prie dozatoriaus, reikia pjauti D)
  • 1 Veleno mova nuo 1/4 colio iki 6 mm, skirta prijungti prie variklio.

Visų ankstesnių medžiagų, išskyrus paskutines dvi, negalėjau gauti savo šalyje (arba bent jau nežinojau, kur jų gauti), tačiau strypas ir mova tikriausiai yra suvirinimo dirbtuvėse, bet ką nors darau pirmą kartą panašiai, aš neįsivaizdavau, kaip turėtų būti pritaikytas variklis, todėl paklausiau aukščiau aprašytų nuorodų puslapio; Žemiau pateikiamos medžiagos, kurias galėčiau nusipirkti vietinėse parduotuvėse:

  • 1 medinė dėžutė, aš naudoju 20,3 cm pločio × 26,7 cm aukščio x 13 cm gylio. dėžutėje yra durys, atsidarančios į dešinę, su 10 cm x 4 cm skylute, skirta LCD ekranui įdėti (vietiniai staliai)
  • 3 Paspauskite mygtukus
  • 1 Mažas protoboardas
  • 1 3,3 voltų šviesos diodas (nesvarbu spalva, bet paprastai jie yra raudoni)
  • 1 NPN PN2222 tranzistorius
  • 1 Varža 270 Ω
  • 1 varža 10 KΩ
  • 1 10 KΩ potenciometras
  • 1 IN4003 diodas (gali veikti IN4001 arba IN4004)
  • 1 12V 3A adapteris
  • 1 5V 2A adapteris
  • 4 varžtai su sparnine veržle nuo 1,5 colio iki 2 colių (priklausomai nuo naudojamos medienos storio, jie turi pritvirtinti variklio laikiklį prie medinės dėžės)
  • Kabeliai Įvairių spalvų megztiniai
  • 1 sulankstomas vamzdis arba 4 colių skersmens PVC rinkinys, tai priklauso nuo medinio dėžutės aukščio.
  • 1 PVC alkūnė, pritvirtinama prie ankstesnio gipso.
  • 3 spaustukai automobilių vamzdžiams (pasaulis)
  • 4 pėdos UTP kabelio (norint sujungti, mums reikia susuktų porų)
  • 1 USB žiniatinklio kamera, nebūtina būti didelės skiriamosios gebos.

Kai kurios įvairios medžiagos, kurias galima įsigyti techninės įrangos parduotuvėse arba galbūt jau turime: Pramoninė juosta

  • Alavo suvirintojas
  • Alavas
  • Grąžtas
  • Gręžtuvas 5/16
  • S8 varžtai su plėtikliais

2 žingsnis: Struktūros išdėstymas

Struktūros išdėstymas
Struktūros išdėstymas
Struktūros išdėstymas
Struktūros išdėstymas
Struktūros išdėstymas
Struktūros išdėstymas

Pagrindinė idėja yra pakeisti ZEVRO esančią dozavimo rankeną strypu D, kuris vėliau bus prijungtas prie variklio sukabintuvu. Dozatorius bus pritvirtintas prie medinės dėžutės, o medinė - prie sienos. Kadangi aš nežinau daug elektronikos, aš grandinei montuoti nenaudojau jokios bakelito plokštės, todėl aš naudoju duonos lentą, kad sudėčiau visus komponentus, todėl dėžutės apačioje pritvirtinama varžtais „Rapberry Pi“ir duonos lenta, kurioje jau buvo klijų ant nugaros, todėl tiesiog nuėjau įklijuoti. Dėžutėje turi būti trys mygtukai, kurie atliks laikmačio paleidimo iš naujo funkciją, suaktyvins tiektuvą, o paskutinis bus tiesioginis žingsnis, norint suaktyvinti variklį neišeinant iš grandinės. Variklis bus laikomas dėžutės viduje laikiklio pagalba, todėl tik strypas D, jungiantis prie dozatoriaus, išsikiša iš dėžutės, dėžutės apačioje pritvirtinkite ir sureguliuokite internetinę kamerą taip, kad kiekvienu laišku konsultuojantis ir patvirtinant I atsiuntė nuotrauką, kaip yra lėkštė, kad nebūtų permaitinta, jei jie nebaigė paskutinio maisto raundo.

Iš dozatoriaus apačios buvo uždėtas vamzdelis, einantis iki plokštelės, o PVC alkūnė uždėta ant pagrindo, į išleidimo angą įdėjau šiek tiek pramoninės juostos, kad maisto srautas būtų kuo mažesnis, ir padariau dozavimo pagrindą neleisti visur purkšti maisto. Norėdami pritvirtinti vamzdį prie sienos, naudokite metalinius laikiklius, kuriuos tvirtinate prie sienos S8 varžtais.

Ant dėžutės durelių laikykite skystųjų kristalų ekrano plokštelę ir naudokite susuktas UTP kabelio poras, kad jas nuneštumėte tiesiai į avietę, o kitame kabelių gale sujungite megztinių moteriškus galus, kad būtų lengviau prijungti „Raspberry“GPIO prievadus. Tai būtų grandinės schema. Pabandysiu tai paaiškinti tuo, ką aš galiu gauti iš „Electronics“.

Variklis yra tiesiogiai prijungtas prie teigiamo 12 voltų transformatoriaus poliaus, tačiau, kad srovė tekėtų, jis turi praeiti per grandinę neutraliame variklio poliuje, tam naudojamas tranzistorius N2222. Paprastai tranzistoriai turi 3 kojas, atitinkančias kolektorių, pagrindą ir emiterį, priklausomai nuo tranzistoriaus modelio, šių kojų vieta gali skirtis; Šis tranzistorius atlieka jungiklio funkciją. Čia mes prijungiame neutralų variklio polių prie tranzistoriaus kolektoriaus, rapsų kaištis Nr. 19 yra prijungtas prie pagrindo, naudojant 270Ω varžą, o spinduolis yra prijungtas prie neutralaus tranzistoriaus gnybto. 12V transformatorius kartu su vienu iš aviečių žemės polių; tranzistorius leis srovei tekėti tarp kolektoriaus ir emiterio tol, kol bazė bus stimuliuojama esant pakankamai įtampai; vėliau mes užprogramuosime rabyną taip, kad pagal tam tikrus užsakymus 19 prievadas skleistų 3,3 volto, to pakanka, kad grandinė tęstųsi ir suaktyvintų variklį.

Skystųjų kristalų ekrane kita protobardo dalis naudojama kitoje grandinėje, kur prijungiate 10KΩ potenciometrą, kuris atmeta LCD ekrane rodomo teksto kontrastą, taigi, jei ekrane nieko nerodoma, greičiausiai dėl to, kad potenciometras yra visiškai uždaryta; mano atveju palieku jį visiškai atvirą, kad tekstas būtų geriau vizualizuojamas. Galiausiai duonos lentos jungtys būtų tokios.

3 žingsnis: „Raspberry Pi“konfigūracija

Visų pirma svarbu sukurti „Telegram Bot“, kad sistema būtų valdoma. Norėdami pakeisti pridėtą „python“scenarijų, jums reikės rakto. Prašome perskaityti telegramos dokumentacijos veiksmus:

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

Norėdami sukonfigūruoti „Rapberry“, naudokite „Rapbian“paprastąją versiją (mums nereikia grafinės sąsajos) ir pritaikykite pagrindinę konfigūraciją, rodančią raspbian, kai ji bus įdiegta arba naudojant raspi-config komandą: išplėskite erdvę iki 100% ir įjunkite SSH, bet ypač svarbiausia yra pakeisti slaptažodį ir vartotojo vardą į vartotojo pi, kuris yra numatytasis (priešingu atveju, kaip atsitiko man, jie gali nukentėti nuo 22 prievado, jei jie turi viešą IP adresą, skirtą avietėms). Be to, konfigūracija automatiškai prisijungti prie mano „WiFi“tinklo (darant prielaidą, kad mano tinklas vadinamas „BlogSoriano“, o mano slaptažodis yra „$ ecure123!“) Sukuriame ir išsaugome raktą belaidžių ryšių faile naudodami šią komandą:

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

Kitas dalykas yra atnaujinti ir įdiegti „python“diegimo sistemą „pip“, kad prisijungtume kaip root, atnaujinsime ir įdiegsime reikiamus paketus:

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

Turėdami tai jau turime prieigą prie „python“klasės bibliotekos, norėdami naudoti scenarijų, kurį turime naudoti, turime įdiegti:

pip install RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces bevielio telepoto cv2

Kai priklausomybių diegimas bus baigtas, naudosime prie šio veiksmo pridėtą scenarijų, išsaugosiu jį kelyje /opt/petfeeder.py ir failą bus galima sukurti naudojant komandą nano /opt/petfeeder.py ir šio failo viduje įklijuojame kodą arba, jei turite daugiau „Linux“patirties, galite atsisiųsti tiesiogiai naudodami „wget“. Scenarijuje svarbu pakeisti kintamuosius BOTKEY (36 eilutėje) ir SYSPASSWORD (23 eilutėje).

Patikslinu, kad šį kodą parašiau ne aš, nes niekada nebuvau programavęs „Python“, tik pakeičiau jį, kad jis veiktų su naujomis bibliotekomis ir su 20x4 LCD ekranu bei naudotų telegramą „Bot“.

Turėdami scenarijų, turime pakeisti kintamųjų reikšmes naudodami roboto raktą; tam būtina sukurti naują „Telegram Bot“, o tai būtų tik failo išsaugojimas ir išėjimas (naudojant „Ctrl +“arba „Save“ir „Ctrl + x“palieka redaktorių nano), mes tiesiog turime būti pakartotinio paleidimo įrodymas; pats scenarijus taupo paskutinį kartą, kai įjungiama maitinimo sistema, todėl turime tik paleisti scenarijų kiekvieną kartą paleidus operacinę sistemą, todėl radau labai konkretų sprendimą su programa, vadinama supervizoriumi, kuri yra įdiegta iš „Debian“saugyklų:

apt-get install supervizorius

ir kai įdiegta, mums tereikia sukurti konfigūracijos failą /etc/supervisor/conf.d/petfeeder.conf, kaip ir ankstesniu atveju, mes galime jį sukurti ir išsaugoti naudodami „nano“, šis failas turės:

[programa: petfeederd] katalogas =/opt komanda = python petfeeder.py autostart = true autorestart = true

Kai failas yra išsaugotas, galime naudoti komandą supervisorctl [start | sustoti | paleiskite iš naujo] „petfeederd“, nes šiuo atveju paslauga nebuvo paleista, vykdome ją pradėdami:

supervisorctl start petfeederd

4 žingsnis: Paruoštas bandymui

Image
Image
Paruošta išbandyti
Paruošta išbandyti
Paruošta išbandyti
Paruošta išbandyti
Paruošta išbandyti
Paruošta išbandyti

Ir tai turėtų veikti sistema, LCD ekrane turėtų būti rodoma informacija apie tai, kada tai turėtų būti kitas pašaras arba ar jis yra paruoštas tiekti, jei taip sakyčiau. Taip pat turite parodyti belaidžio tinklo, prie kurio esate prisijungę, pavadinimą ir IP adresą, kuris naudojamas, jei mums reikia prisijungti per SSH, dalinuosi nedideliu vaizdo įrašu, kurį sukūriau, atsiprašau už jo kokybę. Nesu labai geras, tai yra vlogų tema.

Turėtumėte turėti galimybę ieškoti savo roboto „Telegram“ir išsiųsti vieną iš kitų komandų po to, kai įgalinsite pokalbį:

/feed: pradeda tiekimo procesą tol, kol baigiasi parametrinis laikotarpis.

/kada: pateikia informaciją apie paskutinį maitinimą ir maisto lėkštės nuotrauką.

/nuotrauka: grąžinkite maisto lėkštės nuotrauką.

/restart: iš naujo paleiskite sistemą, nustatykite paskutinio tiekimo kintamąjį į 0, kad būtų galima nedelsiant maitinti.

/statusas Informuoja apie interneto ryšio būseną: prijungto belaidžio ryšio SSID ir sistemos IP turimą IP adresą.

Rekomenduojamas: