Sensor Kelembapan Tanah: Penyiraman Tanaman Otomatis dengan Arduino
Bagaimana cara kerja sensor kelembapan tanah? Sensor resistif vs kapasitif, pengkabelan Arduino, kalibrasi dengan bacaan kering dan basah, mencegah korosi, penyiraman otomatis dengan relay dan pompa, serta pemakaian di ESP32 dan Pico.
Sensor kelembapan tanah adalah sensor sederhana yang mengukur seberapa basah tanah di pot atau kebun. Sensor ini menjadi dasar banyak proyek, dari lampu peringatan yang memberi tahu ketika tanaman kehausan sampai sistem yang menyiram bungamu selama kamu liburan. Harganya murah, terhubung ke Arduino dengan tiga kabel, dan begitu kamu menambahkan relay dan pompa kecil, jadilah otomasi yang benar-benar berguna.

Bagaimana cara kerja sensor kelembapan tanah?
Air di dalam tanah mengubah seberapa baik tanah menghantarkan listrik dan menyimpan muatan. Sensor resistif mengukur hambatan di antara dua kaki logam yang ditancapkan ke tanah: makin basah tanahnya, makin kecil hambatannya. Sensor kapasitif mengukur kapasitansi di sekitar elektroda yang dilapisi; logamnya tidak pernah menyentuh tanah. Di kebanyakan modul, bacaannya tinggi ketika tanah kering dan rendah ketika basah.
| Fitur | Resistif (YL-69, FC-28) | Kapasitif (v1.2) |
|---|---|---|
| Yang diukur | Hambatan di antara dua kaki logam | Kapasitansi di sekitar elektroda |
| Logam terbuka | Ya | Tidak (dilapisi) |
| Korosi | Terkikis dalam beberapa minggu kalau dialiri daya terus-menerus | Sangat awet |
| Output | Analog (AO) dan digital (DO) | Analog |
| Harga | Sangat murah | Sedikit lebih mahal |
| Paling cocok untuk | Eksperimen singkat | Proyek pot dan kebun yang permanen |
Pengkabelan
| Pin sensor | Arduino Uno | ESP32 | Raspberry Pi Pico |
|---|---|---|---|
| VCC | D7 (agar hanya dialiri daya ketika mengukur) atau 5V | GPIO 25 atau 3V3 | GP15 atau 3V3 |
| GND | GND | GND | GND |
| AO (AOUT) | A0 | GPIO 34 | GP26 |
| DO | D2 (opsional) | Opsional | Opsional |
Membaca kelembapan dengan Arduino dan kalibrasi
Setiap sensor dan setiap jenis tanah memberikan nilai yang berbeda, jadi kalibrasi dulu sensormu sendiri: catat bacaan ketika sensor di udara (benar-benar kering) dan ketika dicelupkan ke segelas air (benar-benar basah). Setelah itu pakai map() untuk mengubah rentang itu menjadi persentase dari 0 sampai 100. Ganti DRY dan WET di kode dengan bacaanmu sendiri:
1const int SENSOR_PIN = A0;
2const int POWER_PIN = 7; // sensörü yalnızca ölçerken besle / power only while measuring
3const int DRY = 850; // havadayken okunan / reading in air (kendin ölç / measure yours)
4const int WET = 380; // sudayken okunan / reading in water (kendin ölç / measure yours)
5
6void setup() {
7 pinMode(POWER_PIN, OUTPUT);
8 Serial.begin(9600);
9}
10
11int readMoisture() {
12 digitalWrite(POWER_PIN, HIGH);
13 delay(10); // değerin oturmasını bekle / let it settle
14 int raw = analogRead(SENSOR_PIN);
15 digitalWrite(POWER_PIN, LOW);
16 return constrain(map(raw, DRY, WET, 0, 100), 0, 100); // % nem / % moisture
17}
18
19void loop() {
20 int moisture = readMoisture();
21 Serial.print("Toprak nemi / Soil moisture: %");
22 Serial.println(moisture);
23 delay(2000);
24}Penyiraman otomatis: relay dan pompa

Sekarang mari ubah bacaan menjadi tindakan nyata: ketika kelembapan tanah turun di bawah 30%, nyalakan pompa selama 4 detik, lalu tunggu 1 menit agar air meresap ke tanah sebelum mengukur lagi. Penantian ini mencegah pompa menyala terus dan membanjiri pot karena sensornya belum sempat basah. Pompa tidak bisa diberi daya langsung dari pin Arduino; kendalikan lewat relay atau MOSFET. Untuk pengkabelan relay, baca Apa Itu Modul Relay?
1const int SENSOR_PIN = A0, POWER_PIN = 7, PUMP_PIN = 8; // PUMP_PIN → röle IN / relay IN
2const int DRY = 850, WET = 380;
3const int START_BELOW = 30; // %30'un altında sula / water below 30%
4const unsigned long PUMP_MS = 4000; // her seferde 4 sn / 4 s per run
5const unsigned long SOAK_MS = 60000; // suyun yayılması için bekle / wait for the water to soak in
6
7int readMoisture() {
8 digitalWrite(POWER_PIN, HIGH);
9 delay(10);
10 int raw = analogRead(SENSOR_PIN);
11 digitalWrite(POWER_PIN, LOW);
12 return constrain(map(raw, DRY, WET, 0, 100), 0, 100);
13}
14
15void setup() {
16 pinMode(POWER_PIN, OUTPUT);
17 pinMode(PUMP_PIN, OUTPUT);
18 digitalWrite(PUMP_PIN, HIGH); // aktif LOW röle: kapalı başla / active-LOW relay: start off
19}
20
21void loop() {
22 if (readMoisture() < START_BELOW) {
23 digitalWrite(PUMP_PIN, LOW); // pompayı çalıştır / pump on
24 delay(PUMP_MS);
25 digitalWrite(PUMP_PIN, HIGH); // pompayı durdur / pump off
26 delay(SOAK_MS); // tekrar ölçmeden önce bekle / wait before measuring again
27 }
28 delay(5000);
29}Kelembapan tanah dengan ESP32 dan Raspberry Pi Pico
Di ESP32, hubungkan sensor ke salah satu pin ADC1 (GPIO 32–39), yang tetap bekerja selama Wi-Fi menyala; nilainya berkisar dari 0 sampai 4095, jadi kalibrasi lagi. Dengan ESP32 kamu bisa mengirim tingkat kelembapan ke ponselmu sebagai notifikasi, atau membuat sensor pot yang mengukur sekali per jam dalam deep sleep dan berjalan dengan baterai selama berbulan-bulan. Membacanya di Pico dengan MicroPython terlihat seperti ini:
1from machine import ADC, Pin
2import time
3
4sensor = ADC(26) # GP26 → AOUT
5power = Pin(15, Pin.OUT) # sensörü yalnızca ölçerken besle / power only while measuring
6DRY, WET = 52000, 24000 # kendi değerlerinle değiştir / replace with your readings
7
8def moisture():
9 power.value(1)
10 time.sleep_ms(10)
11 raw = sensor.read_u16()
12 power.value(0)
13 pct = (DRY - raw) * 100 // (DRY - WET)
14 return max(0, min(100, pct))
15
16while True:
17 print("Toprak nemi / Soil moisture: %", moisture())
18 time.sleep(2)Berapa seharusnya kelembapan tanah?
| Jenis tanaman | Perkiraan kelembapan target |
|---|---|
| Kaktus dan sukulen | 10–30% |
| Kebanyakan tanaman hias dalam ruangan | 40–60% |
| Tomat, cabai, dan sayuran | 60–80% |
| Pakis dan tanaman yang suka lembap | 70–90% |
Persentase ini relatif terhadap rentang kering-basah sensormu sendiri; ini bukan kadar air tanah secara ilmiah. Ambang terbaik ditemukan dengan mengamati selama beberapa hari berapa bacaan sensor ketika tanamanmu benar-benar perlu disiram.
Ide proyek sensor kelembapan tanah
- Penyiraman pot otomatis: sistem yang menyiram bungamu sendiri, bahkan ketika kamu sedang liburan.
- Peringatan “aku haus”: LED yang menyala atau buzzer yang berbunyi ketika tanah mengering.
- Notifikasi ponsel: kirim pesan Telegram dari ESP32 ketika kelembapan turun.
- Penyiraman banyak pot: siram tanaman satu per satu dengan memberi setiap pot sensor dan katup kecilnya sendiri.
- Stasiun rumah kaca mini: ukur juga kelembapan udara dengan DHT11 dan cahaya dengan LDR, lalu tampilkan semuanya di satu layar.
- Kebun pintar: lewati penyiraman secara otomatis ketika sensor hujan mendeteksi hujan.
Kesalahan umum dan cara mengatasinya
- Nilainya selalu 1023 atau selalu 0: yang dibaca pin DO, bukan AO, tidak ada daya, atau kabel ke board sensor putus.
- Kaki sensor berkarat dan bacaannya tidak masuk akal: sensor resistif dialiri daya terus-menerus; beri daya dari pin atau ganti ke model kapasitif.
- Bacaan bergeser seiring waktu: konduktivitas berubah ketika tanah memadat atau diberi pupuk; kalibrasi ulang sesekali.
- Pompa tidak mau berhenti: relay-nya active LOW dan HIGH/LOW tertukar di kode, atau sensor mengukur lagi sebelum air sempat meresap; tambahkan jeda di antara bacaan.
- Sensor kapasitif memberi nilai aneh: elektronik di bagian atasnya basah; buat board-nya tahan air.
- Bacaan kacau ketika Wi-Fi mulai di ESP32: sensornya ada di pin ADC2; pindahkan ke pin di antara GPIO 32 dan 39.
Sensor kelembapan tanah bisa menjadi proyek pertamamu yang tidak sekadar mengukur, tetapi benar-benar mengubah sesuatu di dunia nyata. Di aplikasi BlueGrays ada proyek stasiun penyiraman pintar, langkah demi langkah dengan skema rangkaian dan kode.
Pertanyaan umum
Sebaiknya beli sensor kelembapan tanah kapasitif atau resistif?
Untuk eksperimen yang berlangsung beberapa hari, sensor resistif sudah cukup. Untuk proyek yang akan berada di pot berbulan-bulan, pilih sensor kapasitif; tanpa logam yang terbuka, sensor ini tidak berkarat dan bacaannya lebih sedikit bergeser seiring waktu.
Berapa lama sensor kelembapan tanah bisa bertahan?
Kaki sensor resistif yang dialiri daya terus-menerus terkikis cukup parah dalam beberapa minggu. Kalau hanya diberi daya ketika mengukur, sensor ini bisa bertahan berbulan-bulan. Sensor kapasitif bisa bekerja bertahun-tahun selama elektroniknya dijauhkan dari air.
Kenapa bacaannya tinggi ketika tanah kering dan rendah ketika basah?
Kebanyakan modul menyambungkan sensor sebagai bagian dari pembagi tegangan; ketika tanah makin basah, hambatan atau kapasitansinya berubah dan tegangan di pin analog turun. Karena itu kode membalik rentangnya dengan map(raw, DRY, WET, 0, 100) untuk mendapat persentase.
Seberapa dalam sensor kelembapan tanah harus ditanam?
Taruh sensor di daerah akar tanaman, jauh dari tepi pot. Untuk sensor kapasitif, menanamnya sampai garis yang ditandai di badannya sudah cukup; elektroniknya tidak boleh menyentuh tanah atau air.
Bisakah pompa air dihubungkan langsung ke Arduino?
Tidak. Pompa kecil pun menarik 100–300 mA, yang tidak bisa diberikan pin Arduino. Kendalikan pompa lewat modul relay, atau MOSFET dengan dioda flyback; beri daya dari catu terpisah dan sambungkan ground-nya bersama.
Berapa banyak pot yang bisa dipantau dengan satu Arduino?
Arduino Uno punya 6 input analog, jadi 6 sensor bisa dibaca langsung. Untuk lebih banyak, pakai multiplexer analog 16 kanal seperti CD74HC4067 atau modul ADC tambahan seperti ADS1115.
Proyek untuk dibuat setelah membaca ini
Lihat semua proyek
Stasiun Penyiraman Pintar
Tukang kebun yang menyiram tanamanmu sendiri, supaya tanaman tidak kering ketika kamu berlibur. Sensor kelembapan tanah mengukur seberapa basah tanahnya; ketika kering, Arduino menyalakan pompa air be

Suhu dan Kelembapan dengan DHT11
Seberapa hangat kamarmu, dan apakah udaranya lembap atau kering? Sensor DHT11 mengukur suhu dan kelembapan, dan Arduino menulis nilainya di layar LCD dua baris, diperbarui setiap beberapa detik. Jika

Suhu dan Kelembapan DHT22 ESP32 (dengan Layar LCD)
Proyek ini mengukur suhu dan kelembapan sekitar dengan sensor DHT22 dan menampilkan datanya secara real-time di LCD I2C 16x2. Data dibaca dari sensor dengan protokol satu kabel lewat library Adafruit DHT. Proyek ini menjadi dasar untuk stasiun cuaca IoT, otomasi rumah pintar, atau sistem pemantauan lingkungan di rumah kaca. Komunikasi dengan DHT22 dilakukan lewat pin GPIO 4 ESP32.

Menyalakan Bohlam 220V dengan Tombol Tekan
Selama kamu menahan tombol, bohlam 220 volt sungguhan tetap menyala, dan mati begitu kamu melepasnya. Sinyal kecil Arduino tidak bisa langsung menyalakan bohlam, jadi relay, sakelar yang dikendalikan

Lampu Pintar ESP32 (PIR + LDR + Relay + OLED)
Ubah lorong, kamar mandi, atau gudangmu menjadi lampu pintar dengan ESP32! Dengan sensor gerak PIR, sensor cahaya LDR, dan modul relay, kita membuat skenario klasik "lampu menyala ketika ada gerakan dalam gelap"; jika sudah terang, gerakan TIDAK menyalakan lampu, jadi energi hemat di siang hari. Lampu menyala 30 detik; jika gerakan berlanjut, timer diulang. OLED SSD1306 menampilkan status dengan font besar (NYALA / SIANG / MENUNGGU) dan hitung mundur.

Pencatat Data Suhu ESP32 (DHT22 + RTC DS1307 + microSD + OLED)
Buat pencatat suhu bercap waktu dengan ESP32! Baca suhu/kelembapan DHT22 setiap menit, ambil waktu sebenarnya dari RTC DS1307, dan catat ke kartu microSD sebagai CSV. OLED menampilkan suhu langsung (font besar), kelembapan, cap waktu, dan penghitung catatan. File /temp_log.csv bisa dibuka di Excel, Google Sheets, atau Python pandas; cocok untuk rumah kaca, suhu kamar, data laboratorium, penyimpanan makanan, atau sarang lebah.

HTTPClient + API Cuaca ESP32 (dengan Layar LCD)
Di proyek ini, kita memakai ESP32 untuk melakukan panggilan REST API ke API cuaca (wttr.in) lewat internet dengan HTTPClient.h. Kita mengurai respons JSON yang diterima dengan ArduinoJson v7 dan menampilkan kota, suhu, kelembapan, cuaca, dan informasi angin di layar LCD I2C dalam bahasa Turki dan Inggris. wttr.in gratis dan tidak butuh kunci API; kamu cukup memasukkan nama kota apa pun untuk mengambil kondisi cuaca terkini kota itu. Data diperbarui otomatis setiap 30 menit.
Artikel lainnya
Aplikasi BlueGrays
Rakit rangkaian ini langkah demi langkah di ponselmu
Skema pengkabelan, kode, dan daftar komponen dalam satu layar. 200+ proyek Arduino, ESP32, dan Pico siap dibuat.
Pindai dengan ponselmu
Arahkan kamera ke kode ini dan toko aplikasi di ponselmu akan terbuka.
atau buka toko aplikasi

