Tanaman yang lupa disiram saat ditinggal mudik atau sekadar lupa karena sibuk adalah masalah yang sangat umum — dan sangat cocok diselesaikan dengan Arduino. Proyek ini menggabungkan tiga hal yang sudah dibahas terpisah di blog ini: sensor kelembaban, relay, dan pompa air kecil, menjadi satu sistem yang bekerja sendiri tanpa campur tangan Anda sama sekali.
Cara Kerja Sistem
Logikanya sederhana: sensor kelembaban tanah membaca kadar air di media tanam setiap beberapa saat. Kalau nilainya menunjukkan tanah kering, Arduino mengaktifkan relay yang menyalakan pompa air mini selama beberapa detik, lalu mati lagi. Siklus ini berulang otomatis tanpa perlu diawasi.
Alat dan Bahan
| Komponen | Jumlah | Catatan |
|---|---|---|
| Arduino Uno / Nano | 1 | Board apa pun bisa |
| Sensor kelembaban tanah (higrometer) | 1 | Modul dengan output analog dan digital |
| Modul relay 1 channel | 1 | Lihat detail pemakaian di artikel relay |
| Pompa air mini submersible (DC 5–12V) | 1 | Jenis yang biasa dipakai di akuarium kecil |
| Selang kecil | secukupnya | Menyalurkan air dari wadah ke tanaman |
| Adaptor/baterai sesuai tegangan pompa | 1 | Jangan menyuplai pompa langsung dari Arduino |
Skema Penyambungan
Kode Lengkap
const int pinSensor = A0;
const int pinRelay = 7;
const int ambangKering = 550; // sesuaikan lewat kalibrasi
const unsigned long durasiSiram = 4000; // 4 detik menyiram
const unsigned long jedaCekBerikutnya = 3600000UL; // cek tiap 1 jam
void setup() {
pinMode(pinRelay, OUTPUT);
digitalWrite(pinRelay, HIGH); // HIGH = mati, untuk relay active LOW
Serial.begin(9600);
}
void loop() {
int nilai = analogRead(pinSensor);
Serial.print("Kelembaban (mentah): ");
Serial.println(nilai);
if (nilai > ambangKering) {
Serial.println("Tanah kering, menyiram...");
digitalWrite(pinRelay, LOW); // nyalakan pompa
delay(durasiSiram);
digitalWrite(pinRelay, HIGH); // matikan pompa
Serial.println("Selesai menyiram.");
} else {
Serial.println("Tanah masih lembab, tidak perlu disiram.");
}
delay(jedaCekBerikutnya);
}
Catatan penting soal angka ambangKering: sensor kelembaban tanah membaca nilai terbalik — makin basah tanahnya, makin kecil angkanya, dan makin kering, makin besar. Nilai 550 di kode ini hanya perkiraan awal. Cara mengkalibrasinya: celupkan sensor ke gelas berisi air (catat angkanya), lalu keringkan sepenuhnya di udara (catat angkanya), ambil nilai tengah di antara keduanya sebagai ambang.
Kenapa Memakai delay() di Sini Tidak Masalah
Di artikel motor servo sebelumnya, Anda belajar menghindari delay() supaya program tetap responsif. Di proyek ini, delay(durasiSiram) dan delay(jedaCekBerikutnya) sengaja dipakai karena Arduino memang tidak punya tugas lain yang harus berjalan bersamaan — satu-satunya pekerjaannya adalah mengecek sensor lalu tidur panjang. Prinsipnya bukan "delay selalu buruk", tapi "hindari delay saat ada tugas lain yang perlu tetap berjalan".
Mencegah Pompa Menyala Terus-menerus
Risiko terbesar pada sistem seperti ini bukan tanaman kering, tapi pompa menyala tanpa henti karena sensor rusak, kabel lepas, atau kalibrasi salah — yang bisa membanjiri pot atau membakar motor pompa yang berjalan kering tanpa air. Tambahkan pengaman sederhana ini:
const int batasSiramPerHari = 4;
int hitunganSiram = 0;
unsigned long waktuReset = 0;
void loop() {
if (millis() - waktuReset > 86400000UL) { // reset tiap 24 jam
hitunganSiram = 0;
waktuReset = millis();
}
int nilai = analogRead(pinSensor);
if (nilai > ambangKering && hitunganSiram < batasSiramPerHari) {
digitalWrite(pinRelay, LOW);
delay(durasiSiram);
digitalWrite(pinRelay, HIGH);
hitunganSiram++;
}
delay(jedaCekBerikutnya);
}
Dengan batas maksimal penyiraman per hari, kerusakan sensor paling buruk hanya membuat tanaman kurang air — jauh lebih aman daripada risiko banjir atau pompa terbakar.
Masalah yang Sering Muncul
| Gejala | Penyebab dan Solusi |
|---|---|
| Nilai sensor selalu 1023 atau selalu 0 | Kabel data tidak tersambung dengan benar, atau sensor rusak akibat korosi (lihat poin berikutnya). |
| Sensor cepat berkarat setelah beberapa minggu | Wajar untuk sensor jenis resistif murah. Pertimbangkan sensor kapasitif yang lebih tahan korosi untuk pemakaian jangka panjang. |
| Pompa menyala tapi air tidak mengalir | Selang terlipat, atau pompa berjalan kering karena wadah air sudah kosong — cek volume air rutin. |
| Arduino restart saat pompa menyala | Sama seperti kasus relay pada umumnya: beri catu daya terpisah untuk pompa, sambungkan GND-nya ke GND Arduino. |
Pengembangan Lanjutan
Setelah versi dasar berjalan, beberapa penambahan yang bisa dicoba: tampilkan status kelembaban di LCD I2C supaya terlihat tanpa laptop, atau kirim notifikasi ke Telegram setiap kali sistem menyiram memakai teknik dari artikel notifikasi Telegram — sehingga Anda tetap tahu kondisi tanaman meski sedang di luar rumah.
0 Komentar
Berkomentarlah dengan sopan dan menggunakan bahasa yang semestinya.