Mundarija:

RasPi va Telegram botli uy hayvonlarini oziqlantirish mashinasi: 4 qadam (rasmlar bilan)
RasPi va Telegram botli uy hayvonlarini oziqlantirish mashinasi: 4 qadam (rasmlar bilan)

Video: RasPi va Telegram botli uy hayvonlarini oziqlantirish mashinasi: 4 qadam (rasmlar bilan)

Video: RasPi va Telegram botli uy hayvonlarini oziqlantirish mashinasi: 4 qadam (rasmlar bilan)
Video: Пишем TELEGRAM бота на Python 2024, Noyabr
Anonim
RasPi va Telegram Bot bilan uy hayvonlarini oziqlantirish mashinasi
RasPi va Telegram Bot bilan uy hayvonlarini oziqlantirish mashinasi
RasPi va Telegram Bot bilan uy hayvonlarini oziqlantirish mashinasi
RasPi va Telegram Bot bilan uy hayvonlarini oziqlantirish mashinasi

Birinchidan, men bu "Idea Mine" ning asl nusxasi emasligini aniqlab olishim kerak, faqat telegram bilan ishlash uchun dasturiy skriptlarni yangilang va moslashtiring, men uni oldingi ko'rsatmada topdim, shuning uchun kreditlar uning muallifi.

Buning ispancha versiyasini mening shaxsiy blogimda ko'rishingiz mumkin edi:

Siz yuqori torkli dvigatelni ishga tushiradigan kichik sxemani qurishingiz kerak va elektronika haqidagi bilimim juda kam bo'lgani uchun, men bir necha kunni YouTube -da videolarni tomosha qilib, asoslarini o'rganishga majbur bo'ldim.

Asl avtomatlashtirish skripti Python -da yozilgan va buyruqlar bilan tanishish uchun GMail -dan foydalanadi, men hech qachon bu dasturlash tilini ishlatmaganman, lekin haqiqat boshqalardan unchalik farq qilmaydi, men uni biroz boshqasiga o'zgartirdim, shunda u yangisiga yaxshiroq moslashadi. Python kutubxonalari va avtomatlashtirish jarayoni operatsion tizim konfiguratsiyasi bilan birgalikda quyidagilarni parametrlashtirishga imkon beradi:

  • Chatga yuborilgan buyruqlar orqali o'zaro ta'sir ChatBots orqali boshqariladi.
  • Bu oziq -ovqat mahsulotlarining holatini kuzatishga imkon beradi.
  • Qancha oziq -ovqat tarqatilishini nazorat qiladi.
  • Qo'l bilan oziqlantirishga imkon beradigan tugmalar mavjud.
  • 8 soatlik interval bilan ovqatlanishni o'chirib qo'yib, ortiqcha ovqatlanishga yo'l qo'ymaydi.
  • U LCD displeyiga ega, u ma'lumotni keyingi quvvat manbai uchun keyingi vaqt, sana va Wi -Fi ulangan SSID va qurilmaning IP -manzili sifatida ko'rsatadi.
  • Majburiy emas: bir nechta Chak Norris tasodifiy hazillar va / yoki raqamlar trivia -ni ochiq APIS (asl muallif tomonidan aql bovar qilmaydigan) yordamida ko'rsatadi.
  • Tizim, holat faylini saqlaganligi sababli, quvvat uzilishi tufayli qayta ishga tushirishdan himoyalangan.
  • Tizim ulanish uzilganini aniqlaydi va u muvaffaqiyatli bo'lguncha qayta ulanishga harakat qiladi.

1 -qadam: Ishlatilgan materiallar

  • 1 Raperry Pi, tarjixon Simsiz karta bilan birlashtirilgan 3 -versiya, siz Pi 3 Zero versiyasini ham ishlatishingiz mumkin, bu biroz ko'proq mehnat talab qiladi, chunki siz pimlarni lehimlashingiz kerak, lekin men buni juda kech bildim. ulardan tejamkorroq birini ishlating.
  • 37 mm, 3,5 rpm va 12 V kuchlanishli 1 ta yuqori momentli elektr motor.
  • 37 mm motor uchun 1 ta braket.
  • HD44780 boshqaruvli 20x4 qatorli 1 belgili LCD displey.
  • 1 donli donli dispenser Zevro Model WM1001 mil-D uzunligi 5 dyuym, diametri 0,63 sm (uni dispenserga ulash uchun D kesmasi kerak)
  • Dvigatelga ulanish uchun 1/4 dyuymdan 6 mm gacha bo'lgan 1 ta ulagich.

Oxirgi ikkita materialdan tashqari, men ularni o'z mamlakatimda ololmadim (yoki hech bo'lmaganda qaerdan olishni bilmas edim), lekin tayoq va ulagich payvandlash ustaxonasida, lekin men birinchi marta biror narsa qilyapman. shunga o'xshab, men dvigatelga qanday mos kelishi kerakligini bilmasdim, shuning uchun men yuqorida tavsiflangan havolalar sahifasidan so'radim; Mahalliy do'konlarda sotib olishim mumkin bo'lgan materiallar quyida:

  • 1 ta yog'och quti, men kengligi 20,3 sm × balandligi 26,7 sm x 13 sm chuqurlikdan foydalanaman. qutida LCD displeyni joylashtirish uchun 10 sm x 4 sm teshikli o'ng tomonga ochiladigan eshik bor (mahalliy duradgorlik)
  • 3 tugmachalarni bosing
  • 1 Kichik himoya paneli
  • 3,3 voltli 1 LED (rangning ahamiyati yo'q, lekin kuchlanish uchun ular odatda qizil rangda bo'ladi)
  • 1 ta NPN PN2222 tranzistorli
  • 1 qarshilik 270 Ω
  • 1 qarshilik 10 KΩ
  • 1 potentsiometr 10 KΩ
  • 1 IN4003 diodi (IN4001 yoki IN4004 ishlashi mumkin)
  • 1 12V 3A adapter
  • 1 5V 2A adapter
  • 1,5 dyuymdan 2 dyuymgacha bo'lgan 4 ta vintli qanotli yong'oq
  • Kabellar har xil rangdagi o'tish iplari
  • 1 burma quvur yoki diametri 4 dyuymli PVX to'plami, bu yog'och quti qo'yiladigan balandlikka bog'liq.
  • Oldingi gipsga biriktirilgan 1 ta PVX tirsak.
  • Avtomobil quvurlari uchun 3 ta qisqich (Dunyo)
  • UTP kabelining 4 futi (ulanish uchun bizga o'ralgan juftlar kerak)
  • 1 USB veb -kamera, yuqori aniqlikda bo'lishi shart emas.

Uskunalar do'konlarida sotib olinishi mumkin bo'lgan yoki bizda allaqachon mavjud bo'lgan turli xil materiallar: sanoat lentasi

  • Kalay payvandchi
  • Qalay
  • Matkap
  • Matkap 5/16
  • Kengaytirgichli S8 vintlardek

2 -qadam: Strukturani joylashtirish

Strukturani joylashtirish
Strukturani joylashtirish
Strukturani joylashtirish
Strukturani joylashtirish
Strukturani joylashtirish
Strukturani joylashtirish

Asosiy g'oya - ZEVRO -dagi tarqatish dastagini D tayog'i bilan almashtirish, keyinchalik u ulash moslamasi yordamida Dvigatelga ulanadi. Dispenser yog'och qutiga va yog'och quti devorga biriktiriladi. Men elektronikani yaxshi bilmasligim sababli, men sxemani o'rnatish uchun Bakelit plastinkasidan foydalanmaganman, shuning uchun men non panelidan barcha komponentlarni qo'yish uchun ishlatardim, shuning uchun qutining pastki qismiga Rapberry Pi vintlar bilan mahkamlangan va yopishtiruvchi paneli bor edi. orqada, shuning uchun men uni yopish uchun bordim. Qutida uchta tugma bo'lishi kerak, ular taymerni qayta ishga tushirish funktsiyasini bajaradi, oziqlantirgichni ishga tushiradi va oxirgisi dvigatelni kontaktlarning zanglashidan o'tmasdan faollashtirish uchun to'g'ridan -to'g'ri qadam bo'ladi. Dvigatel ushlagich yordamida qutining ichida ushlab turiladi, shuning uchun faqat dispenserga ulangan D tayog'i qutidan chiqib ketadi, qutining pastki qismida veb -kamerani to'g'rilab, sozlang. ovqatning oxirgi turini tugatmagan bo'lsalar, bu ovqatni to'ydirmaslik uchun plastinka qanday bo'lgani haqidagi fotosuratni yubordi.

Dispenserning pastki qismidan plastinkaga tushadigan trubka qo'yildi va taglikka PVX tirsak qo'yildi, men oziq -ovqat oqimining tezligini kamaytirish uchun rozetkaga ozgina sanoat tasmasini qo'ydim va tarqatish uchun tayanch qildim. oziq -ovqat hamma joyda purkashiga yo'l qo'ymang. Quvurni devorga mahkamlash uchun devorga S8 vintlari bilan mahkamlanadigan metall qavslardan foydalaning.

Qutining eshigida LCD displey plastinkasini ushlab turing va UTP kabelining o'ralgan juftlarini to'g'ridan -to'g'ri malinaga olib boring, kabelning boshqa uchida ulanishni osonlashtirish uchun ulagichlarning urg'ochi uchlarini bog'lab qo'ying. malinali GPIO portlari. Bu elektron sxemasi bo'ladi. Men buni Electronics -dan nimani olishim mumkinligini tushuntirishga harakat qilaman.

Dvigatel to'g'ridan -to'g'ri 12 voltli transformatorning ijobiy qutbiga ulanadi, lekin oqim oqishi uchun u dvigatelning neytral qutbidagi kontaktlarning zanglashidan o'tishi kerak, buning uchun N2222 tranzistor ishlatiladi. Odatda tranzistorlar kollektor, tayanch va emitentga mos keladigan 3 ta oyoqdan iborat bo'lib, tranzistor modeliga qarab, bu oyoqlarning joylashuvi turlicha bo'lishi mumkin; Ushbu tranzistor kalit vazifasini bajaradi. Bu erda biz dvigatelning neytral qutbini tranzistor kollektoriga ulaymiz, rapberry -ning 19 -pinli tayanchga 270Ω qarshilik orqali ulanadi va emitent tranzistorning neytral terminaliga ulanadi. 12V transformator malina tuproq qutblaridan biri bilan; tranzistor, agar baza etarli kuchlanish bilan rag'batlantirilsa, kollektor va emitent o'rtasida tok oqimiga ruxsat beradi; Keyinchalik biz rapberry dasturini o'rnatamiz, shunda ma'lum buyurtmalar bo'yicha 19 -port 3,3 volts chiqaradi, bu kontaktlarning zanglashiga olib borishi va dvigatelni ishga tushirishi uchun etarli.

LCD displey uchun protobardning boshqa qismi 10KΩ potansiyometrni ulaydigan boshqa sxemada ishlatiladi, bu esa LCD displeyda ko'rinadigan matnning kontrastini rad etadi, shuning uchun agar ekranda hech narsa ko'rinmasa, ehtimol potentsiometr butunlay yopiq; mening holimda matnni ingl. Oxir -oqibat, non panelidagi ulanishlar quyidagicha bo'ladi.

3 -qadam: Raspberry Pi konfiguratsiyasi

Avvalo, tizim boshqariladigan Telegram Botini yaratish muhim, unga biriktirilgan python skriptini o'zgartirish uchun kalit kerak bo'ladi. Telegramdagi hujjatlarni o'qing:

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

Rapberry-ni sozlash uchun Rapbian-ning Lite versiyasini ishlating (bizga grafik interfeys kerak emas) va raspbian-ni o'rnatgandan so'ng yoki raspi-config buyrug'i yordamida ko'rsatadigan asosiy konfiguratsiyani qo'llang: bo'sh joyni 100% ga kengaytiring va yoqing. SSH, lekin, ayniqsa, eng muhimi, parol va foydalanuvchi nomini sukut bo'yicha keladigan foydalanuvchi pi -ga o'zgartirishdir (aks holda, men bilan bo'lgani kabi, agar ular malinaga ochiq IP -manzilga ega bo'lsa, ular 22 -port orqali hujumga uchrashi mumkin). Bundan tashqari, Wi -Fi tarmog'iga avtomatik ravishda ulanish uchun konfiguratsiya (agar mening tarmog'im "BlogSoriano" deb nomlansa va parolim "$ ecure123!" Deb hisoblansa), biz quyidagi buyruq bilan simsiz ulanishlar faylidagi kalitni yaratamiz va saqlaymiz:

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

Keyingi narsa - "pip" python o'rnatish tizimini yangilash va o'rnatish, shuning uchun biz root sifatida kiramiz, kerakli paketlarni yangilaymiz va o'rnatamiz:

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

Bu bilan bizda python sinf kutubxonasiga kirish imkoni bor, biz foydalanadigan skript uchun biz quyidagilarni o'rnatishimiz kerak:

pip o'rnatish RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces simsiz telepot cv2

Bog'liqliklarni o'rnatish tugallangach, biz bu bosqichga biriktirilgan skriptdan foydalanamiz, men uni /opt/petfeeder.py yo'lida saqlayman va faylni nano /opt/petfeeder.py buyrug'i yordamida va shu fayl ichida yaratish mumkin. biz kodni joylashtiramiz yoki agar sizda Linux tajribasi ko'proq bo'lsa, uni to'g'ridan -to'g'ri wget -dan yuklab olishingiz mumkin. Skriptda BOTKEY (36 -qatorda) va SYSPASSWORD (23 -qatorda) o'zgaruvchilarini o'zgartirish muhim ahamiyatga ega.

Men tushuntiramanki, bu kodni men yozmaganman, chunki men hech qachon Pythonda dasturlashtirmaganman, men uni faqat yangi kutubxonalar va 20x4 LCD displey bilan ishlash va telegram Botdan foydalanish uchun o'zgartirdim.

Skriptga ega bo'lgandan so'ng, biz bot uchun kalit yordamida o'zgaruvchilar qiymatlarini o'zgartirishimiz kerak; Buning uchun yangi Telegram Bot yaratish kerak, buning uchun faqat faylni saqlash va chiqish kerak bo'ladi (Ctrl + yoki ntr muharriridan ctrl + x saqlang), biz faqat qayta boshlanishini isbotlashimiz kerak; skriptning o'zi oxirgi marta quvvat tizimi ishga tushirilganda saqlaydi, shuning uchun biz faqat operatsion tizim har safar ishga tushganda skriptni ishga tushirishimiz kerak bo'ladi, buning uchun men Debian omborlaridan o'rnatilgan supervizor deb nomlangan maxsus dasturni topdim.:

apt-get o'rnatish nazoratchisi

va o'rnatilgandan so'ng, biz faqat /etc/supervisor/conf.d/petfeeder.conf -da konfiguratsiya faylini yaratishimiz kerak, chunki avvalgi holatda biz uni nano yordamida yaratib saqlashimiz mumkin, bu fayl quyidagilarga ega bo'ladi:

[dastur: petfeederd] katalog =/opt buyrug'i = python petfeeder.py autostart = haqiqiy autorestart = rost

Fayl saqlangandan so'ng biz supervisorctl [start | buyrug'idan foydalanishimiz mumkin to'xtatish | restart] petfeederd, chunki bu holatda xizmat boshlanmagan, biz uni start bilan bajaramiz:

supervisorctl petfeederd -ni ishga tushiring

4 -qadam: Sinovga tayyor

Image
Image
Sinovga tayyor
Sinovga tayyor
Sinovga tayyor
Sinovga tayyor
Sinovga tayyor
Sinovga tayyor

Va bu bilan tizim ishlashi kerak, LCD displeyda keyingi ovqat qachon bo'lishi kerakligi haqida ma'lumot ko'rsatilishi kerak yoki agar aytishga tayyor bo'lsam. Shuningdek, siz ulangan simsiz tarmoq nomini va agar biz SSH orqali ulanishimiz kerak bo'lsa, ishlatilayotgan IP manzilini ko'rsatishingiz kerak, men o'zim tayyorlagan kichik videoni baham ko'raman, uning sifati uchun uzr so'rayman. vloglar mavzusi unchalik yaxshi emas.

Siz o'z botingizni Telegram -da qidirishingiz va suhbatga ruxsat berganingizdan so'ng quyidagi buyruqlardan birini yuborishingiz kerak:

/feed: Parametrlangan vaqt o'tishi bilan oziqlantirish jarayonini boshlaydi.

/qachon: u oxirgi marta qachon ovqatlangani va ovqat plastinkasining rasmini qaytaradi.

/rasm: Oziq -ovqat plastinkasining rasmini qaytaring.

/qayta ishga tushirish: Tizimni qayta ishga tushiring, zudlik bilan ovqatlantirish uchun oxirgi besleme o'zgaruvchisini 0 ga o'rnating.

/status Internetga ulanish holati haqida ma'lumot beradi: ulangan simsiz tarmoqning SSID va tizimning tarmoq ichidagi IP -manzili.

Tavsiya: