Isi kandungan:

Mesin Pengumpan Haiwan Peliharaan Dengan RasPi dan Telegram Bot: 4 Langkah (dengan Gambar)
Mesin Pengumpan Haiwan Peliharaan Dengan RasPi dan Telegram Bot: 4 Langkah (dengan Gambar)

Video: Mesin Pengumpan Haiwan Peliharaan Dengan RasPi dan Telegram Bot: 4 Langkah (dengan Gambar)

Video: Mesin Pengumpan Haiwan Peliharaan Dengan RasPi dan Telegram Bot: 4 Langkah (dengan Gambar)
Video: FULL Step By Step | Alat Pemberi Pakan Otomatis dengan Penjadwalan Melalui Aplikasi Blynk 2.0 2024, Julai
Anonim
Mesin Pengumpan Haiwan Peliharaan Dengan RasPi dan Telegram Bot
Mesin Pengumpan Haiwan Peliharaan Dengan RasPi dan Telegram Bot
Mesin Pengumpan Haiwan Peliharaan Dengan RasPi dan Telegram Bot
Mesin Pengumpan Haiwan Peliharaan Dengan RasPi dan Telegram Bot

Pertama sekali saya perlu menjelaskan bahawa ini bukan Idea Mine yang asli, hanya mengemas kini dan menyesuaikan skrip pengaturcaraan untuk berfungsi dengan telegram, saya dapati dalam Instructable sebelumnya sehingga kredit benar-benar menjadi pengarangnya.

Anda dapat melihat versi bahasa Sepanyol ini di Blog peribadi saya:

Anda perlu membina litar kecil yang mengaktifkan motor tork tinggi, dan kerana pengetahuan elektronik saya sangat jarang, saya terpaksa menghabiskan beberapa hari untuk mempelajari asas-asasnya dengan menonton video di YouTube.

Skrip automasi asal ditulis dalam Python dan menggunakan sambungan GMail untuk menasihati perintah, saya tidak pernah menggunakan bahasa pengaturcaraan ini tetapi sebenarnya tidak begitu berbeza dengan yang lain, saya sedikit mengubahnya sehingga dapat menyesuaikan diri dengan lebih baik kepada yang baru Perpustakaan Python dan proses automasi bersama dengan konfigurasi sistem operasi membolehkan anda membuat parameter berikut:

  • Interaksi melalui arahan yang dihantar ke Chat yang dikendalikan melalui ChatBots.
  • Ia memungkinkan untuk mengesan status makanan yang dikeluarkan.
  • Mengawal berapa banyak makanan yang akan dikeluarkan.
  • Ia mempunyai butang yang membolehkan anda memberi makan secara manual.
  • Ia tidak membenarkan makan berlebihan dengan mematikan makanan pada selang 8 jam.
  • Ia memiliki LCD status yang menunjukkan data sebagai tarikh dan waktu waktu berikutnya untuk bekalan kuasa seterusnya, SSID yang disambungkan ke WiFi dan alamat IP peranti.
  • Pilihan: Menunjukkan beberapa Lelucon Rawak dan / atau Trivia Nombor Chuck Norris menggunakan sepasang APIS awam (Dikehendaki oleh pengarang asal).
  • Sistem kebal untuk dimulakan semula kerana pemadaman kuasa kerana menyimpan fail status.
  • Sistem Mengesan apabila terdapat gangguan sambungan dan cuba menyambung semula sehingga berjaya.

Langkah 1: Bahan Terpakai

  • 1 Raperry Pi, lebih baik versi 3 yang sudah disepadukan dengan kad Wayarles, anda juga boleh menggunakan versi Pi 3 Zero, ia memerlukan sedikit lebih banyak kerja kerana anda harus menyolder pin, tetapi saya mendapat tahu bahawa saya boleh terlambat gunakan salah satu yang lebih menjimatkan.
  • 1 motor elektrik tork tinggi, 37mm, 3.5rpm dan 12V.
  • 1 Braket untuk motor 37mm.
  • Skrin LCD 1 watak bersaiz 20x4 dengan kawalan HD44780.
  • 1 Cereal Dispenser Zevro Model WM1001 shaft-D dengan panjang 5 inci, diameter 0.63cm (Potongan D diperlukan untuk memasangkannya ke dispenser)
  • 1 Shaft coupler dari 1/4 "hingga 6mm untuk bergabung ke motor.

Semua bahan sebelumnya kecuali dua yang terakhir saya tidak dapat mendapatkannya di negara saya (atau sekurang-kurangnya saya tidak tahu di mana untuk mendapatkannya), namun rod dan pengganding mungkin berada di bengkel kimpalan tetapi menjadi kali pertama saya melakukan sesuatu seperti itu, saya tidak tahu bagaimana ia sesuai dengan mesin jadi saya bertanya halaman pautan yang dinyatakan di atas; Di bawah bahan yang boleh saya beli di kedai tempatan:

  • 1 kotak kayu, saya menggunakan lebar 20.3 cm × tinggi 26.7 cm x dalam 13 cm. kotak itu mempunyai pintu yang terbuka ke kanan dengan lubang 10cm x 4cm untuk meletakkan skrin LCD (tukang kayu tempatan)
  • 3 Tekan butang
  • 1 Protoboard Kecil
  • 1 LED 3.3 Volt (Tidak kira warnanya tetapi voltan biasanya Merah)
  • 1 transistor NPN PN2222
  • 1 Rintangan 270 Ω
  • 1 Rintangan 10 KΩ
  • 1 Potensiometer 10 KΩ
  • 1 diod IN4003 (IN4001 atau IN4004 boleh beroperasi)
  • 1 penyesuai 12V 3A
  • 1 penyesuai 5V 2A
  • 4 skru dengan mur sayap dari 1.5 inci hingga 2 inci (bergantung pada ketebalan kayu yang digunakan, mereka memasang pendakap motor ke kotak kayu)
  • Jalur kabel Jumper pelbagai warna
  • 1 tiub lipat atau satu set PVC berdiameter 4 inci, ini bergantung pada ketinggian di mana kotak kayu akan diletakkan.
  • 1 siku PVC yang melekat pada pelakon sebelumnya.
  • 3 pengapit untuk paip kereta (Dunia)
  • 4 Kaki UTP Cable (kita memerlukan pasangan berpintal untuk membuat sambungan)
  • 1 Webcam USB, tidak semestinya beresolusi tinggi.

Beberapa jenis bahan yang boleh diperoleh di kedai perkakasan atau mungkin sudah kita miliki: Pita Industri

  • Pengimpal timah
  • Timah
  • Gerudi
  • Latih tubi 5/16
  • Skru S8 dengan pengembang

Langkah 2: Meletakkan Struktur

Meletakkan Struktur
Meletakkan Struktur
Meletakkan Struktur
Meletakkan Struktur
Meletakkan Struktur
Meletakkan Struktur

Idea utama adalah untuk mengganti pemegang dispensing yang terdapat di ZEVRO oleh rod D yang kemudian akan disambungkan ke Motor dengan menggunakan Coupler. Dispenser akan dilekatkan pada kotak kayu dan kotak kayu ke dinding. Oleh kerana saya tidak tahu banyak elektronik, saya tidak menggunakan plat Bakelite untuk memasang litar, jadi saya menggunakan papan roti untuk meletakkan semua komponen sehingga di bahagian bawah kotak diikat dengan skru Rapberry Pi dan papan roti yang sudah mempunyai pelekat di bahagian belakang jadi saya hanya pergi untuk menampalnya. Kotak mesti mempunyai tiga butang yang akan mempunyai fungsi Memulakan semula pemasa, mengaktifkan pengumpan dan yang terakhir akan menjadi langkah langsung untuk mengaktifkan motor tanpa melalui litar. Motor akan dipegang di dalam kotak dengan menggunakan braket, jadi hanya batang D yang menghubungkan ke dispenser yang akan menonjol dari kotak, di bahagian bawah kotak memperbaiki dan menyesuaikan kamera web sehingga dalam setiap perundingan dan pengesahan surat I menghantar foto bagaimana pinggan, makanan ini tidak terlalu banyak sekiranya mereka tidak menyelesaikan makanan terakhir.

Dari bahagian bawah dispenser, tiub yang turun ke piring diletakkan dan siku PVC diletakkan di pangkalan, saya meletakkan sedikit Pita Industri di outlet untuk meminimumkan kelajuan aliran makanan dan membuat pangkalan pengeluaran untuk mengelakkan makanan menyembur ke mana-mana. Untuk memasang paip ke dinding, gunakan pendakap logam yang anda pasangkan ke dinding dengan skru pejantan S8.

Di pintu kotak pegang piring layar LCD dan gunakan pasangan kabel UTP yang dipintal untuk membawanya terus ke Raspberry, di hujung kabel yang lain, sambungkan hujung wanita jumper untuk memudahkan hubungan di port GPIO Raspberry. Ini akan menjadi gambarajah litar. Saya akan cuba menerangkannya dengan sedikit yang saya dapat dari Electronics.

Motor disambungkan terus ke kutub positif transformer 12 volt tetapi untuk arus yang mengalir mesti melalui litar di kutub neutral motor, kerana transistor N2222 ini digunakan. Transistor biasanya mempunyai 3 kaki yang sesuai dengan pengumpul, alas dan pemancar, bergantung pada model transistor lokasi kaki ini mungkin berbeza; Transistor ini menjadikan suis berfungsi. Di sinilah kita menyambungkan tiang neutral motor ke pemungut transistor, pin # 19 rapberry disambungkan ke dasar dengan rintangan 270Ω dan pemancar disambungkan ke terminal neutral transistor. Transformer 12V bersama dengan salah satu tiang bumi raspberry; transistor akan membiarkan arus mengalir antara pemungut dan pemancar selagi asasnya dirangsang dengan voltan yang mencukupi; kemudian kami akan memprogramkan rapberry sehingga mengikut pesanan tertentu port 19 akan mengeluarkan 3.3 volt, cukup untuk litar untuk meneruskan dan mengaktifkan motor.

Untuk skrin LCD, bahagian lain dari protobard digunakan dalam litar yang berbeza di mana anda menyambungkan potensiometer 10KΩ yang menolak kontras teks yang muncul di LCD, jadi jika tidak ada yang muncul di layar itu mungkin kerana potensiometer benar-benar ditutup; dalam kes saya, saya membiarkannya terbuka sepenuhnya sehingga teksnya dapat dilihat dengan lebih baik. Pada akhirnya sambungan di papan roti adalah seperti berikut.

Langkah 3: Konfigurasi Pi Raspberry

Pertama sekali adalah penting untuk membuat Telegram Bot bahawa sistem akan diuruskan, Anda memerlukan kunci untuk mengubah skrip python yang dilampirkan. Sila baca langkah-langkah pada Dokumentasi telegram:

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

Untuk mengkonfigurasi rapberry, gunakan versi Lite dari Rapbian (kami tidak memerlukan antara muka grafik) dan gunakan konfigurasi asas yang menunjukkan raspbian setelah dipasang atau menggunakan perintah raspi-config: luaskan ruang hingga 100% dan aktifkan SSH tetapi yang paling penting adalah menukar kata laluan dan nama pengguna kepada pengguna yang datang secara lalai (Jika tidak, seperti yang berlaku pada saya, mereka boleh mengalami serangan oleh port 22 jika mereka mempunyai IP awam yang ditujukan kepada raspberry). Selain itu, konfigurasi untuk menyambung secara automatik ke rangkaian WiFi saya (Dengan andaian rangkaian saya disebut "BlogSoriano" dan kata laluan saya adalah "$ ecure123!") Kami menjana dan menyimpan kunci dalam fail sambungan Tanpa Wayar dengan arahan berikut:

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

perkara seterusnya adalah mengemas kini dan memasang sistem pemasangan python "pip" jadi kami akan log masuk sebagai root, mengemas kini dan memasang pakej yang diperlukan:

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

Dengan ini kita sudah mempunyai akses ke pustaka kelas python, untuk skrip yang akan kita gunakan, kita perlu memasang yang berikut:

memasang pip RPi. GPIO Adafruit-CharLCD httplib2 html2teks netifaces telepot tanpa wayar cv2

Setelah pemasangan pergantungan selesai, kami akan menggunakan skrip yang dilampirkan pada langkah ini, saya menyimpannya di jalan /opt/petfeeder.py dan fail dapat dibuat menggunakan perintah nano /opt/petfeeder.py dan di dalam fail ini kami tampalkan kod atau, jika anda mempunyai lebih banyak pengalaman Linux, anda boleh memuat turun secara langsung dengan wget. Dalam skrip adalah penting untuk mengubah pemboleh ubah BOTKEY (dalam baris 36) dan SYSPASSWORD (dalam baris 23).

Saya menjelaskan bahawa kod ini tidak ditulis oleh saya kerana saya tidak pernah memprogram di Python, saya hanya mengubahnya untuk berfungsi dengan perpustakaan baru dan dengan skrin LCD 20x4 dan menggunakan telegram Bot.

Sebaik sahaja kita mempunyai Skrip, kita mesti mengubah nilai pemboleh ubah dengan kunci bot; untuk ini adalah perlu untuk membuat Telegram Bot baru, dengan itu hanya akan menyimpan fail dan keluar (dengan Ctrl + atau simpan dan ctrl + x meninggalkan editor nano), kita hanya perlu menjadi bukti restart; skrip itu sendiri menjimatkan kali terakhir sistem kuasa diaktifkan, jadi kita hanya perlu membuat skrip berjalan setiap kali sistem operasi dimulakan, untuk ini saya dapati penyelesaian yang sangat khusus dengan program yang disebut penyelia, yang dipasang dari repositori Debian:

apt-get pemasangan penyelia

dan setelah dipasang, kita hanya perlu membuat fail konfigurasi di /etc/supervisor/conf.d/petfeeder.conf, seperti dalam kes sebelumnya kita dapat membuat dan menyimpannya dengan nano, fail ini akan mempunyai yang berikut:

[program: petfeederd] direktori = / opt perintah = python petfeeder.py autostart = true autorestart = true

Setelah fail disimpan kita boleh menggunakan perintah supervisorctl [start | berhenti | restart] petfeederd, kerana dalam hal ini perkhidmatan belum dimulakan, kami melaksanakannya dengan permulaan:

supervisorctl memulakan petfeederd

Langkah 4: Sedia Diuji

Image
Image
Sedia Diuji
Sedia Diuji
Sedia Diuji
Sedia Diuji
Sedia Diuji
Sedia Diuji

Dan dengan ini sistem akan berfungsi, skrin LCD harus menunjukkan maklumat tentang kapan suapan berikutnya atau jika ia siap untuk diberi makan sekiranya saya mengatakan demikian. Anda juga mesti menunjukkan nama rangkaian wayarles yang anda sambungkan dan alamat IP yang sedang digunakan sekiranya kami perlu menyambung melalui SSH, saya berkongsi video kecil yang saya buat, saya minta maaf atas mutu itu, saya Saya tidak begitu baik adalah subjek vlog ini.

Anda seharusnya dapat mencari bot anda di Telegram dan Menghantar salah satu arahan seterusnya setelah anda / membenarkan sembang anda:

/ feed: Memulakan proses penyusuan asalkan jangka masa berlarutan telah berlalu.

/ when: ia mengembalikan maklumat mengenai kapan makan terakhir dan gambar pinggan makanan.

/ foto: Kembalikan gambar pinggan makanan.

/ mulakan semula: Mulakan semula sistem, tetapkan pemboleh ubah suapan terakhir ke 0 agar dapat memberi makan dengan segera.

/ status Ia memberitahu mengenai status sambungan Internet: SSID Wireless yang disambungkan dan alamat IP yang dimiliki sistem dalam rangkaian.

Disyorkan: