Tentang proyek ini
Penyiram Tanaman Lain
Ada banyak proyek dan tutorial yang sudah dikenal di Internet yang menjelaskan cara menggunakan sensor kelembaban tanah. Dalam proyek ini beberapa ide brilian yang ditemukan di Internet digabungkan bersama dan diselesaikan dengan bagian perangkat lunak untuk membangun pengontrol sistem penyiraman tanaman rumah. Terkadang solusinya terlihat jelas sampai Anda sedikit lebih dekat untuk melihat iblis dalam detailnya. Jadi mari kita selidiki detail ini.
Fitur Utama Pengontrol
Kontroler ini memiliki beberapa fitur berikut:
- Dua pembangkit didukung, pengontrol memiliki dua saluran independen; saluran apa pun dapat dinonaktifkan
- Setiap saluran memiliki dua parameter umum:berapa lama untuk memompa air ke depan dan ke belakang. Parameter ini diukur dalam puluhan detik.
- Pengontrol memiliki mode manual. Dimungkinkan untuk menyirami tanaman dengan menekan tombol.
- Pengontrol memeriksa kelembapan setelah menyiram tanaman. Ini menonaktifkan saluran jika kelembaban tidak meningkat.
- Pengontrol menerapkan sensor cahaya untuk mencegah berjalan di malam hari
- Pengontrol memiliki sistem menu untuk mengatur parameter konfigurasi. Konfigurasi disimpan di EEPROM.
Kelembaban Tanah
Bagaimana cara mengukur kelembaban tanah secara akurat? Anda dapat memesan sensor di eBay, meletakkannya di pabrik dan memeriksa resistansi. Cara ini dijelaskan dalam banyak tutorial di Internet. Sayangnya, dalam kasus saya ketahanan tanaman "kering" dan "basah" sangat dekat (300 kOhm dan 500 kOhm) sehingga sulit untuk memutuskan secara akurat kapan kita harus menambahkan air ke pabrik kita. Masalahnya, air bersih tidak menghantarkan listrik, justru mineral di dalam air yang menghantarkan listrik. Jadi, resistansi terukur sangat tergantung pada jumlah dan jenis mineral di pabrik kita, bukan pada jumlah air yang kita aplikasikan. Google dapat membantu. Di Internet saya telah menemukan ide cemerlang untuk mengukur kapasitansi sensor, bukan resistansi. Ide utamanya adalah bahwa air memiliki permitivitas dielektrik yang besar dan kapasitansi tanaman "basah" jauh lebih besar daripada tanaman "kering" (200 mkF vs 200 pF) satu juta kali perbedaan!
Bagaimana Mengukur Kapasitansi?
Orang jenius lain telah mengubah arduino menjadi meteran kapasitor akurat tinggi. Tetapi menurut saya metode ini rumit dan tidak perlu mengukur kapasitansi sensor kami agar akurat. Cara lain untuk mengukur kapasitansi jauh lebih sederhana, dan hanya menggunakan dua pin analog dan memberikan akurasi yang dapat diterima untuk membedakan antara kondisi "kering" dan "basah" dari pabrik kita. Seperti yang saya sebutkan di atas, pembacaan tanaman "kering" dan "basah" memiliki perbedaan besar, tidak nyaman menggunakan nilai ini untuk menetapkan batas, sehingga logaritma natural dari pembacaan kapasitansi dari sensor digunakan dalam kode, untuk mengurangi interval nilai yang mungkin.
Mengapa H-jembatan?
Tampaknya merupakan ide yang baik untuk menggunakan transistor MOSFET tunggal untuk menjalankan pompa air. Sayangnya, ketinggian air di tangki sumber air (botol) bisa lebih tinggi dari pabrik kami. Dalam kasus seperti itu, kami mulai memompa air, tetapi terus mengalir setelah pompa dimatikan. Bagaimana cara menghentikan air dengan pasti? Anda dapat menjalankan pompa ke arah sebaliknya untuk sementara waktu. Karena kita menggunakan motor DC maka cukup untuk mengembalikan kutub ("+" dan "-"). Untuk melakukannya, Anda perlu menggunakan H-bridge. IC L298n adalah pilihan yang baik. Pompa dalam proyek ini menggunakan 9 V dan 3 A, jadi Anda memerlukan heat sink pada IC dan resistor daya juga. Resistor daya 1 Ohm 5Watt digunakan dalam pengontrol ini. Motor H-bridge L298n cocok untuk mengelola dua motor, sehingga pengontrol ini dapat mengelola dua pembangkit secara bersamaan.
Sistem Menu Pengontrol
Untuk mengatur plant controller digunakan rotary encoder. Setelah pengontrol dimulai, layar utama muncul. Pada layar utama beberapa parameter yang berguna ditampilkan. Pembacaan sensor saat ini dari kedua saluran pengontrol (di garis atas). Jika saluran dinonaktifkan, string "xxxx
" ditampilkan. Di garis bawah batas kering ditampilkan.
Untuk menjalankan pompa secara manual, tekan segera tombol putar. Layar manual muncul. Untuk mengatur parameter pengontrol, tekan encoder untuk waktu yang lama (sekitar 1 detik) saat berada di layar utama. Menu pengaturan tiga dijelaskan di sini:
- Tampilkan kecerahan lampu latar (atau otomatis)
- Menampilkan kecerahan lampu latar di malam hari
Setiap saluran memiliki menu sendiri:
- waktu berjalan maju pompa (puluhan detik)
- waktu berjalan mundur pompa (puluhan detik)
"Batas kering" digunakan untuk mengatur kelembaban tanah minimum tanaman untuk memulai penyiraman. Nilainya adalah logaritma natural dari kapasitansi sensor. Nilai pembacaan sensor saat ini dapat ditemukan di layar utama bersama dengan nilai batas kering.
Item menu "parameter pengujian" memungkinkan untuk memeriksa cara kerja waterer untuk menyetel nilai waktu sebelum menyimpannya ke EEPROM.
Perangkat Keras
Pengontrol dibuat di atas dua PCB dua sisi berukuran 3x7 cm. Yang pertama digunakan untuk driver motor l298n, dioda, blok terminal sekrup untuk menghubungkan daya dan pompa motor, konektor untuk sensor. Papan ini juga memiliki modul catu daya DC AMS1117-adj untuk mendapatkan 5v untuk l298n dan Arduino. Lebih mudah menggunakan pengatur tegangan terpisah saat men-debug bagian pengontrol ini. Anda dapat menggunakan regulator di papan Arduino untuk menstabilkan 5v.
PCB kedua berisi Arduino nano, konektor untuk rotary encoder dan resistor foto serta soket untuk layar LCD.
Kode
Sistem Penyiraman
Kode sumberhttps://github.com/sfrwmaker/WateringSystem/blob/master/WateringSystem.ino Skema