๐ŸŒฑ Sensor Kelembaban Tanah (Soil Moisture) — Materi Lengkap

Teori • Rangkaian • Kode Arduino • Proyek Otomatis • Kalibrasi • Tips
Level: Dasar → Menengah

1. Pengertian

Sensor kelembaban tanah (soil moisture sensor) digunakan untuk mengukur kadar air dalam tanah. Umumnya tersedia dua jenis probe: resistive (konduktivitas) dan kapasitif. Probe resistif murah tetapi rentan korosi; probe kapasitif lebih tahan lama dan lebih akurat.

2. Komponen Modul

BagianKeterangan
Probe (Electrode)Elektroda yang ditancapkan ke tanah (ukur konduktivitas)
Modul DriverMenyediakan AO (Analog Out) & DO (Digital Out) + potensiometer ambang
PinVCC (3.3–5V), GND, AO (analog), DO (digital)

3. Prinsip Kerja

Probe mengukur konduktivitas/kapasitansi tanah. Untuk modul resistif, semakin basah tanah → konduktivitas ↑ → nilai analog berubah. Modul driver mengubah sinyal probe menjadi tegangan analog (AO) dan sinyal digital (DO) berdasarkan ambang.

4. Rangkaian Dasar (Analog Read)

  1. VCC modul → 5V Arduino (atau 3.3V jika modul mendukung)
  2. GND modul → GND Arduino
  3. AO modul → A0 (pin analog Arduino)
Rangkaian Soil Moisture ke Arduino (AO ke A0)
Contoh: AO → A0, gunakan resistor pull-down jika perlu

5. Contoh Kode: Membaca Nilai Analog (Arduino Uno)

Program ini membaca nilai sensor (0–1023), menampilkan di Serial Monitor, dan menginterpretasikan kelembaban.

/* Soil Moisture — BACA ANALOG A0 */ const int sensorPin = A0; int sensorValue = 0; void setup() { Serial.begin(9600); } void loop() { sensorValue = analogRead(sensorPin); // 0..1023 Serial.print("Nilai analog: "); Serial.println(sensorValue); // Interpretasi sederhana (kalibrasi disesuaikan) if (sensorValue > 800) Serial.println("Status: TANAH KERING"); else if (sensorValue > 450) Serial.println("Status: TANAH LEMBAB"); else Serial.println("Status: TANAH BASAH"); delay(1000); }
Catatan: Nilai skala dapat berbeda antar modul/probe. Lakukan kalibrasi — lihat bagian Kalibrasi.

6. Proyek: Penyiraman Tanaman Otomatis (Relay + Pompa)

Logika: jika nilai sensor menunjukkan tanah kering → nyalakan pompa melalui relay selama N detik.

// Soil Moisture Automatic Watering (basic) const int sensorPin = A0; const int relayPin = 8; // modul relay (aktif LOW/High sesuai relay) int sensorValue = 0; int threshold = 700; // ambang kering (kalibrasi perlu) void setup() { Serial.begin(9600); pinMode(relayPin, OUTPUT); digitalWrite(relayPin, HIGH); // pastikan relay OFF (sesuaikan tipe) } void loop() { sensorValue = analogRead(sensorPin); Serial.print("Moisture: "); Serial.println(sensorValue); if (sensorValue > threshold) { // tanah kering Serial.println("Kering → Pompa ON"); digitalWrite(relayPin, LOW); // aktifkan relay (sesuaikan) delay(5000); // pompa ON 5 detik (ubah sesuai kebutuhan) digitalWrite(relayPin, HIGH); // matikan pompa } else { Serial.println("Cukup / Basah → Pompa OFF"); digitalWrite(relayPin, HIGH); // pastikan pompa mati } delay(2000); }
KEAMANAN: Gunakan relay yang sesuai dengan beban pompa dan pastikan sambungan listrik aman. Jika pompa 220VAC, gunakan relay dan wiring yang aman atau minta teknisi listrik.

7. Kalibrasi & Interpretasi Nilai

Langkah kalibrasi sederhana:

  1. Pasang probe ke air penuh → catat nilai ADC (minValue).
  2. Gantung probe di udara / keringkan → catat nilai ADC (maxValue).
  3. Gunakan rentang ini untuk map ke persen kelembaban:
// Contoh mapping ke persen int minValue = 200; // contoh nilai di air int maxValue = 900; // contoh nilai saat kering int sensorValue = analogRead(A0); int moisturePercent = map(sensorValue, maxValue, minValue, 0, 100); // terbalik moisturePercent = constrain(moisturePercent, 0, 100);

Catatan: beberapa modul mengeluarkan nilai terbalik (lebih tinggi = kering). Pastikan arah mapping benar.

8. Resistive vs Kapasitif

Resistive: murah, mudah dicari, tetapi probe rawan korosi jika tergenang air lama. Kapasitif: lebih tahan lama, tidak korosi, hasil lebih stabil — pilihan lebih baik untuk proyek jangka panjang.

  • Resistive: gunakan probe stainless atau lapisi probe; ganti setelah pemakaian lama.
  • Kapasitif: cocok untuk sistem otomatisasi & IoT yang butuh reliabilitas.

9. Integrasi IoT (ESP32 / ESP8266)

Contoh singkat mengirim data kelembaban ke server / dashboard (sketch ringkas menggunakan ESP8266/ESP32):

// Pseudocode: baca A0 -> kirim via HTTP POST / MQTT // (Lengkapi library WiFi dan server sesuai platform) int sensorPin = A0; void loop() { int val = analogRead(sensorPin); // kirim 'val' ke server / broker MQTT delay(5000); }

Gunakan platform seperti ThingSpeak, Blynk, atau MQTT + Node-RED untuk menampilkan grafik & notifikasi.

10. Masalah Umum & Solusi

  • Nilai fluktuatif: tambahkan delay lebih lama, rata-rata beberapa pembacaan (moving average).
  • Probe korosi: gunakan probe kapasitif atau lapisi probe resistive dengan epoxy (tidak direkomendasikan untuk akurasi jangka panjang).
  • Nilai selalu tinggi/selalu rendah: cek wiring, GND bersama, catu daya stabil.
  • Noise pada pembacaan: jaga kabel pendek, tambahkan kapasitor decoupling 0.1ยตF pada VCC/GND modul.
  • Perlakuan air: jangan biarkan konektor listrik terendam; letakkan probe saja di tanah.

11. Latihan & Tugas Siswa

  1. Pasang modul soil moisture, baca nilai saat tanah kering, lembab, dan basah — catat hasil.
  2. Buat program yang menyalakan LED merah (kering), kuning (lembab), hijau (basah).
  3. Kalibrasi min/max, tampilkan persen kelembaban di Serial Monitor dan/atau LCD 16x2.
  4. Implementasikan proyek penyiraman otomatis dengan relay dan buat laporan pengujian (foto + video singkat).

No comments:

Post a Comment