Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-23 14:49
Halo teman teman
Instruksi ini adalah tentang cara memantau dan mengontrol set pompa irigasi dari jarak jauh melalui internet.
Cerita: Di peternakan saya, saya mendapatkan pasokan listrik dari jaringan lokal hanya sekitar 6 jam sehari. Pengaturan waktu tidak teratur, ketersediaan listrik bisa pagi atau sore hari atau bahkan tengah malam. Setiap kali pergi ke lokasi sumur bor untuk memeriksa ketersediaan daya, memulai atau menghentikan motor adalah proses yang sangat menyakitkan. Saya juga harus memastikan motor berjalan setidaknya 2-3 jam setiap hari untuk memasok air yang cukup untuk sistem infus. Cukup lama saya menjelajahi opsi untuk memecahkan masalah ini dengan mengoperasikan motor dari jarak jauh dan juga mengetahui statusnya. Ada perangkat yang tersedia di pasar yang akan menghidupkan motor segera setelah ada catu daya, tetapi mereka tidak memiliki fitur untuk menghentikan motor kapan pun kita mau. Dan juga tidak ada cara untuk mengetahui status motor ON/OFF kapan saja. Hal ini biasanya menyebabkan irigasi yang berlebihan, yang menyebabkan hilangnya kesuburan tanah dan juga pemborosan listrik. Akhirnya saya membuat solusi sendiri di mana saya dapat memulai dan menghentikan motor dari jarak jauh dari ponsel/tablet/PC KAPAN SAJA DI MANA SAJA…!!. Saya juga dapat memantau ketersediaan catu daya dari gird serta status motor (ON/OFF) setiap saat. Semoga ini akan membantu pemilik pertanian di pedesaan untuk mengelola sistem irigasi mereka tanpa perlu pergi ke lokasi awal setiap saat.
Perlengkapan
Prasyarat:
Lokasi di mana Anda ingin menginstal perangkat ini harus memiliki ketersediaan internet (broadband dengan wifi / internet seluler)
Hal-hal yang Anda butuhkan:
- NodeMCU /ESP12
- Relay dua saluran
- WCS1700 – Sensor arus
- Modul pengisian baterai TP4056
- LD313, Kapasitor – Register 1000uF – Dua register 5k ohm
- Semua Smartphone (Lama) dengan hotspot/internet.
Bagaimana itu bekerja:
Ini adalah solusi IOT berbasis cloud sederhana menggunakan NodeMCU/ESP12 dan broker MQTT jarak jauh. NodeMCU berfungsi sebagai gateway IOT, juga mengontrol starter DOL. Terhubung ke broker MQTT jarak jauh melalui internet. Aplikasi yang berjalan di ponsel Android terhubung ke broker tempat kami dapat memantau dan mengontrol set pompa irigasi kami setiap saat. Saya menggunakan broker MQTT yang tersedia gratis dari Adafruit IO. Ada banyak broker gratis yang tersedia seperti mosquitto, cloudmqtt dll. Anda dapat memilih broker mana saja asalkan Anda mengubah server dan nomor port dalam kode. NodeMCU terhubung ke internet menggunakan WiFi dari hotspot seluler. Yon dapat menggunakan ponsel lama atau murah untuk menyediakan akses wifi melalui hotspot atau cara lain untuk menyediakan internet melalui wifi. Ponsel harus terhubung ke pengisi daya sebagaimana mestinya pada 24X7.
NodeMCU dihubungkan dengan dua relay untuk mengontrol operasi start dan stop motor. Untuk mendeteksi arus pada motor saya menggunakan sensor arus WCS1700. Keluaran analog dari sensor digunakan untuk mengetahui motor dalam keadaan ON atau OFF. Itu juga merasakan ketersediaan daya dari jaringan dan mempublikasikannya ke broker sehingga kami dapat mengetahui status jaringan kapan saja. Perangkat berlangganan dua umpan untuk menerima permintaan motor ON dan motor OFF. Dengan mengirimkan nilai tertentu ke feed ini kita dapat mengontrol motor ke START atau STOP.
Terakhir saya menginstal aplikasi Dash MQTT di ponsel Android saya dan mengonfigurasinya untuk terhubung ke broker MQTT dan menggunakan feed di dasbor/gui-nya. Aplikasi ini memiliki ikon yang sangat bagus dengan tombol, pengukur, sakelar dll untuk membuat dasbor yang menarik. Namun Anda dapat menggunakan aplikasi seluler otomatisasi rumah IOT apa pun yang mendukung protokol mqtt.
Cara kerja WCS1700:
WCS1700 pada dasarnya adalah sensor efek Hall yang akan menghasilkan tegangan output sebanding dengan medan magnet yang dibuat saat arus mengalir melalui kumparan. Kumparan di sini adalah saluran catu daya yang akan dihubungkan ke motor. Dapat mengukur arus AC hingga 70 Amps. Tegangan operasi antara 3,3 hingga 12 V. Lihat lembar datanya untuk lebih jelasnya. Karena saya menggunakan ESP12, saya menggunakan catu daya 3.3V yang sama dengan tegangan operasi untuk WCS1700. Seperti yang ditentukan dalam lembar data pada 3,3 V, perangkat harus menghasilkan tegangan diferensial sekitar 32 hingga 38 mV per amp arus yang melalui koil. Tetapi mungkin berbeda berdasarkan ukuran koil / celah udara dan variasi perangkat. Oleh karena itu saya harus mengkalibrasinya dengan mengujinya dengan Ampere Meter. Saya tidak senang dengan keakuratan perangkat tetapi cukup baik untuk memutuskan status Motor sebagai ON/OFF. Pin keluaran WCS1700 terhubung ke A0 dari ESP12. Ketika tidak ada arus, ESP12 harus membaca nilai sekitar 556. Seiring kenaikan arus pada koil, tegangan dapat sangat berbeda berdasarkan cara kabel melewati sensor. Dalam kode saya mengambil perbedaan nilai sebagai nilai absolut (x - 556). Dengan membagi hasil dengan 15 saya mendapat perkiraan arus yang mengalir melalui sensor. Anda harus bereksperimen ini untuk mendapatkan nomor yang tepat untuk Anda. Setiap pengukuran arus oleh perangkat di atas 5 Amps saya anggap sebagai motor ON dan di bawah 5 Amp sebagai motor dalam keadaan OFF. Anda dapat menggunakan nomor yang tepat untuk perangkat Anda dengan bereksperimen. Anda perlu mengubah WCS1700_CONST dan MIN_CURRENT dalam kode yang sesuai.
Langkah 1: Konstruksi Perangkat
Diagram di atas memberikan rincian lengkap tentang cara menyambungkan semua komponen.
Catu daya: Saya menggunakan TP4056 untuk mengisi baterai dan LM313 untuk mengatur output baterai 3.7V - 4.2V menjadi 3,3 V untuk memberi daya pada NodeMCU. Digunakan kapasitor 1000mF antara Vin dan ground LM313 untuk mendapatkan suplai 3.3V yang stabil. Anda dapat menggunakan pengisi daya seluler USB biasa untuk memberi daya pada TP4056. Ini memiliki sirkuit perlindungan baterai untuk melindungi baterai dari pengisian berlebih.
Penginderaan catu daya Grid: Pembagi tegangan 5k ohm akan mengurangi 5 V menjadi 2,5 V. Pin D5 dari NodeMCU akan merasakan tegangan.
Pin keluaran WCS1700 dihubungkan ke A0 untuk membaca tegangan analog dari sensor. Garis Grid Power harus melewati lubang untuk mengukur arus. Saya menggunakan kapasitor 0,01 uF mendapatkan bentuk pembacaan stabil WCS1700.
D1 dan D2 dari NodeMCU untuk dihubungkan ke IN0 dan IN1 dari pin input relay.
Langkah 2: Koneksi Pemula DOL
Saya mengubah rangkaian kontrol starter DOL untuk memperkenalkan set sakelar START dan STOP lainnya. Perubahan ini tidak akan memengaruhi operasi mulai/berhenti manual dan tetap berfungsi apa adanya.
Peringatan !!!! Karena starter DOL adalah perangkat Tegangan Tinggi, pastikan sakelar utama dimatikan sebelum membuka kotak. Kontak langsung dengan kabel hidup bisa berbahaya. Jika Anda tidak yakin, mintalah bantuan tukang listrik untuk membuat sambungan
Saya menggunakan modul relai 2 saluran 5 V sebagai sakelar START dan STOP. Relay ini akan dikendalikan oleh ESP12.
Relay – 0 akan berfungsi sebagai sakelar START - disambungkan sebagai NO (Biasanya Terbuka).
Relay-1 akan bekerja sebagai saklar STOP - kabel sebagai NC (Biasanya Tertutup). Starter sudah memiliki kabel yang menghubungkan dari kontaktor atas ke NVC. Anda harus melepasnya dan menggantinya dengan kabel relay -1 seperti yang ditunjukkan.
Pastikan koneksi antara starter dan modul Relay benar-benar terisolasi untuk keselamatan. Saya memprogram ESP untuk menahan kedua relai selama 2 detik untuk meniru penekanan tombol START/STOP.
Langkah 3: Buat Akun Dengan Adafruit IO (io.adafruit.com)
Saya menggunakan broker Adafruit io mqtt yang gratis untuk digunakan dengan sedikit batasan tetapi tidak apa-apa untuk penggunaan kami. Saya lebih suka ini karena saya menggunakannya di proyek lain juga dan ternyata cukup andal dan juga memiliki banyak fitur lain seperti Dashboard dengan GUI yang bagus dan bahkan kita dapat menggunakan pemicu. Untuk menggunakan Adafruit io Anda perlu membuat akun dan mencatat Nama Pengguna dan Kunci Aktif.
Langkah 4: Bangun dan Instal Perangkat Lunak
Kode lengkap tersedia di sketsa. Anda perlu membuka ini di Arduino IDE dan membuat beberapa perubahan sebelum mengkompilasi dan mengunggah firmware. Pilih jenis papan sebagai NodeMCU 1.0. Pemasangan IDE dan pustaka terkait tidak termasuk dalam cakupan dokumentasi ini.
Ubah baris berikut dalam kode sebagai bera.
#define WLAN_SSID "xxx" // SSID WiFi Hotspot seluler Anda
#define WLAN_PASS "……" //
/************************* Pengaturan Adafruit.io ******************** *************/
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883 // gunakan 8883 untuk SSL
#define AIO_USERNAME "xyz" // Nama pengguna akun adafruit Anda
#define AIO_KEY "abcd……" // Kunci aktif Anda…
Tentang Umpan MQTT: Perangkat dan klien (aplikasi seluler) bertukar informasi melalui umpan pesan menggunakan sub model pub melalui broker MQTT. Setiap klien atau perangkat untuk menerima pesan, ia harus berlangganan feed yang telah ditentukan sebelumnya dan harus menggunakan metode publikasikan untuk mengirim pesan ke feed. Untuk proyek kami, kami membutuhkan sekitar 5 umpan. Di bawah ini adalah penjelasan dari masing-masing feed seperti yang Anda lihat dalam kode dan cara kerjanya.
Status Grid: Ketersediaan catu daya dari grid dipublikasikan pada feed /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/grid");
0 menunjukkan catu daya tidak tersedia dan 1 untuk catu daya tersedia.
Status Motor: Perangkat akan mempublikasikan status motor pada feed …/feeds/grid.
Adafruit_MQTT_Publish motor_status = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/motor")
Nilai 0 untuk OFF dan 1 untuk ON
Tombol Motor ON: Umpan ini digunakan untuk menerima permintaan start motor. Perangkat akan berlangganan feed untuk menerima permintaan start motor dengan nilai = 1 dan menggunakan feed yang sama untuk mempublikasikan pesan pengakuan sebagai 0. Dengan begitu kita dapat mengkonfirmasi pesan permintaan start benar-benar diterima oleh perangkat.
Adafruit_MQTT_Subscribe motoronbutton = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/motor_on");
Tombol MATI Motor:
Mirip dengan permintaan Mulai, umpan ini digunakan untuk menerima permintaan berhenti motor. Perangkat akan berlangganan umpan untuk menerima permintaan berhenti dengan nilai = 1 dan menggunakan umpan yang sama untuk menerbitkan pesan konfirmasi sebagai 0.
Adafruit_MQTT_Subscribe motoroffbutton = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/motor_off");
Koneksi:
Ini adalah umpan khusus dengan opsi "kehendak terakhir" diaktifkan. Ketika perangkat berfungsi dengan baik pada setiap interval tetap, ia akan menerbitkan connection=1 untuk memberi tahu pengguna bahwa semuanya baik-baik saja. Jika sistem mati atau koneksi terputus maka perangkat tidak akan dapat berkomunikasi dengan broker. Dalam kasus seperti itu, broker MQTT sendiri akan memublikasikan ke feed sebagai connection=0 untuk memberi tahu pengguna bahwa ada yang tidak beres dan perangkat tidak dapat dijangkau melalui internet. Kita harus pergi secara fisik dan memeriksa perangkat. Kodenya sangat sederhana. Lihat dokumentasi MQTT untuk detail selengkapnya tentang cara kerja "Kehendak Terakhir".
jika (itr <= 0)
{
mqtt.publish(AIO_USERNAME "/feeds/connection", "1", 1);
itr = CON_LIVE_ITR;
}
Sisa kode cukup jelas dan tidak diperlukan modifikasi. Jangan ragu untuk berkomentar jika Anda membutuhkan info lebih lanjut.
Langkah 5: Instal dan Konfigurasikan MQTT Dash APP di Ponsel Anda
- Instal MQTT Dash di ponsel android Anda dan buka aplikasinya
- Klik ikon + di sudut kanan atas untuk menambahkan perangkat.
- Seperti yang ditunjukkan pada gambar pertama di atas, beri nama pada perangkat Anda, katakan "MyFarm-IPSet". Bidang alamat sebagai io.adafruit.com dan port sebagai 1883, nama pengguna harus nama pengguna adafruit Anda dan kata sandi harus Kunci Aktif Anda dari adafruit. Biarkan sisa bidang apa adanya. Terakhir klik simpan.
- Anda membuat perangkat Anda dibuat. Sekarang klik untuk menambahkan dasbor ke dalamnya.
- Klik + dan pilih ketik sebagai sakelar/tombol. Seperti yang ditunjukkan di atas, masukkan sys di bidang nama. dan masukkan nama feed di bidang topik. setiap feed harus dimulai dengan nama pengguna/feeds/. untuk ini kami /feeds/connection. Pastikan Aktifkan Publikasikan dinonaktifkan. Dengan mengklik ikon yang akan ditampilkan, Anda dapat memilih jenis ikon yang Anda inginkan di dasbor. Untuk nilai 1 pilih salah satu warna (katakanlah hijau) dan untuk nilai 0 pilih warna abu-abu atau merah. Terakhir klik simpan di pojok kanan atas. Demikian pula buat dua ikon lagi satu untuk Grid dengan nama pengguna/umpan/grid sebagai topik dan Motor dengan nama pengguna/umpan/motor. Pastikan Aktifkan Publikasikan dinonaktifkan.
- Terakhir buat tombol Motor ON. Lagi-lagi sama dengan tipe sebagai sakelar/tombol. Topiknya harus /feeds/motor_on dan pastikan Enable Publish diaktifkan kali ini dan QOS=1. Demikian pula buat tombol lain untuk Motor OFF. Topiknya harus /feeds/motor_off.
Langkah 6: Langkah Terakhir:-) Pengujian dan Penyetelan
- Agar aman Anda perlu menguji perangkat terlebih dahulu untuk operasi START dan STOP-nya sebelum menghubungkan relai ke starter DOL. Aktifkan Hotspot di ponsel dengan internet diaktifkan. Hubungkan laptop yang memiliki lingkungan pengembangan langsung ke port USB NodeMCU dengan pengisi daya lain yang terhubung ke TP4056 secara bersamaan. Jika perangkat berhasil terhubung ke internet, Anda akan melihat 1 perangkat terhubung ke hotspot di smartphone.
- Di ponsel cerdas lain tempat Anda menginstal MQTT Dash, buka dasbor aplikasi. Anda akan melihat bahwa ikon NET berwarna hijau dan ikon Grid juga berwarna hijau dengan nilainya sebagai 1. Ikon motor akan ditampilkan sebagai motor mati dengan nilai 0.
- Saat Anda mengklik tombol Motor ON, relai start akan mengeluarkan dua bunyi klik dengan selang waktu dua detik. Begitu pula tombol Motor OFF juga.
- Untuk keamanan sekarang matikan suplai utama ke starter DOL dan sambungkan relai ke starter DOL seperti yang ditunjukkan di atas langkah-2. Pastikan motor dalam keadaan mati. Tekan tombol reset pada NodeMCU. Dari output monitor serial, Anda dapat melihat pernyataan debug yang mencetak nilai dari sensor WC1700, delta, dan arus yang dihitung dalam koil. Dengan motor dalam keadaan mati dan " #define WCS1700_CONST 15 " maxCur harus kurang dari 2 secara konsisten. Jika itu menunjukkan lebih besar dari 2 maka coba dengan nilai yang lebih tinggi dari WCS1700_CONST. Setiap kali Anda harus mengkompilasi ulang kode dan memuat firmware.
- Sekarang hidupkan motor dan cari pembacaan arus lagi. Biarkan motor ON selama sekitar 10 -15 menit dan catat pembacaan arus stabil. Arus dapat bervariasi antara 10 hingga 20 Amps secara kasar dan tidak perlu akurat.
- Kembali ke kode dan atur " #define MIN_CURRENT X. Di mana X adalah 40 persen dari arus maks yang didekati dengan nilai numerik. Dalam kasus saya, saya menyetel MIN_CURRENT ke 5. Kompilasi dan muat ulang firmware ke NodeMCU lagi.
- Lepaskan kabel USB dari NodeMCU. Matikan dan Hidupkan perangkat dengan pengisi daya USB yang terhubung ke TP4056. Mengklik tombol Motor ON pada aplikasi seluler akan menghidupkan motor. Setelah motor dalam status motor harus tercermin di dasbor aplikasi sebagai ON. Mengklik tombol stop akan menghentikan motor.
Menikmati !!!!
Direkomendasikan:
[Wearable Mouse] Pengontrol Mouse Wearable berbasis Bluetooth untuk Windows 10 dan Linux: 5 Langkah
[Wearable Mouse] Pengontrol Mouse Wearable Berbasis Bluetooth untuk Windows 10 dan Linux: Saya membuat pengontrol mouse berbasis Bluetooth yang dapat digunakan untuk mengontrol penunjuk tetikus dan melakukan operasi terkait mouse PC dengan cepat, tanpa menyentuh permukaan apa pun. Sirkuit elektronik, yang disematkan pada sarung tangan, dapat digunakan untuk melacak
Timer Berbasis Arduino untuk Pompa Akuaponik: 4 Langkah
Timer Berbasis Arduino untuk Pompa Aquaponik: Ini adalah instruksi kecil pada Timer berbasis Arduino untuk Pompa Aquaponik. Saya memiliki pengaturan sistem aquaponik kecil di dalam ruangan dengan aliran kontinu. Pompa berjalan terus menerus dan saya ingin membuat pengatur waktu yang akan membuat pompa berjalan untuk amo tertentu
Pengontrol Game DIY Berbasis Arduino - Pengontrol Permainan Arduino PS2 - Bermain Tekken Dengan Gamepad Arduino DIY: 7 Langkah
Pengontrol Game DIY Berbasis Arduino | Pengontrol Permainan Arduino PS2 | Bermain Tekken Dengan Gamepad Arduino DIY: Halo teman-teman, bermain game selalu menyenangkan tetapi bermain dengan Kontroler game kustom DIY Anda sendiri lebih menyenangkan. Jadi kami akan membuat Pengontrol game menggunakan arduino pro micro dalam instruksi ini
Sistem Irigasi Berbasis Arduino: 8 Langkah
Sistem Irigasi Berbasis Arduino: Contextualização O Brasil está entre os países com maior área irrigada do planeta e em cinco anos esta área pode crescer 65%, segundo estudo da Organização das Nações Unidas para a Alimentação e a Agricultura (FAO e a Agricultura). Sebuah possibilidade de direcionar a i
Irigasi Cerdas Berbasis Kelembaban DIY: 10 Langkah (dengan Gambar)
Irigasi Cerdas DIY Berbasis Kelembaban: Kita tahu bahwa tanaman membutuhkan air sebagai media transportasi nutrisi dengan membawa gula terlarut dan nutrisi lainnya melalui tanaman. Tanpa air, tanaman akan layu. Namun, penyiraman yang berlebihan mengisi pori-pori di tanah, mengganggu