Përmbajtje:

Makinë ushqyese për kafshë me RasPi dhe Telegram Bot: 4 hapa (me fotografi)
Makinë ushqyese për kafshë me RasPi dhe Telegram Bot: 4 hapa (me fotografi)

Video: Makinë ushqyese për kafshë me RasPi dhe Telegram Bot: 4 hapa (me fotografi)

Video: Makinë ushqyese për kafshë me RasPi dhe Telegram Bot: 4 hapa (me fotografi)
Video: Pse po pres l4d3 2024, Korrik
Anonim
Makinë për ushqimin e kafshëve shtëpiake me RasPi dhe Telegram Bot
Makinë për ushqimin e kafshëve shtëpiake me RasPi dhe Telegram Bot
Makinë për ushqimin e kafshëve shtëpiake me RasPi dhe Telegram Bot
Makinë për ushqimin e kafshëve shtëpiake me RasPi dhe Telegram Bot

Para së gjithash, më duhet të sqaroj se kjo nuk është një Ide Mine, thjesht përditësoni dhe përshtatni skriptet e programimit për të punuar me telegram, e gjeta në një Instructable të mëparshëm, kështu që kreditet vërtet janë autori i saj.

Ju mund ta shihni versionin spanjoll të kësaj në Blogun tim personal:

Ju duhet të ndërtoni një qark të vogël që aktivizon një motor me çift rrotullues të lartë, dhe meqenëse njohuritë e mia për elektronikën janë shumë, shumë të pakta, më duhej të kaloja disa ditë duke mësuar bazat duke shikuar video në YouTube.

Skenari origjinal i automatizimit është shkruar në Python dhe përdor një lidhje GMail për të konsultuar komandat, unë kurrë nuk e kam përdorur këtë gjuhë programimi, por e vërteta nuk është aq e ndryshme nga të tjerat, e kam modifikuar pak në mënyrë që të përshtatet më mirë me të renë ato bibliotekat Python dhe procesi i automatizimit së bashku me konfigurimet e sistemit operativ ju lejojnë të parametëroni sa vijon:

  • Ndërveprimi përmes komandave të dërguara në Chat të kontrolluara përmes ChatBots.
  • Kjo ju lejon të gjurmoni statusin e ushqimit të shpërndarë.
  • Kontrollon sa ushqim do të shpërndahet.
  • Ka butona që ju lejojnë të ushqeni me dorë.
  • Nuk lejon ushqyerjen e tepërt duke çaktivizuar ushqyerjen në intervale 8-orëshe.
  • Ajo ka një LCD status që tregon të dhënat si data dhe ora e herës tjetër për furnizimin me energji tjetër, SSID me të cilën është e lidhur me WiFi dhe adresën IP të pajisjes.
  • Opsionale: Tregon disa Shaka të rastësishme të Chuck Norris dhe / ose Trivia të Numrave duke përdorur një palë APIS publike (I zgjuar nga autori origjinal).
  • Sistemi është imun ndaj rinisjeve për shkak të ndërprerjes së energjisë pasi ruan një skedar statusi.
  • Sistemi zbulon kur ka një humbje të lidhjes dhe përpiqet të lidhet përsëri derisa të ketë sukses.

Hapi 1: Materialet e përdorura

  • 1 Raperry Pi, mundësisht versioni 3 që tashmë është i integruar me kartën Wireless, gjithashtu mund të përdorni versionin Pi 3 Zero, kërkon pak më shumë punë sepse duhet të lidhni kunjat, por e kuptova shumë vonë se mund përdorni një nga këto që janë më ekonomike.
  • 1 motor elektrik me çift rrotullues të lartë, 37mm, 3.5rpm dhe 12V.
  • 1 Braket për motor 37mm.
  • Ekran LCD me 1 karaktere me rreshta 20x4 me kontrollues HD44780.
  • 1 Dispenser drithërash Zevro Model WM1001 bosht-D prej 5 inç i gjatë, 0.63 cm në diametër (prerja D është e nevojshme për ta bashkangjitur atë në bombol me vrimë nxjerrëse)
  • 1 bashkues boshti nga 1/4 "në 6 mm për t'u bashkuar me motorin.

Të gjitha materialet e mëparshme me përjashtim të dy të fundit nuk mund t'i merrja në vendin tim (ose të paktën nuk dija ku t'i merrja), megjithatë shufra dhe bashkuesi ndoshta janë në një punëtori saldimi, por janë hera e parë që bëj diçka kështu, nuk kisha asnjë ide se si duhet të jetë përshtatja e motorit, kështu që pyeta faqen e lidhjeve të përshkruara më sipër; Më poshtë materialet që mund të blija në dyqanet lokale:

  • 1 kuti druri, unë përdor një 20.3 cm të gjerë × 26.7 cm të lartë x 13 cm të thellë. kutia ka një derë që hapet në të djathtë me një vrimë 10cm x 4cm për të vendosur ekranin LCD (zdrukthtari lokale)
  • 3 Shtypni butonat
  • 1 Protoboard i vogël
  • 1 LED prej 3.3 Volt (Nuk ka rëndësi ngjyra, por për tensionin ato zakonisht janë të Kuqe)
  • 1 transistor NPN PN2222
  • 1 Rezistenca prej 270 Ω
  • 1 Rezistenca prej 10 KΩ
  • 1 Potenciometër prej 10 KΩ
  • 1 diodë IN4003 (mund të funksionojë IN4001 ose IN4004)
  • 1 përshtatës 12V 3A
  • 1 përshtatës 5V 2A
  • 4 vida me arrë krahu nga 1.5 inç në 2 inç (varet nga trashësia e drurit të përdorur, ato duhet të fiksojnë kllapën e motorit në kutinë prej druri)
  • Kabllot Jumper fillesat e ngjyrave të ndryshme
  • 1 tub palosës ose një grup PVC me diametër 4 inç, kjo varet nga lartësia në të cilën do të vendoset kutia prej druri.
  • 1 bërryl PVC që i bashkohet gipsit të mëparshëm.
  • 3 kapëse për tubat e makinave (Bota)
  • 4 këmbë të kabllit UTP (na duhen çiftet e përdredhur për të bërë lidhjet)
  • 1 WebCam USB, nuk është e nevojshme të jetë me rezolucion të lartë.

Disa materiale të ndryshme që mund të merren në dyqanet e pajisjeve ose ndoshta tashmë i kemi: Shirit Industrial

  • Saldator kallaji
  • Kallaj
  • Stërvitje
  • Stërvitje 5/16
  • Vida S8 me zgjerues

Hapi 2: Vendosja e Strukturës

Vendosja e Strukturës
Vendosja e Strukturës
Vendosja e Strukturës
Vendosja e Strukturës
Vendosja e Strukturës
Vendosja e Strukturës

Ideja kryesore është të zëvendësoni dorezën e shpërndarjes që vjen në ZEVRO nga shufra D e cila më pas do të lidhet me motorin me anë të bashkuesit. Shpërndarësi do të ngjitet në kutinë prej druri dhe kutia prej druri në mur. Meqenëse nuk di shumë pajisje elektronike, unë nuk kam përdorur asnjë pjatë Bakelite për të montuar qarkun, kështu që unë përdor dërrasën e bukës për të vendosur të gjithë përbërësit, kështu që në fund të kutisë është fiksuar me vida Rapberry Pi dhe dërrasa e bukës e cila tashmë kishte një ngjitës në anën e pasme kështu që unë thjesht shkova ta ngjisja. Kutia duhet të ketë tre butona të cilët do të kenë funksionin e Rinisni kohëmatësin, aktivizoni ushqyesin dhe i fundit do të jetë një hap i drejtpërdrejtë për të aktivizuar motorin pa kaluar nëpër qark. Motori do të mbahet brenda kutisë me anë të kllapës, kështu që vetëm shufra D që lidhet me shpërndarësin do të dalë nga kutia, në fund të kutisë rregulloni dhe rregulloni kamerën në internet në mënyrë që në çdo konsultim dhe konfirmim të postës I dërgoi një fotografi se si është pjata, kjo për të mos u ushqyer në rast se ata nuk kanë përfunduar raundin e fundit të ushqimit.

Nga pjesa e poshtme e shpërndarësit, tubi që zbret në pjatë u vendos dhe bërryla PVC u vendos në bazë, vendosa një Shirit të vogël Industrial në prizë për të minimizuar shpejtësinë e rrjedhës së ushqimit dhe bëra një bazë shpërndarëse për parandaloni spërkatjen e ushqimit kudo. Për të fiksuar tubin në mur, përdorni kllapa metalike që i fiksoni në mur me vidhat e kunjave S8.

Në derën e kutisë mbani pllakën e ekranit LCD dhe përdorni palët e përdredhura të kabllit UTP për t'i çuar drejtpërdrejt në mjedër, në skajin tjetër të kabllove bashkoni majat femra të kërcyesve për ta bërë më të lehtë lidhjen në portet GPIO të Mjedrës. Ky do të ishte diagrami i qarkut. Do të përpiqem ta shpjegoj me atë pak që mund të marr nga Elektronika.

Motori është i lidhur drejtpërdrejt me polin pozitiv të transformatorit 12 volt, por që rryma të rrjedhë duhet të kalojë përmes qarkut në polin neutral të motorit, për këtë përdoret transistori N2222. Transistorët normalisht kanë 3 këmbë të cilat korrespondojnë me një kolektor, një bazë dhe një emetues, në varësi të modelit të tranzistorit vendndodhja e këtyre këmbëve mund të ndryshojë; Ky tranzistor bën funksionimin e kalimit. Këtu lidhim polin neutral të motorit me kolektorin e tranzistorit, kunja # 19 e mjedrës lidhet me bazën me anë të një rezistence prej 270Ω dhe emetuesi lidhet me terminalin neutral të tranzistorit. Transformator 12V së bashku me një nga shtyllat e tokës të mjedrës; tranzistori do të lejojë që rryma të rrjedhë midis kolektorit dhe emetuesit për sa kohë që baza stimulohet me tension të mjaftueshëm; më vonë do të programojmë mjedrën në mënyrë që sipas porosive të caktuara porti 19 të lëshojë 3.3 volt, mjaftueshëm që qarku të vazhdojë dhe aktivizojë motorin.

Për ekranin LCD, një pjesë tjetër e protobardit përdoret në një qark të ndryshëm ku lidhni potenciometrin 10KΩ i cili refuzon kontrastin e tekstit që shfaqet në LCD, kështu që nëse asgjë nuk shfaqet në ekran është ndoshta sepse potenciometri është totalisht mbyllur; në rastin tim e lë plotësisht të hapur në mënyrë që teksti të vizualizohet më mirë. Në fund lidhjet në tabelën e bukës do të ishin si më poshtë.

Hapi 3: Konfigurimi i Raspberry Pi

Para së gjithash është e rëndësishme të krijoni Telegram Bot që sistemi do të menaxhohet, Ju do të keni nevojë për një çelës për të modifikuar skriptin bashkangjitur python. Ju lutemi lexoni hapat në Dokumentacionin e telegramit:

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

Për të konfiguruar mjedrën, përdorni versionin Lite të Rapbian (nuk kemi nevojë për ndërfaqen grafike) dhe aplikoni konfigurimin bazë që tregon raspbian pasi të jetë instaluar ose duke përdorur komandën raspi-config: zgjeroni hapësirën në 100% dhe aktivizoni SSH por veçanërisht gjëja më e rëndësishme është të ndryshoni fjalëkalimin dhe emrin e përdoruesit tek përdoruesi pi që vjen si parazgjedhje (përndryshe, siç më ndodhi mua, ata mund të pësojnë një sulm nga porti 22 nëse kanë një IP publike të adresuar ndaj mjedrës) Me Përveç kësaj, konfigurimi për t'u lidhur automatikisht me rrjetin tim WiFi (Duke supozuar se rrjeti im quhet "BlogSoriano" dhe fjalëkalimi im është "$ ecure123!") Ne krijojmë dhe ruajmë çelësin në skedarin e lidhjeve pa tel me komandën e mëposhtme:

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

gjëja tjetër është azhurnimi dhe instalimi i sistemit të instalimit të python "pip" kështu që ne do të regjistrohemi si root, përditësojmë dhe instalojmë paketat e nevojshme:

sudo -i apt-merrni përditësim apt-merrni instaloni ndërtuar-thelbësore python-dev python-smbus python-pip

Me këtë ne tashmë kemi qasje në bibliotekën e klasës python, për skriptin që do të përdorim, duhet të instalojmë sa vijon:

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

Pasi të ketë përfunduar instalimi i varësive, ne do të përdorim skriptin e bashkangjitur në këtë hap, e ruaj në rrugën /opt/petfeeder.py dhe skedari mund të krijohet duke përdorur komandën nano /opt/petfeeder.py dhe brenda këtij skedari ne ngjisim kodin ose, nëse keni më shumë përvojë në Linux, mund ta shkarkoni drejtpërdrejt me wget. Në skenar është e rëndësishme të modifikoni variablat BOTKEY (në rreshtin 36) dhe SYSPASSWORD (në rreshtin 23).

Sqaroj se ky kod nuk është shkruar nga unë pasi nuk kisha programuar kurrë në Python, e modifikova vetëm për të punuar me bibliotekat e reja dhe me ekranin LCD 20x4 dhe për të përdorur telegram Bot.

Pasi të kemi Script, duhet të ndryshojmë vlerat e variablave me çelësin për botin; për këtë është e nevojshme të krijoni një Telegram Bot të ri, me të cilin do të ishte vetëm të ruani skedarin dhe të dilni (me Ctrl + ose ruani dhe ctrl + x lë redaktuesin nano), ne vetëm duhet të jemi dëshmi e rinisjeve; vetë skripti kursen herën e fundit kur sistemi i energjisë është aktivizuar, kështu që ne vetëm duhet ta bëjmë skriptin çdo herë që fillon sistemi operativ, për këtë gjeta një zgjidhje shumë të veçantë me një program të quajtur mbikëqyrës, i cili është i instaluar nga depot Debian:

apt-get install supervisor

dhe pasi të instalohet, ne vetëm duhet të krijojmë një skedar konfigurimi në /etc/supervisor/conf.d/petfeeder.conf, pasi në rastin e mëparshëm mund ta krijojmë dhe ruajmë atë me nano, ky skedar do të ketë sa vijon:

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

Pasi të ruhet skedari, mund të përdorim komandën supervisorctl [start | ndalet | rinisni] petfeederd, pasi në këtë rast shërbimi nuk është filluar, ne e ekzekutojmë atë me fillimin:

supervisorctl start petfeederd

Hapi 4: Gati për Provë

Image
Image
Gati për Test
Gati për Test
Gati për Test
Gati për Test
Gati për Test
Gati për Test

Dhe me këtë sistemi duhet të funksionojë, ekrani LCD duhet të tregojë informacione se kur duhet të jetë prurja tjetër ose nëse është gati për t’u ushqyer duhet ta them këtë. Ju gjithashtu duhet të tregoni emrin e rrjetit pa tel me të cilin jeni lidhur dhe adresën IP që po përdoret në rast se duhet të lidhemi përmes SSH, ndaj një video të vogël që kam bërë, kërkoj falje për cilësinë e saj, unë nuk jam shumë i mirë është kjo temë e vlogs.

Ju duhet të jeni në gjendje të kërkoni botin tuaj në Telegram dhe të dërgoni një nga komandat e ardhshme pasi të keni /autorizuar bisedën tuaj:

/feed: Fillon procesin e ushqyerjes për aq kohë sa ka kaluar periudha e parametruar e kohës.

/kur: ai kthen informacionin kur ishte ushqyerja e fundit dhe një fotografi të pjatës së ushqimit.

/foto: Ktheni një fotografi të pjatës së ushqimit.

/rinis: Rinisni sistemin, vendosni ndryshoren e ushqimit të fundit në 0 për të qenë në gjendje të ushqeni menjëherë.

/statusi Informon për statusin e lidhjes në internet: SSID e Wireless -it të lidhur dhe adresën IP që sistemi ka brenda rrjetit.

Recommended: