● online
- E18-D80NK Infrared Obstacle Avoidance Sensor Proxi....
- Kabel Jumper 10cm Dupont Pelangi 10 cm Female to F....
- ESP32 ESP-32 Wireless Module ESP32-S ESP-WROOM-32 ....
- Kabel Jumper arduino Dupont Pelangi 30 cm Male to ....
- Kapton Tape Polymide Film 50mm Polimida 50 mm Isol....
- Kabel Jumper 10cm Dupont Pelangi 10 cm Male to Mal....
- Raspberry Pi 4 Model B 8GB Original UK E14 Raspi 4....
- LM35DZ Sensor Suhu - LM35....
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
Cara Bikin Sistem Monitoring Kelembapan Tanah Berbasis Arduino Uno dan Sensor YL69
Pernah nggak sih kamu lagi sayang-sayangnya sama tanaman kesayangan, eh tiba-tiba malah layu gara-gara lupa disiram? Atau justru sebaliknya, tanamannya mendadak busuk karena kamu kebanyakan ngasih air (overwatering)? Masalah klasik ini sering banget bikin kita serba salah dalam merawat tanaman!
Nah, buat mengatasi masalah ini, kita bisa memanfaatkan teknologi mikrokontroler. Kalau sebelumnya kita pernah membahas proyek seru lainnya seperti bikin sistem monitor volume air tandon otomatis pakai arduino uno dan sensor ultrasonik, kali ini kita bakal bikin proyek prototipe “Sistem Monitoring Kelembaban Tanah”.
Proyek ini dirancang menggunakan Arduino Uno, sensor kelembaban tanah YL-69, LCD I2C 16×2, dan buzzer. Dengan sistem ini, kondisi kadar air media tanam bisa kamu pantau secara real-time tanpa perlu menebak-nebak lagi!

Alat dan Bahan
| Komponen | Jumlah | Keterangan |
| Arduino Uno ATmega328P | 1 Unit | Mikrokontroler utama sebagai pusat pemrosesan data sistem |
| Sensor Kelembaban Tanah YL-69 | 1 Unit | Sensor resistif untuk membaca kadar air/kelembaban tanah |
| Layar LCD I2C 16×2 | 1 Unit | Modul penampil data visual 2 baris 16 karakter (Alamat I2C: 0x20) |
| Buzzer Aktif 5V | 1 Unit | Transducer suara sebagai indikator alarm peringatan |
| Kabel dan Sumber Daya | Secukupnya | Kabel penghubung rangkaian dan catu daya sistem |
Skematik Rangkaian

Untuk merangkai komponen-komponen di atas, kamu bisa mengikuti panduan koneksi pin berikut ini:
- Sensor Kelembaban Tanah YL-69:
- Pin VCC dihubungkan ke pin 5V atau 3.3V pada Arduino Uno.
- Pin GND dihubungkan ke pin GND Arduino Uno.
- Pin Output Analog (AO) dihubungkan ke Pin Analog A0 pada Arduino Uno.
- LCD I2C 16×2:
- Pin VCC dihubungkan ke pin 5V Arduino Uno.
- Pin GND dihubungkan ke pin GND Arduino Uno.
- Pin SDA dihubungkan ke pin SDA Arduino Uno.
- Pin SCL dihubungkan ke pin SCL Arduino Uno (menggunakan komunikasi I2C dengan alamat
0x20).
- Buzzer Aktif:
- Pin positif (anoda) dihubungkan ke Pin Digital 8 pada Arduino Uno.
- Pin negatif (katoda) dihubungkan ke pin GND Arduino Uno.
Cara Kerja dan Pemrograman
Sistem ini bekerja dengan cara membaca sinyal analog dari sensor YL-69. Pembacaan nilai analog ADC (Analog-to-Digital Converter) pada sistem berada pada rentang 0 hingga 1023. Nilai analog mentah tersebut kemudian dikonversi menjadi skala persentase kelembaban tanah (0–100%) dengan menggunakan fungsi map().
Berdasarkan nilai ambang batas (threshold) pada simulasi, sistem membagi kondisi tanah menjadi 3 kategori:
- Kering: Nilai ADC < 400. Layar LCD akan menampilkan tulisan
"TANAH KERING!!", dan buzzer aktif berbunyi 2 kali sebagai alarm peringatan. - Sedang: Nilai ADC 400–699. Layar LCD menampilkan
"Kondisi SEDANG", dan buzzer dalam kondisi mati (LOW). - Optimal / Basah: Nilai ADC >= 700. Layar LCD menampilkan
"Kondisi OPTIMAL", dan buzzer dalam kondisi mati (LOW).
Selain menampilkan informasi pada layar LCD, data pembacaan nilai sensor dan persentase kelembaban juga dikirimkan ke Serial Monitor agar pengguna bisa memantau kondisi data secara numerik melalui komputer.
Berikut adalah contoh blok kode program Arduino (C/C++) yang digunakan:
```cpp
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD I2C 16x2
LiquidCrystal_I2C lcd(0x20, 16, 2);
// Konfigurasi pin
const int SOIL_PIN = A0;
const int BUZZER_PIN = 8;
// Batas nilai kelembapan
const int BATAS_BASAH = 700;
const int BATAS_SEDANG = 400;
void setup() {
// Memulai komunikasi Serial Monitor
Serial.begin(9600);
// Mengatur pin buzzer sebagai output
pinMode(BUZZER_PIN, OUTPUT);
// Inisialisasi LCD
lcd.init();
lcd.backlight();
// Tampilan awal saat sistem dinyalakan
lcd.setCursor(0, 0);
lcd.print("Soil Monitor");
lcd.setCursor(0, 1);
lcd.print("Loading...");
delay(1000);
}
void loop() {
// Membaca nilai analog dari sensor YL-69
int nilaiSensor = analogRead(SOIL_PIN);
// Mengubah nilai ADC menjadi persentase kelembapan
int persenLembap = map(nilaiSensor, 0, 1023, 0, 100);
persenLembap = constrain(persenLembap, 0, 100);
// Menampilkan data pada Serial Monitor
Serial.print("Nilai ADC: ");
Serial.print(nilaiSensor);
Serial.print(" | Kelembapan: ");
Serial.print(persenLembap);
Serial.println("%");
// Membersihkan tampilan LCD
lcd.clear();
// Kondisi tanah kering
if (nilaiSensor < BATAS_SEDANG) {
lcd.setCursor(0, 0);
lcd.print("TANAH KERING!!");
lcd.setCursor(0, 1);
lcd.print("Lembap:");
lcd.print(persenLembap);
lcd.print("%");
// Buzzer berbunyi dua kali
digitalWrite(BUZZER_PIN, HIGH);
delay(300);
digitalWrite(BUZZER_PIN, LOW);
delay(300);
digitalWrite(BUZZER_PIN, HIGH);
delay(300);
digitalWrite(BUZZER_PIN, LOW);
}
// Kondisi kelembapan sedang
else if (nilaiSensor >= BATAS_SEDANG &&
nilaiSensor < BATAS_BASAH) {
digitalWrite(BUZZER_PIN, LOW);
lcd.setCursor(0, 0);
lcd.print("Kondisi SEDANG");
lcd.setCursor(0, 1);
lcd.print("Lembap:");
lcd.print(persenLembap);
lcd.print("%");
}
// Kondisi kelembapan optimal
else {
digitalWrite(BUZZER_PIN, LOW);
lcd.setCursor(0, 0);
lcd.print("Kondisi OPTIMAL");
lcd.setCursor(0, 1);
lcd.print("Lembap:");
lcd.print(persenLembap);
lcd.print("%");
}
// Jeda sebelum pembacaan berikutnya
delay(1000);
}
```
Secara garis besar, fungsi setup() bertugas melakukan inisialisasi komunikasi serial, mengatur pin output buzzer, serta mengaktifkan layar LCD I2C saat alat pertama kali dinyalakan. Sementara itu, fungsi loop() bertugas menjalankan proses utama secara berulang, mulai dari membaca sinyal sensor, mengonversi nilai, mengirimkan data ke Serial Monitor, menguji kondisi kelembaban berdasarkan threshold, hingga memperbarui tampilan LCD dan indikator suara buzzer.
Pengujian dan Hasil Simulasi Tinkercad

Pengujian seluruh sistem ini dilakukan secara virtual menggunakan platform simulasi Tinkercad. Pada platform tersebut, kondisi tanah disimulasikan menggunakan pengatur slider kelembaban virtual.
Berikut adalah rangkuman hasil pengujian fungsi sensor, LCD, dan buzzer pada berbagai kondisi:
| Kondisi Tanah | Nilai ADC (0–1023) | Persentase Kelembapan | Status Tampilan LCD | Status Buzzer |
| Kering | 0–399 | 0%–38% | TANAH KERING!! | ON (Pola bunyi 2x) |
| Sedang | 400–699 | 41%–64% | Kondisi SEDANG | OFF |
| Optimal | 700–870 | 68%–85% | Kondisi OPTIMAL | OFF |
Perlu diperhatikan bahwa terdapat keterbatasan bawaan (limitation) pada platform simulator Tinkercad, di mana batas maksimum pembacaan sensor tanah virtual berada pada nilai ADC 870 (setara dengan 85% kelembapan). Hal ini sepenuhnya normal pada platform simulator Tinkercad dan bukan disebabkan oleh kerusakan program atau kesalahan penulisan kode.
Tips Penting Implementasi pada Hardware Fisik
Jika kamu berniat merakit proyek ini langsung menggunakan komponen hardware fisik (dunia nyata), ada catatan teknis penting yang wajib kamu ketahui.
Terdapat perbedaan logika antara sensor virtual Tinkercad dengan modul sensor YL-69 fisik asli. Sensor YL-69 bekerja berdasarkan perubahan resistansi listrik pada media tanah, sehingga karakteristik pembacaannya perlu dipahami sebelum diterapkan pada hardware. Untuk mengetahui spesifikasi dan karakteristik modul secara lebih lengkap, kamu bisa melihat datasheet dan referensi sensor YL-69 sebagai panduan tambahan sebelum melakukan kalibrasi dan pengujian.
- Tinkercad Virtual: Bekerja secara linier (semakin basah tanah, nilai ADC semakin tinggi).
- Sensor YL-69 Fisik: Bekerja berbasis resistansi listrik. Saat tanah kering, resistansi tanah sangat tinggi sehingga menghasilkan output nilai ADC yang tinggi (mendekati 1023). Sebaliknya, saat tanah basah, konduktivitas air membuat resistansi rendah sehingga output nilai ADC menjadi rendah.
Oleh karena itu, saat diimplementasikan ke hardware fisik, kamu harus membalik logika pada fungsi map() di dalam kode program menjadi:
persenLembap = map(nilaiSensor, 1023, 0, 0, 100);
Selain itu, logika pengkondisian threshold if-else juga harus disesuaikan, di mana status tanah kering justru akan dipicu saat nilai ADC naik di atas batas tertentu (misalnya > 700).
Pro-Tip Sobat Maker: Buat kamu yang merakit di hardware fisik dan layar LCD-nya menyala tapi nggak menampilkan karakter (hanya berupa kotak putih atau gelap), coba putar potensiometer biru penyesuai kontras yang ada di bagian belakang modul LCD I2C. Selain itu, pastikan kamu sudah menginstal library LiquidCrystal_I2C melalui Menu Library Manager di Arduino IDE sebelum melakukan compile program!
Kesimpulan
Sistem Monitoring Kelembaban Tanah Berbasis Arduino Uno dan Sensor YL-69 ini merupakan solusi praktis untuk memantau kondisi kadar air media tanam secara real-time. Dengan adanya indikator LCD dan alarm buzzer, kita dapat mendeteksi kondisi tanah kering secara presisi sehingga mencegah tanaman dari bahaya kekurangan air maupun kelebihan air (overwatering).
Gimana, seru dan mudah dipahami kan proyeknya? Yuk, Sobat Maker langsung cobain buat proyek ini di simulator Tinkercad atau rakit langsung pakai komponen fisik kamu sendiri! Selamat mencoba dan happy making!
Cara Bikin Sistem Monitoring Kelembapan Tanah Berbasis Arduino Uno dan Sensor YL69
Pada postingan artikel kali ini akan mengupas tentang penggunaan LCD 20×4 pada Arduino. Maksud dari 20×4 adalah lcd ini... selengkapnya
Kebocoran gas LPG di dapur sering kali tidak kita sadari sampai baunya menyengat atau bahkan saat sudah terlambat. Kondisi ini... selengkapnya
Halo Sobat! Punya tanaman kesayangan di rumah atau lagi berniat mencoba proyek smart garden? Sering kali kita merasa bingung menentukan... selengkapnya
Android merupakan sistem operasi untuk perangkat seluler dengan pengguna terbesar di dunia termasuk di Indonesia, dengan market share 90%... selengkapnya
Kali ini kita akan mencoba menggunakan sensor DHT11 pada ESP32. Seperti yang kita ketahui sensor DHT11 ini berfungsi untuk... selengkapnya
Sensor MQ-2 merupakan sensor yang berfungsi untuk mendeteksi kandungan gas seperti Lpg, CO, asap dan masih banyak lainnya. Sensor... selengkapnya
Mengendalikan LED dengan tombol bisa dilakukan dengan berbagai cara. Kali ini, kamu akan mempelajari dua metode umum dan sangat berguna:... selengkapnya
Pada artikel ini akan membahas bagaimana cara menangani motor stepper dan uln2003 tentunya masih menggunakan Arduino sebagai kontrolernya. Stepper... selengkapnya
Pada postingan sebelumnya sudah membahas tentang kontrol relay menggunakan Arduino di sini. Nah untuk kali ini saya akan membahasnya... selengkapnya
Optocoupler atau photo interrupter merupakan sensor optik slot tipe U yang menggunakan cahaya infra merah (IR) untuk mendeteksi ada atau... selengkapnya
Kabel Jumper Dupont Pelangi 30cm female to Female 1 lembar = 40 kabel
Rp 13.500Mini Solderless Breadboard 400 Tie Points adalah breadboard 400 titik lubang, dengan ukuran yang compact sangat cocok untuk anda yang… selengkapnya
Rp 7.800Kabel jumper Dupont untuk jumper Arduino atau Raspberry Pi 20 cm Male to Male 1 lembar = 40 kabel
Rp 11.300Deskripsi Produk “LED Dot Matrix Display dengan 32×8 pixel, berwarna Merah, menggunakan IC MAX7219 sebagai driver dan dapat dikoneksikan ke… selengkapnya
Rp 47.500Kabel Jumper Dupont Pelangi 10 cm female to female 1 lembar = 40 kabel
Rp 9.000Bosan dengan modul arduino yang kalian punya, saatnya mencoba modul programmer yang lain yah ini dia RASPBERRY PI 4 COMPUTER… selengkapnya
Rp 1.199.0001 X LDR Sensor 5mm Cahaya 5528 Light Dependent Resistor LDR
Rp 4.0002000W SCR Electronic Voltage Regulator Speed Controller Dimmer Thermostat Aplikasi : Kontrol temperature heater, kontrol kecepatan fan/bor tangan/gurinda tangan, kompor… selengkapnya
Rp 19.500Specifications: 1. supports sampling costs (KHz): 8/11.025/12/16/22.05/24/32/44.1/48 2. 24-bit DAC output, dynamic range aid: 90dB, SNR aid: 85dB 3. fully… selengkapnya
Rp 17.800Modul sensor tegangan AC bolak balik 3 fasa ini menggunakan optocoupler sehingga tegangan input (AC) tidak akan mengganggu/membahayakan tegangan output… selengkapnya
Rp 57.000Cara Bikin Sistem Monitoring Kelembapan Tanah Berbasis Arduino Uno dan Sensor YL69
Kategori
Artikel Terkait
-
Bikin Sistem Parkir Otomatis dengan Penghitung Kendaraan dan Indikator Slot Kosong
-
Rancang Sistem Pendeteksi Kebakaran dengan Kipas Otomatis dan Alarm Peringatan
-
Bikin Alat Monitoring Konsumsi Listrik Rumah Secara Real-Time Berbasis ESP32
-
Bikin Sistem Keamanan Pintu Berbasis RFID dengan Notifikasi Telegram
-
Rancang Sistem Penyiram Tanaman Otomatis Berbasis ESP32 dengan Monitoring Smartphone

Saat ini belum tersedia komentar.