Satura rādītājs:

Mājdzīvnieku barošanas iekārta ar RasPi un Telegram Bot: 4 soļi (ar attēliem)
Mājdzīvnieku barošanas iekārta ar RasPi un Telegram Bot: 4 soļi (ar attēliem)

Video: Mājdzīvnieku barošanas iekārta ar RasPi un Telegram Bot: 4 soļi (ar attēliem)

Video: Mājdzīvnieku barošanas iekārta ar RasPi un Telegram Bot: 4 soļi (ar attēliem)
Video: Попрощайтесь с покупкой газа у государства и получите его бесплатно для себя 2024, Jūlijs
Anonim
Mājdzīvnieku barošanas iekārta ar RasPi un Telegram Bot
Mājdzīvnieku barošanas iekārta ar RasPi un Telegram Bot
Mājdzīvnieku barošanas iekārta ar RasPi un Telegram Bot
Mājdzīvnieku barošanas iekārta ar RasPi un Telegram Bot

Vispirms man jāpaskaidro, ka šī nav oriģināla ideju raktuve, vienkārši atjauniniet un pielāgojiet programmēšanas skriptus darbam ar telegrammu, es to atradu iepriekšējā Instructable, tāpēc kredīti patiešām ir tā autori.

Jūs varat redzēt šīs versijas spāņu valodā manā personīgajā emuārā:

Jums ir jāizveido neliela ķēde, kas aktivizē motoru ar lielu griezes momentu, un, tā kā manas zināšanas par elektroniku ir ļoti, ļoti ierobežotas, man bija jāpavada pāris dienas, apgūstot pamatus, skatoties videoklipus vietnē YouTube.

Oriģinālais automatizācijas skripts ir uzrakstīts Python un komandu izmantošanai izmanto GMail savienojumu, es nekad nebiju izmantojis šo programmēšanas valodu, bet patiesība nemaz tik ļoti neatšķiras no citām, esmu to nedaudz pārveidojusi, lai tā labāk pielāgotos jaunajam Python bibliotēkas un automatizācijas process kopā ar operētājsistēmas konfigurācijām ļauj parametrizēt sekojošo:

  • Mijiedarbība ar komandām, kas nosūtītas tērzēšanai, tiek kontrolēta, izmantojot ChatBots.
  • Tas ļauj izsekot izsniegtā ēdiena statusam.
  • Kontrolē, cik daudz pārtikas tiks izsniegts.
  • Tam ir pogas, kas ļauj barot manuāli.
  • Tas nepieļauj pārmērīgu barošanu, pārtraucot barošanu ar 8 stundu intervālu.
  • Tam ir statusa LCD, kas parāda datus kā nākamās barošanas avota nākamās reizes datumu un laiku, SSID, ar kuru tas ir savienots ar WiFi, un ierīces IP adresi.
  • Neobligāti: parāda dažus Čaka Norisa nejaušos jokus un / vai skaitļu niekus, izmantojot pāris publisku APIS (sākotnējā autora ģeniālais).
  • Sistēma ir pasargāta no restartēšanas strāvas padeves pārtraukumu dēļ, jo tā saglabā statusa failu.
  • Sistēma nosaka, kad ir pārtraukts savienojums, un mēģina no jauna izveidot savienojumu, līdz tas ir veiksmīgs.

1. darbība: izmantotie materiāli

  • 1 Raperry Pi, vēlams 3. versija, kas jau ir integrēta bezvadu kartē, jūs varat izmantot arī Pi 3 Zero versiju, tas prasa nedaudz vairāk darba, jo jums ir jāpludina tapas, bet es ļoti vēlu uzzināju, ka tas var notikt Izmantojiet vienu no tiem, kas ir ekonomiskāks.
  • 1 elektromotors ar lielu griezes momentu, 37 mm, 3,5 apgriezieni minūtē un 12 V.
  • 1 kronšteins 37 mm motoram.
  • 1 rakstzīmju LCD ekrāns ar 20x4 līnijām ar HD44780 vadīklu.
  • 1 graudaugu dozators Zevro modelis WM1001 vārpsta-D, 5 collas garš, 0,63 cm diametrā (nepieciešams D griezums, lai to piestiprinātu pie dozatora)
  • 1 Vārpstas savienotājs no 1/4 "līdz 6 mm, lai savienotu motoru.

Visus iepriekšējos materiālus, izņemot pēdējos divus, nevarēju dabūt savā valstī (vai vismaz nezināju, kur tos iegūt), tomēr stienis un savienojums, iespējams, atrodas metināšanas darbnīcā, bet es pirmo reizi kaut ko daru piemēram, man nebija ne jausmas, kā tam vajadzētu būt, lai tas atbilstu dzinējam, tāpēc es jautāju iepriekš aprakstīto saišu lapu; Zemāk ir materiāli, kurus es varētu iegādāties vietējos veikalos:

  • 1 koka kaste, es izmantoju 20,3 cm platu × 26,7 cm augstu x 13 cm dziļu. kastē ir durvis, kas atveras pa labi ar caurumu 10 cm x 4 cm, lai novietotu LCD ekrānu (vietējā galdniecība)
  • 3 Spiediet pogas
  • 1 mazs protoboards
  • 1 3,3 voltu gaismas diode (nav nozīmes krāsai, bet spriegumam tie parasti ir sarkani)
  • 1 NPN tranzistors PN2222
  • 1 pretestība 270 Ω
  • 1 pretestība 10 KΩ
  • 1 potenciometrs 10 KΩ
  • 1 IN4003 diode (var darboties IN4001 vai IN4004)
  • 1 12V 3A adapteris
  • 1 5V 2A adapteris
  • 4 skrūves ar spārnuzgriezni no 1,5 collām līdz 2 collām (atkarībā no izmantotās koksnes biezuma tie ir jānostiprina motora kronšteins pie koka kastes)
  • Kabeļi Dažādu krāsu džemperis
  • 1 saliekama caurule vai 4 collu diametra PVC komplekts, tas ir atkarīgs no koka kastes novietošanas augstuma.
  • 1 PVC elkonis, kas piestiprināts pie iepriekšējā ģipša.
  • 3 skavas automašīnu caurulēm (pasaule)
  • 4 pēdas UTP kabeļa (lai izveidotu savienojumus, mums ir nepieciešami savīti pāri)
  • 1 USB WebCam, tai nav jābūt augstas izšķirtspējas.

Daži dažādi materiāli, kurus var iegādāties datortehnikas veikalos vai, iespējams, mums jau ir: Industrial Tape

  • Alvas metinātājs
  • Alva
  • Urbis
  • Urbis 5/16
  • S8 skrūves ar paplašinātājiem

2. darbība: struktūras izvietošana

Struktūras izvietošana
Struktūras izvietošana
Struktūras izvietošana
Struktūras izvietošana
Struktūras izvietošana
Struktūras izvietošana

Galvenā ideja ir nomainīt ZEVRO piegādāto dozēšanas rokturi ar stieni D, kas pēc tam tiks savienots ar motoru, izmantojot savienotāju. Dozators tiks piestiprināts pie koka kastes, bet koka kaste - pie sienas. Tā kā es nezinu daudz elektronikas, es ķēdes uzstādīšanai neizmantoju nekādu bakelīta plāksni, tāpēc es izmantoju maizes dēli, lai saliktu visas sastāvdaļas, tāpēc kastes apakšā ir piestiprināts ar skrūvēm Rapberry Pi un maizes dēlis, kuram jau bija līme aizmugurē, tāpēc es vienkārši devos to ielīmēt. Kastē jābūt trim pogām, kurām būs funkcija Restartēt taimeri, aktivizēt padevēju, un pēdējā būs tieša darbība, lai aktivizētu motoru, neizmantojot ķēdi. Motors tiks turēts kastes iekšpusē, izmantojot kronšteinu, tāpēc tikai stienis D, kas savienojas ar dozatoru, izvirzīsies no kastes, kastes apakšā nostipriniet un noregulējiet tīmekļa kameru tā, lai katrā pasta konsultācijā un apstiprinājumā es nosūtīja fotoattēlu, kā klājas šķīvim, lai tas netiktu pārbarots, ja viņi nav pabeiguši pēdējo pārtikas kārtu.

No dozatora apakšas tika novietota caurule, kas iet uz leju līdz plāksnei, un PVC elkonis tika novietots uz pamatnes, es ievietoju nelielu rūpniecisko lenti izplūdes atverē, lai samazinātu pārtikas plūsmas ātrumu, un izveidoju dozēšanas pamatni novērstu pārtikas izsmidzināšanu visur. Lai piestiprinātu cauruli pie sienas, izmantojiet metāla kronšteinus, kurus piestipriniet pie sienas ar S8 skrūvēm.

Uz kastes durvīm turiet LCD ekrāna plāksni un izmantojiet savītus UTP kabeļa pārus, lai tos nogādātu tieši pie avenes, bet kabeļu otrā galā savienojiet džemperu sieviešu galus, lai atvieglotu savienošanu. aveņu GPIO pieslēgvietās. Tā būtu shēmas shēma. Es mēģināšu to izskaidrot ar to, ko maz es varu iegūt no elektronikas.

Motors ir tieši savienots ar 12 voltu transformatora pozitīvo polu, bet, lai strāva plūst, tam jāiziet caur ķēdi motora neitrālajā polā, šim tranzistoram tiek izmantots N2222. Tranzistoriem parasti ir 3 kājas, kas atbilst kolektoram, pamatnei un izstarotājam, atkarībā no tranzistora modeļa šo kāju atrašanās vieta var atšķirties; Šis tranzistors nodrošina slēdža funkciju. Šeit mēs savienojam motora neitrālo polu ar tranzistora kolektoru, rapšu tapu # 19 savieno ar pamatni, izmantojot pretestību 270Ω, un emitētājs ir savienots ar tranzistora neitrālo spaili. 12V transformators kopā ar vienu no aveņu zemes poliem; tranzistors ļaus strāvai plūst starp kolektoru un emitētāju, kamēr pamatne tiek stimulēta ar pietiekamu spriegumu; vēlāk mēs ieprogrammēsim rapiju tā, lai saskaņā ar noteiktiem pasūtījumiem ports 19 izstarotu 3,3 voltus, kas ir pietiekami, lai ķēde turpinātu un aktivizētu motoru.

LCD ekrānam cita protobarda daļa tiek izmantota citā ķēdē, kur pievienojat 10KΩ potenciometru, kas noraida LCD redzamā teksta kontrastu, tādēļ, ja ekrānā nekas neparādās, iespējams, tas ir tāpēc, ka potenciometrs ir pilnīgi slēgts; manā gadījumā es atstāju to pilnīgi atvērtu, lai teksts būtu labāk vizualizēts. Beigās maizes dēļa savienojumi būtu šādi.

3. darbība: Raspberry Pi konfigurācija

Pirmkārt, ir svarīgi izveidot Telegram Bot, lai sistēma tiktu pārvaldīta. Jums būs nepieciešama atslēga, lai mainītu pievienoto python skriptu. Lūdzu, izlasiet darbības telegrammas dokumentācijā:

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

Lai konfigurētu rapberry, izmantojiet Rapbian Lite versiju (mums nav nepieciešams grafiskais interfeiss) un piemērojiet pamata konfigurāciju, kas parāda raspbian, kad tā ir instalēta vai izmantojot komandu raspi-config: paplašiniet vietu līdz 100% un iespējojiet SSH, bet jo īpaši vissvarīgākais ir nomainīt paroli un lietotājvārdu uz lietotāja pi, kas nāk pēc noklusējuma (pretējā gadījumā, kā tas notika ar mani, viņi var ciest no 22. porta uzbrukuma, ja viņiem ir publiska IP adrese avenēm). Bez tam konfigurācija, lai automātiski izveidotu savienojumu ar manu WiFi tīklu (pieņemot, ka mans tīkls tiek saukts par "BlogSoriano" un mana parole ir "$ ecure123!") Mēs ģenerējam un saglabājam atslēgu bezvadu savienojumu failā ar šādu komandu:

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

Nākamā lieta ir atjaunināt un instalēt python instalācijas sistēmu "pip", lai mēs pieteiktos kā root, atjauninātu un instalētu nepieciešamās paketes:

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

Tādējādi mums jau ir piekļuve python klases bibliotēkai, lai izmantotu skriptu, mums jāinstalē:

pip instalēt RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces bezvadu telepot cv2

Kad atkarību instalēšana ir pabeigta, mēs izmantosim šim solim pievienoto skriptu, es to saglabāju ceļā /opt/petfeeder.py, un failu var izveidot, izmantojot komandu nano /opt/petfeeder.py un šajā failā mēs ielīmējam kodu vai, ja jums ir lielāka Linux pieredze, varat lejupielādēt tieši ar wget. Skriptā ir svarīgi mainīt mainīgos BOTKEY (36. rindā) un SYSPASSWORD (23. rindā).

Es paskaidroju, ka šo kodu neesmu rakstījis es, jo nekad nebiju programmējis programmā Python, es to tikai pārveidoju, lai tas darbotos ar jaunajām bibliotēkām un ar 20x4 LCD ekrānu, kā arī lai izmantotu telegrammu Bot.

Kad mums ir skripts, mums ir jāmaina mainīgo vērtības ar robota atslēgu; šim nolūkam ir jāizveido jauns telegrammu robots, un tas būtu tikai faila saglabāšana un iziešana (ar Ctrl + vai saglabāšana un ctrl + x atstāj redaktoru nano), mums vienkārši jābūt pierādījumam par restartēšanu; pats skripts ietaupa pēdējo reizi, kad tiek aktivizēta energosistēma, tāpēc mums tikai jāļauj skriptam darboties katru reizi, kad tiek palaista operētājsistēma, tāpēc es atradu ļoti īpašu risinājumu ar programmu, ko sauc par supervizoru, kas tiek instalēta no Debian krātuvēm:

apt-get instalēšanas uzraugs

un pēc instalēšanas mums ir jāizveido tikai konfigurācijas fails /etc/supervisor/conf.d/petfeeder.conf, tāpat kā iepriekšējā gadījumā mēs to varam izveidot un saglabāt ar nano, šim failam būs šāds:

[programma: petfeederd] direktorijs =/opt komanda = python petfeeder.py autostart = true autorestart = true

Kad fails ir saglabāts, mēs varam izmantot komandu supervorctl [start | apstāties | restart] petfeederd, jo šajā gadījumā pakalpojums nav palaists, mēs to izpildām ar sākumu:

uzraugs sākt petfeederd

4. solis: gatavs testēšanai

Image
Image
Gatavs testēšanai
Gatavs testēšanai
Gatavs testēšanai
Gatavs testēšanai
Gatavs testēšanai
Gatavs testēšanai

Un līdz ar to sistēmai vajadzētu darboties, LCD ekrānā vajadzētu parādīt informāciju par to, kad tai vajadzētu būt nākamajai padevei vai ja tā būtu gatava barošanai, ja es tā teiktu. Jums ir jāparāda arī tā bezvadu tīkla nosaukums, kuram esat pievienojies, un IP adrese, kas tiek izmantota, ja mums ir nepieciešams izveidot savienojumu, izmantojot SSH, es kopīgoju nelielu videoklipu, ko izveidoju, atvainojos par tā kvalitāti, es neesmu ļoti labs, vai šis ir vlogu temats.

Jums vajadzētu būt iespējai meklēt savu robotu telegrammā un nosūtīt vienu no nākamajām komandām pēc tam, kad esat apstiprinājis tērzēšanu:

/feed: sāk barošanas procesu, kamēr ir pagājis parametrētais laika periods.

/kad: tā atgriež informāciju par pēdējo barošanu un pārtikas šķīvja attēlu.

/foto: atgrieziet ēdiena šķīvja attēlu.

/restart: restartējiet sistēmu, iestatiet pēdējās plūsmas mainīgo uz 0, lai varētu uzreiz pabarot.

/statuss Tas informē par interneta savienojuma statusu: pievienotā bezvadu tīkla SSID un IP adresi, kas sistēmai ir tīklā.

Ieteicams: