Sistem Penyiraman Tanaman Otomatis dengan Raspberry Pi & Dasbor Web
Buat sistem penyiraman mandiri yang memantau kelembaban tanah dan menyiram tanaman indoor Anda secara otomatis, semua dikontrol dari antarmuka web.
Ringkasan
Panduan ini memandu Anda melalui setiap langkah—dari pemilihan komponen hingga penghubungan, pengkodean, dan peluncuran dasbor web Flask. Hasilnya adalah solusi penyiraman yang andal dan ramah pemeliharaan yang berjalan pada Raspberry Pi.
Bahan-bahan
- Raspberry Pi 3 (Pi 2/4 manapun bekerja dengan perubahan pin minor)
- Sensor Kelembaban Tanah (output analog)
- Modul Relay 5 V (satu saluran)
- Pompa Mini Terendam 3–6 V (≤ 200 mL min-1)
- Selang air fleksibel (1 inci atau lebih kecil)
- Kabel jumper Dupont (set warna pelangi, 120 pcs)
- Sumber Daya 5 V (kabel USB + charger dinding atau adapter 5 V)
- Opsional: Potensiometer kecil untuk kalibrasi sensor
Pengaturan Daya
Gunakan kabel USB sebagai sumber 5 V. Kupas kabel, solder kabel tebal yang lebih besar pada konduktor merah (+) dan hitam (–), dan hubungkan ke charger dinding 5 V. Verifikasi tegangan dengan multimeter sebelum menghubungkan ke Pi.
Penghubungan GPIO (Pi 3)
- Sensor Tanah: Positif ke pin 2 (5 V), Negatif ke pin 6 (GND), Sinyal (kuning) ke pin 8 (GPIO 14).
- Relay: IN pin ke pin 7 (GPIO 4), VCC ke pin 2, GND ke pin 5.
- Pompa: Hubungkan daya pompa ke kontak Normally Open (NO) relay; ground ke kontak Common (COM). Saat Pi menarik pin 1 (GPIO 5) ke LOW, relay tertutup dan pompa aktif.
Pasang selang pada keluar pompa dan letakkan ujung lain di dekat tanah tanaman. Isi reses selang dengan air.
Rangkaian Hardware
Kunci selang pada pompa menggunakan kawat listrik untuk mencegah bocor. Pastikan semua koneksi terisolasi dan Pi diberi daya terpisah dari daya pompa untuk menghindari kebisingan listrik.
Ringkasan Perangkat Lunak
Proyek ini terdiri dari empat skrip Python dan antarmuka web Flask:
- water.py – abstraksi GPIO untuk pembacaan sensor dan kontrol pompa.
- auto_water.py – logika penyiraman terjadwal.
- web_plants.py – aplikasi Flask yang mengekspos status sensor dan kontrol manual.
- main.html – template dasbor sederhana.
Menginstal Dependensi
Pada Pi, jalankan berikut:
$ python3 -m pip install RPi.GPIO flask psutil
Skrip Kontrol GPIO (water.py)
Skrip ini mengekspos dua fungsi utama: get_status() mengembalikan string basah/kering, dan pump_on() mengaktifkan pompa selama satu detik. Uji secara interaktif:
$ python3 >>> import water >>> water.get_status() 'Kering' >>> water.pump_on() Pompa diaktifkan selama 1 s.
Jika sensor melaporkan secara salah, sesuaikan potensiometer kecil pada modul hingga LED kedua menyala saat tanah lembab.
Menjalankan Dasbor Flask
Letakkan web_plants.py dalam folder yang sama dengan water.py dan buat subdirektori bernama templates yang berisi main.html. Lalu mulai server:
$ sudo python3 web_plants.py
Navigasikan ke alamat IP Pi di browser; Anda akan melihat dasbor dengan status kelembaban real-time dan tombol “Siram Sekarang” manual. Halaman ini didukung oleh Flask dan berkomunikasi dengan lapisan GPIO melalui skrip pembantu.
Otomatisasi Startup dengan Cron
Untuk memastikan server web memulai otomatis setelah reboot, edit crontab root:
$ sudo crontab -e
Tambahkan baris di bawah, ganti /home/pi/project dengan jalur sebenarnya Anda:
@reboot cd /home/pi/project && sudo python3 web_plants.py
Reboot Pi dan konfirmasi dasbor memuat otomatis.
Langkah Selanjutnya
Dengan sistem operasional, Anda dapat meningkatkannya dengan menambahkan:
- Banyak modul tanaman dan satu dasbor.
- Pencatatan tingkat kelembaban ke CSV atau basis data.
- Notifikasi email atau push saat penyiraman terjadi.
Untuk pembelajaran yang lebih dalam, konsultasikan tutorial GPIO Raspberry Pi dan panduan integrasi Flask-GPIO.