Talaan ng mga Nilalaman:

Pet Feeder Machine Na May RasPi at Telegram Bot: 4 na Hakbang (na may Mga Larawan)
Pet Feeder Machine Na May RasPi at Telegram Bot: 4 na Hakbang (na may Mga Larawan)

Video: Pet Feeder Machine Na May RasPi at Telegram Bot: 4 na Hakbang (na may Mga Larawan)

Video: Pet Feeder Machine Na May RasPi at Telegram Bot: 4 na Hakbang (na may Mga Larawan)
Video: Часть 10. Аудиокнига «О человеческом рабстве» У. Сомерсета Моэма (гл. 105–113) 2024, Hulyo
Anonim
Pet Feeder Machine Na May RasPi at Telegram Bot
Pet Feeder Machine Na May RasPi at Telegram Bot
Pet Feeder Machine Na May RasPi at Telegram Bot
Pet Feeder Machine Na May RasPi at Telegram Bot

Una sa lahat kailangan kong linawin na ito ay hindi isang orihinal na Idea Mine, i-update lamang at iakma ang mga script ng programa upang gumana sa telegram, nahanap ko ito sa isang nakaraang Instructable kaya't ang mga kredito talaga ang may-akda nito.

Maaari mong makita ang Espanyol na bersyon nito sa aking personal na Blog:

Kailangan mong bumuo ng isang maliit na circuit na nagpapagana ng isang mataas na torque motor, at dahil ang aking kaalaman sa electronics ay napaka, mahirap makuha, kailangan kong gumastos ng ilang araw sa pag-alam ng mga pangunahing kaalaman sa pamamagitan ng panonood ng mga video sa YouTube.

Ang orihinal na script ng awtomatiko ay nakasulat sa Python at gumagamit ng isang koneksyon sa GMail upang kumunsulta sa mga utos, hindi ko pa nagamit ang wikang ito sa pagprograma ngunit ang totoo ay hindi gaanong kaiba sa iba, binago ko ito nang kaunti upang mas mahusay itong umangkop sa bago ang mga library ng Python at ang proseso ng pag-automate kasama ang mga pagsasaayos ng operating system ay nagbibigay-daan sa iyo upang i-parameter ang sumusunod:

  • Ang pakikipag-ugnayan sa pamamagitan ng mga utos na ipinadala sa Chat na kinokontrol sa pamamagitan ng ChatBots.
  • Pinapayagan nitong subaybayan ang katayuan ng pagkain na naibigay.
  • Kinokontrol kung magkano ang ibibigay na pagkain.
  • Mayroon itong mga pindutan na nagbibigay-daan sa iyo upang magpakain nang manu-mano.
  • Hindi pinapayagan ang labis na pagpapasuso sa pamamagitan ng hindi pagpapagana ng pagpapakain sa 8-oras na agwat.
  • Mayroon itong isang katayuan LCD na nagpapakita ng data bilang petsa at oras ng susunod na oras para sa susunod na supply ng kuryente, ang SSID kung saan ito ay konektado sa WiFi at sa IP address ng aparato.
  • Opsyonal: Nagpapakita ng ilang Chuck Norris Random Jokes at / o Trivia ng Mga Numero na gumagamit ng isang pares ng pampublikong APIS (Masusing talino ng orihinal na may-akda).
  • Ang Sistema ay immune sa restart dahil sa pagbawas ng kuryente dahil nakakatipid ito ng isang file ng katayuan.
  • Natutukoy ng System kapag may pagkawala ng koneksyon at sinusubukang muling kumonekta hanggang sa ito ay matagumpay.

Hakbang 1: Mga Ginamit na Kagamitan

  • 1 Raperry Pi, mas mabuti ang bersyon 3 na isinama na sa Wireless card, maaari mo ring gamitin ang bersyon ng Pi 3 Zero, tumatagal ng kaunting trabaho dahil kailangan mong maghinang ng mga pin, ngunit huli kong nalaman na maaari itong gamitin ang isa sa mga ito na mas matipid.
  • 1 mataas na torque electric motor, 37mm, 3.5rpm at 12V.
  • 1 Braket para sa 37mm motor.
  • 1 character na LCD screen na 20x4 na linya na may HD44780 controlle.
  • 1 Cereal Dispenser Zevro Model WM1001 shaft-D na 5 pulgada ang haba, 0.63cm ang lapad (kinakailangan ang D cut upang ilakip ito sa dispenser)
  • 1 Shaft coupler mula 1/4 "hanggang 6mm upang sumali sa sa motor.

Ang lahat ng nakaraang mga materyales maliban sa huling dalawa hindi ko makuha ang mga ito sa aking bansa (o hindi ko alam kung saan kukunin ang mga ito), gayunpaman ang tungkod at ang magkabit ay marahil sa isang welding workshop ngunit ang unang pagkakataon na gumawa ako ng isang bagay tulad nito, wala akong ideya kung paano ito dapat magkasya sa engine kaya tinanong ko ang pahina ng mga link na inilarawan sa itaas; Sa ibaba ng mga materyales na maaari kong bilhin sa mga lokal na tindahan:

  • 1 kahon na gawa sa kahoy, gumagamit ako ng 20.3 cm ang lapad × 26.7 cm taas x 13 cm ang lalim. ang kahon ay may isang pintuan na bubukas sa kanan na may butas na 10cm x 4cm upang ilagay ang LCD screen (lokal na palawit)
  • 3 Itulak ang mga pindutan
  • 1 Maliit na Protoboard
  • 1 LED ng 3.3 Volts (Hindi mahalaga ang kulay ngunit para sa boltahe kadalasang Pula sila)
  • 1 NPN PN2222 transistor
  • 1 Paglaban ng 270 Ω
  • 1 Paglaban ng 10 KΩ
  • 1 Potensyomiter ng 10 KΩ
  • 1 IN4003 diode (maaaring gumana ang IN4001 o IN4004)
  • 1 12V 3A adapter
  • 1 5V 2A adapter
  • 4 na mga turnilyo na may wing nut mula 1.5 pulgada hanggang 2 pulgada (nakasalalay sa kapal ng ginamit na kahoy, dapat nilang ayusin ang motor bracket sa kahoy na kahon)
  • Cables Jumper strands ng iba't ibang mga kulay
  • 1 natitiklop na tubo o isang hanay ng PVC na 4 na Inci Diameter, depende ito sa taas kung saan mailalagay ang kahon na gawa sa kahoy.
  • 1 siko ng PVC na nakakabit sa nakaraang cast.
  • 3 clamp para sa mga tubo ng kotse (Ang Mundo)
  • 4 Mga Talampakan ng UTP Cable (kailangan namin ng mga baluktot na pares upang gawin ang mga koneksyon)
  • 1 USB WebCam, hindi kinakailangan na maging mataas ang resolusyon.

Ang ilang mga magkakaibang materyales na maaaring makuha sa mga tindahan ng hardware o posibleng mayroon na kami: Tape na Pang-industriya

  • Tin welder
  • Tin
  • Drill
  • Mag-drill 5/16
  • S8 screws na may mga nagpapalawak

Hakbang 2: paglalagay ng istraktura

Paglalagay ng istraktura
Paglalagay ng istraktura
Paglalagay ng istraktura
Paglalagay ng istraktura
Paglalagay ng istraktura
Paglalagay ng istraktura

Ang pangunahing ideya ay upang palitan ang hawakan ng dispensing na dumarating sa ZEVRO ng pamalo ng D na pagkatapos ay makakonekta sa Motor sa pamamagitan ng Coupler. Ang dispenser ay ikakabit sa kahon na gawa sa kahoy at sa kahon na gawa sa kahoy sa dingding. Dahil hindi ko alam ang maraming electronics hindi ako gumamit ng anumang plate ng Bakelite upang mai-mount ang circuit kaya ginamit ko ang breadboard upang ilagay ang lahat ng mga sangkap kaya't sa ilalim ng kahon ay pinagtibay ng mga tornilyo ang Rapberry Pi at ang breadboard na mayroon nang isang malagkit sa likuran kaya't pinuntahan ko lang ito. Ang kahon ay dapat magkaroon ng tatlong mga pindutan na magkakaroon ng pag-andar ng I-restart ang timer, buhayin ang feeder at ang huling ay isang direktang hakbang upang buhayin ang motor nang hindi dumadaan sa circuit. Ang motor ay gaganapin sa loob ng kahon sa pamamagitan ng bracket, kaya ang pamalo lamang ng D na kumokonekta sa dispenser ang lalabas mula sa kahon, sa ilalim ng kahon ayusin at ayusin ang webcam upang sa bawat konsulta sa mail at kumpirmasyon ko Nagpadala ng larawan kung kumusta ang plato, ito upang hindi labis na feed kung sakaling hindi pa nila natatapos ang huling pag-ikot ng pagkain.

Mula sa ilalim ng dispenser, ang tubo na bumababa sa plato ay inilagay at ang siko ng PVC ay nakalagay sa base, naglagay ako ng isang maliit na Tape na Pang-industriya sa outlet upang mabawasan ang bilis ng daloy ng pagkain at gumawa ng isang dispensing base para sa maiwasan ang pag-spray ng pagkain kahit saan. Upang ayusin ang tubo sa dingding, gumamit ng mga braket na metal na naayos mo sa dingding gamit ang mga S8 stud screw.

Sa pintuan ng kahon hawakan ang plato ng LCD screen at gamitin ang baluktot na mga pares ng UTP cable upang direktang dalhin ang mga ito sa Raspberry, sa kabilang dulo ng mga kable ay paghaluin ang mga babaeng tip ng mga jumper upang gawing mas madali ang koneksyon sa ang mga port ng GPIO ng Raspberry. Ito ang magiging diagram ng circuit. Susubukan kong ipaliwanag ito sa kung anong maliit na makukuha ko mula sa Electronics.

Ang motor ay konektado direkta sa positibong poste ng 12 volt transpormer ngunit para sa kasalukuyang daloy ay dapat itong dumaan sa circuit sa walang kinikilingan na poste ng motor, para sa transistor na ito na N2222 ay ginagamit. Ang mga transistors ay karaniwang may 3 mga binti na tumutugma sa isang kolektor, isang base at isang emitter, depende sa modelo ng transistor na ang lokasyon ng mga binti ay maaaring magkakaiba; Ginagawa ng transistor na ito ang pag-andar ng switch. Dito namin ikonekta ang walang kinikilingan na poste ng motor sa kolektor ng transistor, ang pin # 19 ng rapberry ay konektado sa base sa pamamagitan ng paglaban ng 270Ω at ang emitter ay konektado sa walang kinikilingan na terminal ng transistor. 12V transpormer kasama ang isa sa mga poste sa lupa ng raspberry; hahayaan ng transistor ang kasalukuyang daloy sa pagitan ng kolektor at emitter hangga't ang base ay stimulated na may sapat na boltahe; mamaya ipaprogram namin ang rapberry upang ayon sa ilang mga order port 19 ay magpapalabas ng 3.3 volts, sapat para sa circuit upang magpatuloy at buhayin ang motor.

Para sa LCD screen, ang isa pang bahagi ng protobard ay ginagamit sa ibang circuit kung saan ikinonekta mo ang 10KΩ potentiometer na tinatanggihan ang kaibahan ng teksto na lilitaw sa LCD, kaya kung walang lumitaw sa screen ay marahil dahil ang potentiometro ay ganap sarado; sa aking kaso iniiwan ko itong ganap na bukas upang ang teksto ay mas mahusay na mailarawan. Sa huli ang mga koneksyon sa breadboard ay ang mga sumusunod.

Hakbang 3: Pag-configure ng Raspberry Pi

Una sa lahat mahalaga na likhain ang Telegram Bot na mapamahalaan ang system, Kakailanganin mo ng isang susi upang mabago ang nakalakip na script ng sawa. Mangyaring basahin ang mga hakbang sa Dokumentasyon ng telegram:

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

Upang mai-configure ang rapberry, gamitin ang bersyon ng Lite ng Rapbian (hindi namin kailangan ang graphic interface) at ilapat ang pangunahing pagsasaayos na ipinapakita ang raspbian sa sandaling na-install o ginagamit ang utos ng raspi-config: palawakin ang puwang sa 100% at paganahin ang SSH ngunit lalo na ang pinakamahalagang bagay ay baguhin ang password at username sa pi ng gumagamit na darating bilang default (Kung hindi man, tulad ng nangyari sa akin, maaari silang magtiis ng isang atake sa pamamagitan ng port 22 kung mayroon silang isang pampublikong IP na naka-address sa raspberry). Bukod sa iyon ang pagsasaayos upang awtomatikong kumonekta sa aking WiFi network (Ipagpalagay na ang aking network ay tinawag na "BlogSoriano" at ang aking password ay "$ ecure123!") Bumubuo at nai-save namin ang susi sa mga file ng mga koneksyon sa Wireless na may sumusunod na utos:

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

ang susunod na bagay ay ang i-update at mai-install ang "pip" na sistema ng pag-install ng sawa upang mag-log in kami bilang ugat, i-update at i-install ang mga kinakailangang mga pakete:

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

Sa pamamagitan nito mayroon kaming pag-access sa silid-aklatan ng klase ng sawa, para sa script na gagamitin namin, kailangan naming i-install ang sumusunod:

pip install RPi. GPIO Adafruit-CharLCDuonplib2 html2text netifaces wireless telepot cv2

Kapag natapos ang pag-install ng mga dependency, gagamitin namin ang script na naka-attach sa hakbang na ito, nai-save ko ito sa path /opt/petfeeder.py at maaaring malikha ang file gamit ang command nano /opt/petfeeder.py at sa loob ng file na ito i-paste namin ang code o, kung mayroon kang higit na karanasan sa Linux, maaari kang direktang mag-download gamit ang wget. Sa iskrip mahalaga na baguhin ang mga variable BOTKEY (sa linya 36) at SYSPASSWORD (sa linya 23).

Nilinaw ko na ang code na ito ay hindi ko isinulat dahil hindi ko pa nai-program sa Python, binago ko lang ito upang gumana sa mga bagong aklatan at sa 20x4 LCD screen at upang magamit ang telegram Bot.

Kapag mayroon kaming Script, dapat nating baguhin ang mga halaga ng mga variable na may susi para sa bot; para dito kinakailangan na lumikha ng isang bagong Telegram Bot, na i-save lamang ang file at lumabas (kasama ang Ctrl + o i-save at ctrl + x ay umalis sa editor nano), kailangan lamang naming maging patunay ng pag-restart; ang script mismo ang nagse-save ng huling oras na ang sistema ng kuryente ay na-aktibo, kaya kailangan lang nating patakbuhin ang script sa tuwing magsisimula ang operating system, para dito nakita ko ang isang partikular na solusyon sa isang program na tinatawag na supervisor, na naka-install mula sa mga repository ng Debian:

apt-get install supervisor

at sa sandaling na-install, kailangan lamang naming lumikha ng isang file ng pagsasaayos sa /etc/supervisor/conf.d/petfeeder.conf, tulad ng sa nakaraang kaso maaari nating likhain ito at mai-save ito sa nano, ang file na ito ay magkakaroon ng mga sumusunod:

[programa: petfeederd] direktoryo = / opt command = python petfeeder.py autostart = true autorestart = true

Kapag nai-save ang file maaari naming gamitin ang command supervisorctl [simulan | huminto | i-restart] petfeederd, tulad ng sa kasong ito ang serbisyo ay hindi pa nasisimulan, isinasagawa namin ito sa simula:

supervisorctl simulan ang petfeederd

Hakbang 4: Handa nang Sumubok

Image
Image
Handa nang Subukin
Handa nang Subukin
Handa nang Subukin
Handa nang Subukin
Handa nang Subukin
Handa nang Subukin

At sa ito dapat gumana ang system, ang LCD screen ay dapat magpakita ng impormasyon tungkol sa kung kailan dapat ito ang susunod na feed o kung handa na itong magpakain dapat kong sabihin. Dapat mo ring ipakita ang pangalan ng wireless network kung saan ka nakakonekta at ang IP address na ginagamit kung sakaling kailanganin naming kumonekta sa pamamagitan ng SSH, nagbabahagi ako ng isang maliit na video na ginawa ko, humihingi ako ng paumanhin para sa kalidad nito, ako Hindi ako napakahusay ay ang paksang ito ng mga vlog.

Dapat mong maghanap ang iyong bot sa Telegram at Magpadala ng isa sa susunod na utos pagkatapos mong / pahintulutan ang iyong chat:

/ feed: Nagsisimula ang proseso ng pagpapakain hangga't lumipas ang parameterized na tagal ng panahon.

/ kailan: nagbabalik ito ng impormasyon tungkol sa kung kailan ang huling pagpapakain at isang larawan ng plato ng pagkain.

/ larawan: Ibalik ang isang larawan ng plato ng pagkain.

/ restart: I-restart ang system, itakda ang variable ng huling feed sa 0 upang makapagpakain kaagad.

/ status Ipinaalam nito ang tungkol sa katayuan sa koneksyon sa Internet: SSID ng nakakonektang Wireless at ang IP address na mayroon ang system sa loob ng network.

Inirerekumendang: