Mündəricat:

RasPi və Telegram Botu ilə Ev Yemək Maşını: 4 Adım (Şəkillərlə birlikdə)
RasPi və Telegram Botu ilə Ev Yemək Maşını: 4 Adım (Şəkillərlə birlikdə)

Video: RasPi və Telegram Botu ilə Ev Yemək Maşını: 4 Adım (Şəkillərlə birlikdə)

Video: RasPi və Telegram Botu ilə Ev Yemək Maşını: 4 Adım (Şəkillərlə birlikdə)
Video: “ÜREYİM İSTƏSƏ VEREREM BUNDAN KİMƏ NƏ?!” - 18+ QIRĞIN DEBAT 2024, Iyul
Anonim
RasPi və Telegram Botu ilə Heyvan Besleyici Maşın
RasPi və Telegram Botu ilə Heyvan Besleyici Maşın
RasPi və Telegram Botu ilə Heyvan Besleyici Maşın
RasPi və Telegram Botu ilə Heyvan Besleyici Maşın

Əvvəlcə bunun orijinal bir Fikir Mədəni olmadığını aydınlaşdırmalıyam, sadəcə proqramlaşdırma skriptlərini teleqramla işləmək üçün yeniləyin və uyğunlaşdırın, əvvəlki bir Təlimat kitabında tapdım, buna görə kreditlər həqiqətən müəllifdir.

Bunun ispan versiyasını şəxsi bloqumda görə bilərsiniz:

Yüksək torklu motoru işə salan kiçik bir dövrə qurmalısınız və elektronika haqqında biliklərim çox az olduğundan YouTube -da video izləyərək bir neçə gün əsasları öyrənmək məcburiyyətində qaldım.

Orijinal avtomatlaşdırma skripti Python -da yazılmışdır və əmrləri öyrənmək üçün GMail bağlantısı istifadə edir, mən heç vaxt bu proqramlaşdırma dilindən istifadə etməmişəm, amma həqiqət başqalarından o qədər də fərqlənmir, onu bir az dəyişmişəm ki, yenilərinə daha yaxşı uyğunlaşsın. Python kitabxanaları və əməliyyat sistemi konfiqurasiyaları ilə birlikdə avtomatlaşdırma prosesi aşağıdakıları parametrləşdirməyə imkan verir:

  • Chat -a göndərilən əmrlər vasitəsilə qarşılıqlı əlaqə ChatBots vasitəsilə idarə olunur.
  • Verilən yeməyin vəziyyətini izləməyə imkan verir.
  • Nə qədər ərzaq paylanacağını nəzarət edir.
  • Əl ilə qidalanmağa imkan verən düymələr var.
  • Bəslənməni 8 saatlıq fasilələrlə aradan qaldıraraq artıq qidalanmağa icazə vermir.
  • Vəziyyət LCD, məlumatları bir sonrakı enerji təchizatı üçün bir sonrakı vaxtın tarixi və saatı, WiFi -yə qoşulduğu SSID və cihazın IP ünvanı kimi göstərir.
  • İsteğe bağlı: Bir cüt ictimai APIS (orijinal müəllif tərəfindən bacarıqlı) istifadə edərək bəzi Chuck Norris Təsadüfi Zarafatlar və / və ya Nömrələr Trivia göstərir.
  • Sistem, bir sənəd faylını saxladığı üçün elektrik kəsilməsi səbəbindən yenidən başlamağa qarşı immunitetlidir.
  • Sistem bir əlaqə itkisi olduğunu algılar və müvəffəqiyyətli olana qədər yenidən bağlanmağa çalışır.

Addım 1: İstifadə olunan materiallar

  • 1 Raperry Pi, tercihen Simsiz kartla inteqrasiya edilmiş 3 -cü versiya, Pi 3 Zero versiyasını da istifadə edə bilərsiniz, sancaqları lehimləməli olduğunuz üçün bir az daha çox iş tələb olunur, amma çox gec bildim daha qənaətli olanlardan birini istifadə edin.
  • 1 yüksək torklu elektrik mühərriki, 37mm, 3.5rpm və 12V.
  • 37 mm motor üçün 1 əyləc.
  • HD44780 idarəetmə ilə 20x4 xətdən ibarət 1 xarakterli LCD ekran.
  • 1 Taxıl Dağıtıcı Zevro Model WM1001 şaft-D 5 düym uzunluğunda, diametri 0,63 sm-dir (dispenserə bağlamaq üçün D kəsik lazımdır)
  • Motora qoşulmaq üçün 1/4 "-dən 6 mm -ə qədər 1 mil bağlayıcı.

Son iki material istisna olmaqla bütün əvvəlki materialları ölkəmdə ala bilmədim (və ya heç olmasa haradan əldə edəcəyimi bilmirdim), amma çubuq və bağlayıcı yəqin ki, qaynaq emalatxanasındadır, amma ilk dəfə bir şey edirəm mühərrikə necə uyğun olacağını bilmədiyim üçün yuxarıda göstərilən bağlantıların səhifəsindən soruşdum; Yerli mağazalarda ala biləcəyim materialların altında:

  • 1 taxta qutu, 20.3 sm enində × 26.7 sm yüksəklikdə və 13 sm dərinlikdə istifadə edirəm. qutuda, LCD ekranı yerləşdirmək üçün 10 sm x 4 sm ölçüsündə bir çuxur ilə sağa açılan bir qapı var (yerli doğrama)
  • 3 Düymələri basın
  • 1 Kiçik Protoboard
  • 3.3 Voltluq 1 LED (Rənginin fərqi yoxdur, lakin gərginliyə görə ümumiyyətlə qırmızı olur)
  • 1 NPN PN2222 tranzistor
  • 1 müqavimət 270 Ω
  • 1 10 KΩ müqavimət
  • 1 potensialiometr 10 kΩ
  • 1 IN4003 diod (IN4001 və ya IN4004 işləyə bilər)
  • 1 12V 3A adapter
  • 1 5V 2A adapter
  • 1,5 düymdən 2 düymə qədər olan qanadlı 4 vida
  • Kabellər Müxtəlif rəngli tullanan iplər
  • 1 qatlanan boru və ya 4 düym diametrli bir PVC dəsti, bu taxta qutunun yerləşdiriləcəyi hündürlüyə bağlıdır.
  • Əvvəlki gipsə yapışan 1 PVC dirsək.
  • Avtomobil boruları üçün 3 sıxac (Dünya)
  • 4 Ayaq UTP Kabeli (bağlantı qurmaq üçün bükülmüş cütlərə ehtiyacımız var)
  • 1 USB Web Kamerası, yüksək qətnamə olması lazım deyil.

Avadanlıq mağazalarında əldə edilə bilən və ya bəlkə də əlimizdə olan müxtəlif materiallar: Sənaye lenti

  • Qalın qaynaqçı
  • Qalay
  • Qazma
  • Qazma 5/16
  • Genişləndiriciləri olan S8 vintlər

Addım 2: Strukturun yerləşdirilməsi

Strukturun yerləşdirilməsi
Strukturun yerləşdirilməsi
Strukturun yerləşdirilməsi
Strukturun yerləşdirilməsi
Strukturun yerləşdirilməsi
Strukturun yerləşdirilməsi

Əsas fikir, ZEVRO -da olan paylama sapını D çubuğu ilə əvəz etməkdir ki, bu da birləşdirici vasitəsi ilə Motora bağlanacaqdır. Dağıtıcı taxta qutuya və taxta qutu divara bərkidiləcək. Elektronika haqqında çox şey bilmədiyim üçün dövrə quraşdırmaq üçün heç bir Bakelite boşqabından istifadə etməmişəm, buna görə də çörək taxtasından istifadə edərək bütün komponentləri qutunun altına Rapberry Pi vintləri ilə bağladım və artıq yapışqanı olan çörək taxtasını istifadə etdim. arxada olduğu üçün yapışdırmağa getdim. Qutuda taymeri yenidən başladın, qidalandırıcıyı aktivləşdirin və sonuncusu dövrə keçmədən mühərriki işə salmaq üçün birbaşa addım olacaq üç düymə olmalıdır. Motor, mötərizə vasitəsi ilə qutunun içərisində tutulacaq, buna görə yalnız dispenserə qoşulan çubuq D qutudan çıxacaq, qutunun alt hissəsində veb kameranı düzəldin və tənzimləyin ki, hər poçt məsləhətləşməsində və təsdiqində I lövhənin necə olduğunu bir fotoşəkil göndərdi, bu yeməyin son turunu bitirmədikləri təqdirdə yemin bitməməsi üçün.

Dağıtıcının altından, boşqaba enən boru yerləşdirildi və PVC dirsəyi bazaya yerləşdirildi, yemək axınının sürətini minimuma endirmək üçün çıxışa bir az Sənaye Bant qoydum və yemək üçün bir paylama bazası hazırladım. qidanın hər yerə püskürməsinin qarşısını alın. Borunu divara yapışdırmaq üçün S8 saplama vintləri ilə divara bərkiddiyiniz metal mötərizələrdən istifadə edin.

Qutunun qapısında, LCD ekranın lövhəsini tutun və UTP kabelinin bükülmüş cütlərindən istifadə edərək onları birbaşa Moruqa aparın, kabellərin digər ucunda əlaqəni asanlaşdırmaq üçün atlayıcıların dişi uclarını birləşdirin. moruqun GPIO portları. Bu dövrə diaqramı olardı. Bunu Elektronikadan əldə edə biləcəyim az şeylə izah etməyə çalışacağam.

Mühərrik birbaşa 12 voltluq transformatorun müsbət qütbünə qoşulur, lakin cərəyanın axması üçün motorun neytral qütbündəki dövrə keçməlidir, bunun üçün N2222 tranzistoru istifadə olunur. Transistorların normal olaraq kollektora, bazaya və emitentə uyğun olan 3 ayağı var, tranzistorun modelindən asılı olaraq bu ayaqların yeri fərqli ola bilər; Bu tranzistor keçid funksiyasını yerinə yetirir. Motorun neytral dirəyini tranzistor kollektoruna bağladığımız yerdir, rapberry -nin 19 -cu pinini 270Ω müqavimətlə bazaya bağlayırıq və emitent tranzistorun neytral terminalına qoşulur. Moruq torpaq dirəklərindən biri ilə birlikdə 12V transformator; tranzistor, baza kifayət qədər gərginliklə stimullaşdırıldığı müddətcə kollektor və emitör arasında cərəyan axmasına icazə verəcək; Daha sonra rapberry -ni proqramlaşdıracağıq ki, müəyyən əmrlərə görə port 19, dövrənin davam etməsi və motoru işə salması üçün kifayət qədər 3,3 volt buraxacaq.

LCD ekran üçün, protobardın başqa bir hissəsi, LCD -də görünən mətnin kontrastını rədd edən 10KΩ potansiyometrini bağladığınız fərqli bir dövrədə istifadə olunur, buna görə də ekranda heç bir şey görünmürsə, ehtimal ki, potansiyometr tamamilə Bağlı; mənim vəziyyətimdə mətnin daha yaxşı görüntülənməsi üçün onu tamamilə açıq qoyuram. Sonda çörək taxtasındakı bağlantılar aşağıdakı kimi olacaq.

Addım 3: Raspberry Pi Konfiqurasiyası

Əvvəlcə sistemin idarə ediləcəyi Telegram Botu yaratmaq vacibdir, əlavə edilmiş python skriptini dəyişdirmək üçün bir açar lazımdır. Zəhmət olmasa teleqram Sənədlərindəki addımları oxuyun:

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

Rapberry-ni konfiqurasiya etmək üçün Rapbian-ın Lite versiyasını (qrafik interfeysə ehtiyacımız yoxdur) istifadə edin və raspbian-ı quraşdırdıqdan və ya raspi-config əmrindən istifadə edərək onu göstərən əsas konfiqurasiyanı tətbiq edin: məkanı 100% -ə qədər genişləndirin və aktivləşdirin SSH, lakin xüsusilə də ən başlıcası, parol və istifadəçi adını standart olaraq gələn istifadəçi pi olaraq dəyişdirməkdir (Əks təqdirdə, mənim başıma gəldiyi kimi, moruq ünvanına açıq bir IP varsa, 22 -ci portdan hücum edə bilərlər). Bundan əlavə, avtomatik olaraq WiFi şəbəkəmə qoşulmaq üçün konfiqurasiya (Şəbəkəmin "BlogSoriano" və parolumun "$ ecure123!" Olduğunu fərz etsək) açarı aşağıdakı əmrlə Simsiz bağlantılar faylında yaradırıq və saxlayırıq:

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

növbəti şey, "pip" python quraşdırma sistemini yeniləmək və qurmaqdır, buna görə kök olaraq daxil olacağıq, lazımi paketləri yeniləyəcəyik və quraşdıracağıq:

sudo -i apt-get yeniləmə apt-get install build-essential python-dev python-smbus python-pip

Bununla artıq python sinif kitabxanasına girişimiz var, istifadə edəcəyimiz skript üçün aşağıdakıları quraşdırmalıyıq:

pip quraşdırın RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces simsiz telepot cv2

Asılılıqların quraşdırılması başa çatdıqdan sonra bu addıma əlavə edilmiş skriptdən istifadə edəcəyik, onu /opt/petfeeder.py yolunda saxlayıram və fayl nano /opt/petfeeder.py əmrindən və bu faylın içərisində yaradıla bilər. kodu yapışdırırıq və ya daha çox Linux təcrübəniz varsa, birbaşa wget ilə yükləyə bilərsiniz. Skriptdə BOTKEY (36 -cı sətirdə) və SYSPASSWORD (23 -cü sətirdə) dəyişənlərinin dəyişdirilməsi vacibdir.

Python -da heç vaxt proqramlaşdırmadığım üçün bu kodun mənim tərəfimdən yazılmadığını aydınlaşdırıram, yalnız yeni kitabxanalarla və 20x4 LCD ekranla işləmək və telegram Botdan istifadə etmək üçün dəyişdirdim.

Skriptə sahib olduqdan sonra, botun açarı ilə dəyişənlərin dəyərlərini dəyişdirməliyik; Bunun üçün yeni bir Telegram Botu yaratmaq lazımdır, bununla yalnız faylı saxlamaq və çıxmaq olar (Ctrl + və ya saxla və ctrl + x nano redaktorunu tərk edir), sadəcə yenidən başlamağın sübutu olmalıyıq; skriptin özü, güc sisteminin son dəfə işə salınmasını saxlayır, buna görə də yalnız əməliyyat sistemi hər dəfə işə düşəndə skriptin işləməsini təmin etməliyik, bunun üçün Debian depolarından quraşdırılmış supervizor adlı bir proqramla çox xüsusi bir həll tapdım.:

apt-get quraşdırma nəzarətçisi

və quraşdırıldıqdan sonra, yalnız /etc/supervisor/conf.d/petfeeder.conf -də bir konfiqurasiya faylı yaratmalıyıq, əvvəlki vəziyyətdə olduğu kimi nano ilə yarada və saxlaya bilsək, bu faylda aşağıdakılar olacaq:

[proqram: petfeederd] kataloq =/opt command = python petfeeder.py autostart = true autorestart = true

Fayl saxlanıldıqdan sonra supervisorctl [start | əmrindən istifadə edə bilərik dayan | yenidən başladın] petfeederd, bu vəziyyətdə xidmət başlamadığı üçün bunu start ilə icra edirik:

supervisorctl start petfeederd

Addım 4: Testə Hazırıq

Image
Image
Testə Hazırdır
Testə Hazırdır
Testə Hazırdır
Testə Hazırdır
Testə Hazırdır
Testə Hazırdır

Və bununla sistem işləməlidir, LCD ekranda növbəti yemin nə vaxt olacağı və ya yeməyə hazır olub olmadığı barədə məlumat verilməlidir. Bağlandığınız simsiz şəbəkənin adını və SSH vasitəsilə əlaqə qurmağımız lazım olduğu halda istifadə olunan IP ünvanını da göstərməlisiniz, hazırladığım kiçik bir videonu paylaşıram, keyfiyyəti üçün üzr istəyirəm. vlogların bu mövzusu çox yaxşı deyil.

Telegramda botunuzu axtarmalı və söhbətə icazə verdikdən sonra növbəti əmrlərdən birini göndərə bilməlisiniz:

/feed: Parametrləşdirilmiş müddət keçdikcə qidalanma prosesinə başlayır.

/zaman: son yeməyin nə vaxt edildiyi və yemək boşqabının şəkli haqqında məlumatı qaytarır.

/şəkil: Yemək boşqabının şəklini qaytarın.

/yenidən başladın: Sistemi yenidən başladın, dərhal qidalana bilməsi üçün son yemin dəyişənini 0 olaraq təyin edin.

/status İnternet bağlantısı vəziyyəti haqqında məlumat verir: Bağlı Simsizin SSID və sistemin şəbəkədə olan IP ünvanı.

Tövsiyə: