Daftar Isi:

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

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

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

Pertama-tama saya perlu mengklarifikasi bahwa ini bukan Tambang Ide asli, cukup perbarui dan sesuaikan skrip pemrograman untuk bekerja dengan telegram, saya menemukannya di Instructable sebelumnya sehingga kredit benar-benar penulisnya.

Anda bisa melihat versi Spanyol ini di Blog pribadi saya:

Anda perlu membangun sirkuit kecil yang mengaktifkan motor torsi tinggi, dan karena pengetahuan saya tentang elektronik sangat, sangat langka, saya harus menghabiskan beberapa hari mempelajari dasar-dasarnya dengan menonton video di YouTube.

Skrip otomatisasi asli ditulis dengan Python dan menggunakan koneksi GMail untuk berkonsultasi dengan perintah, saya belum pernah menggunakan bahasa pemrograman ini tetapi sebenarnya tidak jauh berbeda dari yang lain, saya telah memodifikasinya sedikit agar lebih beradaptasi dengan yang baru Pustaka Python dan proses otomatisasi bersama dengan konfigurasi sistem operasi memungkinkan Anda untuk membuat parameter berikut:

  • Interaksi melalui perintah yang dikirim ke Obrolan dikontrol melalui ChatBots.
  • Hal ini memungkinkan untuk melacak status makanan yang dibagikan.
  • Mengontrol berapa banyak makanan yang akan dibagikan.
  • Ini memiliki tombol yang memungkinkan Anda untuk memberi makan secara manual.
  • Itu tidak memungkinkan pemberian makan berlebih dengan menonaktifkan pemberian makan pada interval 8 jam.
  • Ini memiliki LCD status yang menunjukkan data sebagai tanggal dan waktu waktu berikutnya untuk catu daya berikutnya, SSID yang terhubung ke WiFi dan alamat IP perangkat.
  • Opsional: Menampilkan beberapa Lelucon Acak Chuck Norris dan / atau Trivia of Numbers menggunakan sepasang APIS publik (Cerdas oleh penulis asli).
  • Sistem kebal terhadap restart karena pemadaman listrik karena menyimpan file status.
  • Sistem Mendeteksi bila ada sambungan terputus dan mencoba menyambung kembali hingga berhasil.

Langkah 1: Bahan Bekas

  • 1 Raperry Pi, sebaiknya versi 3 yang sudah terintegrasi dengan kartu Wireless, Anda juga dapat menggunakan versi Pi 3 Zero, itu membutuhkan sedikit lebih banyak pekerjaan karena Anda harus menyolder pin, tetapi saya terlambat mengetahui bahwa itu bisa gunakan salah satunya yang lebih ekonomis.
  • 1 motor listrik torsi tinggi, 37mm, 3.5rpm dan 12V.
  • 1 Rem untuk motor 37mm.
  • Layar LCD 1 karakter 20x4 baris dengan kontrol HD44780.
  • 1 Dispenser Sereal Zevro Model WM1001 poros-D dengan panjang 5 inci, diameter 0,63cm (potongan D diperlukan untuk memasangnya ke dispenser)
  • 1 Shaft coupler dari 1/4" hingga 6mm untuk menyambung ke motor.

Semua bahan sebelumnya kecuali dua yang terakhir saya tidak bisa mendapatkannya di negara saya (atau setidaknya saya tidak tahu di mana mendapatkannya), namun batang dan couplernya mungkin ada di bengkel las tetapi baru pertama kali saya melakukan sesuatu seperti itu, saya tidak tahu bagaimana seharusnya agar sesuai dengan mesin jadi saya bertanya pada halaman tautan yang dijelaskan di atas; Di bawah bahan yang bisa saya beli di toko lokal:

  • 1 kotak kayu, saya menggunakan lebar 20,3 cm × tinggi 26,7 cm x dalam 13 cm. kotak memiliki pintu yang terbuka ke kanan dengan lubang 10cm x 4cm untuk menempatkan layar LCD (bengkel tukang kayu lokal)
  • 3 Tombol tekan
  • 1 Protoboard Kecil
  • 1 LED 3,3 Volt (Tidak masalah warna tetapi untuk voltase biasanya Merah)
  • 1 transistor NPN PN2222
  • 1 Resistansi 270
  • 1 Resistansi 10 KΩ
  • 1 Potensiometer 10 KΩ
  • 1 dioda IN4003 (IN4001 atau IN4004 dapat beroperasi)
  • 1 adaptor 12V 3A
  • 1 5V 2A adaptor
  • 4 sekrup dengan mur sayap dari 1,5 inci hingga 2 inci (tergantung pada ketebalan kayu yang digunakan, mereka untuk memasang braket motor ke kotak kayu)
  • Untaian kabel Jumper berbagai warna
  • 1 tabung lipat atau satu set PVC Diameter 4 Inci, ini tergantung pada ketinggian di mana kotak kayu akan ditempatkan.
  • 1 siku PVC yang menempel pada gips sebelumnya.
  • 3 klem untuk pipa mobil (Dunia)
  • 4 Kaki Kabel UTP (kita membutuhkan twisted pair untuk membuat koneksi)
  • 1 USB WebCam, tidak perlu resolusi tinggi.

Beberapa bahan lain-lain yang bisa didapatkan di toko-toko hardware atau mungkin sudah kita miliki: Pita Industri

  • Tukang las timah
  • Timah
  • Mengebor
  • Bor 5/16
  • Sekrup S8 dengan ekspander

Langkah 2: Menempatkan Struktur

Menempatkan Struktur
Menempatkan Struktur
Menempatkan Struktur
Menempatkan Struktur
Menempatkan Struktur
Menempatkan Struktur

Ide utamanya adalah mengganti dispensing handle yang ada di ZEVRO dengan rod D yang kemudian akan dihubungkan ke Motor melalui Coupler. Dispenser akan menempel pada kotak kayu dan kotak kayu ke dinding. Karena saya tidak tahu banyak elektronik, saya tidak menggunakan pelat Bakelite untuk memasang sirkuit jadi saya menggunakan papan tempat memotong roti untuk meletakkan semua komponen sehingga di bagian bawah kotak diikat dengan sekrup Rapberry Pi dan papan tempat memotong roti yang sudah memiliki perekat di bagian belakang jadi saya hanya pergi untuk menempelkannya. Kotak tersebut harus memiliki tiga tombol yang akan memiliki fungsi Restart timer, mengaktifkan feeder dan yang terakhir akan menjadi langkah langsung untuk mengaktifkan motor tanpa melalui rangkaian. Motor akan ditahan di dalam kotak dengan menggunakan braket, jadi hanya batang D yang terhubung ke dispenser yang akan menonjol dari kotak, di bagian bawah kotak perbaiki dan sesuaikan webcam sehingga di setiap surat konsultasi dan konfirmasi saya mengirim foto bagaimana piringnya, ini untuk tidak memberi makan jika mereka belum menghabiskan putaran makanan terakhir.

Dari bagian bawah dispenser, tabung yang turun ke piring ditempatkan dan siku PVC ditempatkan di alasnya, saya menempatkan sedikit Pita Industri di outlet untuk meminimalkan kecepatan aliran makanan dan membuat dasar pengeluaran untuk mencegah makanan dari penyemprotan di mana-mana. Untuk memasang pipa ke dinding, gunakan braket logam yang Anda pasang ke dinding dengan sekrup stud S8.

Di pintu kotak pegang pelat layar LCD dan gunakan pasangan kabel UTP yang dipilin untuk membawanya langsung ke Raspberry, di ujung kabel yang lain sambungkan ujung jumper perempuan untuk memudahkan koneksi di port GPIO dari Raspberry. Ini akan menjadi diagram sirkuit. Saya akan mencoba menjelaskannya dengan sedikit yang bisa saya dapatkan dari Elektronika.

Motor dihubungkan langsung ke kutub positif trafo 12 volt tetapi untuk arus yang mengalir harus melewati rangkaian di kutub netral motor, untuk ini digunakan transistor N2222. Transistor biasanya memiliki 3 kaki yang sesuai dengan kolektor, basis dan emitor, tergantung pada model transistor lokasi kaki ini dapat bervariasi; Transistor ini membuat saklar berfungsi. Di sinilah kita menghubungkan kutub netral motor ke kolektor transistor, pin # 19 rapberry terhubung ke basis melalui resistansi 270Ω dan emitor terhubung ke terminal netral transistor. Trafo 12V bersama dengan salah satu kutub bumi raspberry; transistor akan membiarkan arus mengalir antara kolektor dan emitor selama basis dirangsang dengan tegangan yang cukup; nanti kita akan memprogram rapberry agar sesuai perintah tertentu port 19 akan mengeluarkan 3,3 volt, cukup untuk rangkaian untuk melanjutkan dan mengaktifkan motor.

Untuk layar LCD, bagian lain dari protobard digunakan di sirkuit yang berbeda di mana Anda menghubungkan potensiometer 10KΩ yang menolak kontras teks yang muncul di LCD, jadi jika tidak ada yang muncul di layar mungkin karena potensiometer benar-benar mati. tertutup; dalam kasus saya, saya membiarkannya terbuka sepenuhnya sehingga teks divisualisasikan dengan lebih baik. Pada akhirnya koneksi di papan tempat memotong roti akan menjadi sebagai berikut.

Langkah 3: Konfigurasi Raspberry Pi

Pertama-tama penting untuk membuat Bot Telegram yang akan dikelola sistem, Anda memerlukan kunci untuk memodifikasi skrip python terlampir. Silakan baca langkah-langkah pada Dokumentasi telegram:

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

Untuk mengonfigurasi rapberry, gunakan Rapbian versi Lite (kami tidak memerlukan antarmuka grafis) dan terapkan konfigurasi dasar yang menampilkan raspbian setelah diinstal atau gunakan perintah raspi-config: perluas ruang hingga 100% dan aktifkan SSH tetapi terutama yang paling penting adalah mengubah kata sandi dan nama pengguna menjadi pengguna pi yang datang secara default (Jika tidak, seperti yang terjadi pada saya, mereka dapat mengalami serangan oleh port 22 jika mereka memiliki IP publik yang ditujukan ke raspberry). Selain itu konfigurasi untuk terhubung secara otomatis ke jaringan WiFi saya (Dengan asumsi jaringan saya disebut "BlogSoriano" dan kata sandi saya adalah "$ecure123!") Kami membuat dan menyimpan kunci dalam file koneksi Nirkabel dengan perintah berikut:

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

hal selanjutnya adalah memperbarui dan menginstal sistem instalasi python "pip" sehingga kita akan masuk sebagai root, memperbarui dan menginstal paket-paket yang diperlukan:

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

Dengan ini kita sudah memiliki akses ke perpustakaan kelas python, untuk skrip yang akan kita gunakan, kita perlu menginstal yang berikut ini:

pip install RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces telepot nirkabel cv2

Setelah instalasi dependensi selesai, kita akan menggunakan skrip yang dilampirkan pada langkah ini, saya menyimpannya di path /opt/petfeeder.py dan file dapat dibuat menggunakan perintah nano /opt/petfeeder.py dan di dalam file ini kami menempelkan kode atau, jika Anda memiliki lebih banyak pengalaman Linux, Anda dapat mengunduh langsung dengan wget. Dalam skrip, penting untuk memodifikasi variabel BOTKEY (pada baris 36) dan SYSPASSWORD (pada baris 23).

Saya mengklarifikasi bahwa kode ini tidak ditulis oleh saya karena saya tidak pernah memprogram dengan Python, saya hanya memodifikasinya untuk bekerja dengan perpustakaan baru dan dengan layar LCD 20x4 dan menggunakan Bot telegram.

Setelah kita memiliki Script, kita harus mengubah nilai variabel dengan kunci untuk bot; untuk ini perlu membuat Bot Telegram baru, dengan itu hanya akan menyimpan file dan keluar (dengan Ctrl + atau simpan dan ctrl + x meninggalkan editor nano), kita hanya perlu bukti restart; skrip itu sendiri menyimpan terakhir kali sistem daya diaktifkan, jadi kita hanya perlu menjalankan skrip setiap kali sistem operasi dimulai, untuk ini saya menemukan solusi yang sangat khusus dengan program bernama supervisor, yang diinstal dari repositori Debian:

apt-get install supervisor

dan setelah terinstal, kita hanya perlu membuat file konfigurasi di /etc/supervisor/conf.d/petfeeder.conf, seperti pada kasus sebelumnya kita dapat membuat dan menyimpannya dengan nano, file ini akan memiliki yang berikut:

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

Setelah file disimpan, kita dapat menggunakan perintah supervisorctl [start | berhenti | restart] petfeederd, karena dalam hal ini layanan belum dimulai, kami menjalankannya dengan start:

supervisorctl start petfeederd

Langkah 4: Siap untuk Menguji

Image
Image
Siap untuk Menguji
Siap untuk Menguji
Siap untuk Menguji
Siap untuk Menguji
Siap untuk Menguji
Siap untuk Menguji

Dan dengan ini sistem harus bekerja, layar LCD akan menampilkan informasi tentang kapan harus feed berikutnya atau jika sudah siap untuk feed harus saya katakan. Anda juga harus menunjukkan nama jaringan nirkabel tempat Anda terhubung dan alamat IP yang digunakan jika kita perlu terhubung melalui SSH, saya membagikan video kecil yang saya buat, saya minta maaf atas kualitasnya, saya saya tidak terlalu baik adalah subjek dari vlog ini.

Anda seharusnya dapat mencari bot Anda di Telegram dan Mengirim salah satu perintah berikutnya setelah Anda /mengotorisasi obrolan Anda:

/feed: Memulai proses pemberian makan selama periode waktu yang diparameterisasi telah berlalu.

/when: mengembalikan informasi tentang kapan terakhir kali makan dan gambar piring makanan.

/foto: Kembalikan gambar piring makanan.

/restart: Restart sistem, atur variabel umpan terakhir ke 0 untuk dapat memberi makan segera.

/status Ini menginformasikan tentang status koneksi Internet: SSID Nirkabel yang terhubung dan alamat IP yang dimiliki sistem dalam jaringan.

Direkomendasikan: