[TUTORIAL] Menggunakan Sensor Kelembaban Tanah YL-39 dan YL-69 pada Arduino
Pendahuluan
Untuk aplikasi tertentu, misalnya pada penyiraman tanaman secara otomatis, kita memerlukan informasi mengenai kelembaban tanah untuk tanaman kita. Karena pengaruh suhu lingkungan, proses penguapan akan berpengaruh pada tingkat kelembaban tanah.
Saat ini telah banyak sensor kelembaban tanah yang beredar di pasaran dengan harga yang relatif terjangkau, salah satunya adalah kombinasi dari YL-39 (modul pengkondisian sinyal) dan YL-69 (probe sensor). Amatilah Gambar 1.
Gambar 1. Keterangan sensor kelembaban tanah
Modul sensor ini memiliki 4-pin, yaitu GND (untuk ground), VCC (3.3 - 5Volt), AO (keluaran analog yang akan dibaca oleh Arduino), dan DO (dapat diatur sensitivitasnya menggunakan knb pengatur, dan menghasilkan logika digital HIGH/LOW pada level kelembaban tertentu). Untuk saat ini, hanya tiga pin yang kita manfaatkan, yaitu GND, VCC dan AO.
Hardware
Rangkailah sensor dan Arduino seperti pada Gambar 2.
Gambar 2.Pemasangan sensor kelembaban tanah pada Arduino
Dalam penggunaan jangka panjang, memberikan tegangan terus-menerus pada probe akan mempercepat rusaknya probe tersebut, terutama saat tanah dominan dalam keadaan lembab. Oleh karena itu, salah satu alternatifnya adalah menempatan pin VCC pada salah satu pin digital (pada tutorial kali ini di pin 6), dan akan diaktifkan sesaat sebelum sensor mengambil data kelembaban.
Software
Bukalah IDE Arduino. Ketik dan upload-lah skrip di bawah ini. Keterangan program telah disertakan sebagai komentar.
int sensorPin = A0; // pin sensor int powerPin = 6; // untuk pengganti VCC void setup() { // jadikan pin power sebagai output pinMode(powerPin, OUTPUT); // default bernilai LOW digitalWrite(powerPin, LOW); // mulai komunikasi serial Serial.begin(9600); } void loop() { Serial.print("Nilai kelembaban: "); Serial.println(bacaSensor()); // baca setiap 5 detik delay(5000); } int bacaSensor() { // hidupkan power digitalWrite(powerPin, HIGH); delay(500); // baca nilai analog dari sensor int nilaiSensor = analogRead(sensorPin); digitalWrite(powerPin, LOW); // makin lembab maka makin tinggi nilai outputnya return 1023 - nilaiSensor; }
Bukalah serial monitor dan amati hasilnya. Berikut contohnya:
Nilai kelembaban: 50
Nilai kelembaban: 52
Nilai kelembaban: 627
Nilai kelembaban: 635
Nilai kelembaban: 50
Makin lembab, maka sensor akan mengeluarkan nilai lebih besar. Demikian tutorial kali ini.. Semoga bermanfaat
Komentar
serial monitor
Cek Baud rate
Halo mas, biasanya kalau tidak mau muncul di serial itu baud ratenya belum diset. Coba pada serial monitur arduino pada bagian pojok kanan bawah disetting dulu baud ratenya ke 9600.
HTSL://HIGH THINKING SIMPLE LIVING . ME
Satuan Hasil
Menampilkan data sensor kelembapan dalam persen
Halo Mas,
Untuk menampilkan data sensor kekembapan dalam persen cara yg paling mudah memang menggunakan fungsi
map
, mungkin mas bisa coba potongan kode ini:float persen = map(nilaiAnalogKelembapan,0,1023,0,100);
Saya selalu pakai itu untuk menampilkan dalam bentuk persen, silahkan dicoba jika masih tidak mau silahkan reply lagi
HTSL://HIGH THINKING SIMPLE LIVING . ME
Kodingan Fungsi bacaSensor()
Permisi gan mau bertanya, kenapa fungsi bacaSensor() yang agan buat harus memakai return 1023 - (nilai Sensor), padahal kalau diliat sekilas itu akan membalik nilai yang semula nya sensor membaca kelembaban, akan terbaca menjadi kering.
Sebagai contoh, misal nilai kelembaban tanah = 700, maka nilai fungsi bacaSensor(1023-700=323), malah kebaca mendekati nilai kering, padahal sebenarnya sensor membaca nilai tersebut adalah lembab.
Mohon penjelasannya, terimakasih
Nilai sensor kelembapan YL-69
Halo,
nilai sensornya memang sengaja dibalik untuk mempermudah pembacaan dikondisi normal. Kalau tidak dibalik, pada kondisi normal nilainya akan terlalu kecil jadi sulit untuk dilakukan mapping ke persentase. Kondisi normal misalnya pada tanah biasa, tetapi jika sensor mau dipasang ke kondisi super basah (sepenuhnya nyelup ke air) maka tidak perlu dibalik nilainya.
HTSL://HIGH THINKING SIMPLE LIVING . ME
Mekanisme Sensor YL-69
Baik, terima kasih banyak mas atas penjelasannya.
Kalau boleh saya bertanya lagi, mas tau tidak bagaimana mekanisme pembacaan sensor YL-69. Apakah benar bahwa jika nilai kelembaban yang terbaca besar, maka resistansi yang dihasilkan oleh sensor besar juga sehingga output yang dihasilkan juga besar juga. Rentang 0-1023 itu merupakan besar nilai output analog sensor tsb sekitar 8 bit??
Mohon koreksian nya kalau saya salah.
Rentang 1023 10 Bit ADC
Halo,
Untuk mekanisme pembacaan tipe sensor YL-69, ya memang seperti itu semuanya hanya soal resistensi. Sama saja dengan sensor analog lainnya. Dia mengukur nilai voltase yang berubah2 sesuai dengan kondisi hambatan dan arus (V = I x R). Hambatan dan arus ini tentunya berubah karena lingkungan, ketika bagian pengindera (probe) yang berbentuk seperti garpu itu dicelupin, maka ujung anoda dan katoda mulai bisa menghantarkan arus listrik sesuai dengan tingkat kelembapan (biasanya semakin lembap semakin mudah arus mengalir). Nilai voltase inilah yang dijadikan acuan oleh si ADC untuk mengetahui nilai kelembapan.
Untuk rentang 0-1023 itu karena AVR yang dipakai Arduino (ATMega 328) memiliki resolusi ADC sebesar 10Bit (2 ^ 10 = 1024) karena mulai dari 0 jadinya sampai 1023. Bukan bergantung pada nilai output sensor, nilai 1023 itu didapat dari nilai pembaca yang dalam hal ini adalah Arduino. Jadi si Arduino hanya bisa memapping/memetakan nilai 0 - 5V menjadi 0 - 1023. Biasanya semakin tinggi nilai resolusi ADC (pembaca) maka semakin akurat pembacaannnya.
Begitu kurang lebih, semoga bisa memperjelas
HTSL://HIGH THINKING SIMPLE LIVING . ME
Pembacaan Sensor
Permisi mas, mau bertanya sedikit, mudah-mudahan mas tidak bosan sharing ilmu di forum ini.
Pembacaan sensor YL-69 saya kok, semakin lembab maka semakin kecil yaa, apa kira-kira penyebab error nya mas, saya sudah cari datasheet dan komponen dari sensor tsb, namun saya masih belum mendapat titik terang dari permasalahan yang saya hadapi.
Tegangan masukan bagi sensor = 3,3v (saya menggunakan wemos).
Kodingan :
void setup() {
Serial.begin(115200);
}
void loop() {
delay(5000);
int yl = analogRead(A0); //pembacaan nilai sensor
int soil = map(yl,0,1023,0,100); //perubahan rentang nilai analog menjadi persentase
Serial.print("Kelembaban Tanah : ");
Serial.println(soil);
}
Baca Sensor Kelembapan YL-69 Wemos
Halo Mas,
Terimakasih sudah berkunjung kesini
Kebetulan sekali, saya juga ada project yang memerlukan pengukuran kelembapan tanah. Besok saya juga mau coba pasang YL-69 di ESP8266... tapi board saya pakai NodeMCU. Jadi saya dapat gambaran permasalahan yang mungkin terjadi jika menggunakan YL-69 pada board dengan logic 3.3V. Kodingan yang rencananya akan saya pakai untuk testing besok adalah kodingan seperti di tutorial diatas. Maka dari itu, silahkan mas pakai juga kodingan diatas, dan bandingkan hasilnya, apakah masih tetap mengecil atau tidak.
Silahkan dicopy biar tidak scroll keatas lagi:
HTSL://HIGH THINKING SIMPLE LIVING . ME
Percobaan
Kode diatas tidak memberikan efek yang diharapkan, saat sudah dialirkan air, respon sensor tidak naik, cenderung stabil.
apakah ini kodingan untuk ardiuno atau nodemcu esp8266
izin bertanya, apakah kodingan tersebut untuk mikrokontroler ardiuno atau node mcu, mohon penjelasannya, terimakasih
Tentang Sensor YL-69
Halo mas, selamat siang, salam sejahtera bagi kita semua.
Kebetulan sekali, saya jga sedang meniliti sensor tsb, namun saya juga menemukan error, saat sensor di tancapkan ke tanah dan diberi air, nilai sensor menjadi tidak stabil, terkadang naik, terkadang turun. apa yaa mas penyebabnya?? Mohon pencerahannya.
Vendor sensor kelembapan YL-69
Halo, selamat siang trimakasih sudah berkunjung
Untuk sensor jenis ini memang agak sedikit tricky penggunaannya mas, hal ini karena ada banyak sekali vendor yang buat dengan harga yang sangat super murah jadi berimbas pada kualitas chip komparator maupun probenya.
Berdasarkan pengalaman kita disini, hal ini bisa diatasi melalui kalibrasi pada kode program seperti misalnya menetapkan nilai batas atas dan batas bawah yang normal, kemudian menambahkan sampling dengan cara membaca misalnya 100 kali kemudian dirata-ratakan untuk menghindari kesalahan pembacaan. Untuk mendapatkan nilai normalnya, kita bisa test pada kondisi yang ideal untuk batas atas dan batas bawah. Misalnya, untuk menentukan batas atas mas bisa celupkan ke tanah yang basahnya mas anggap sebagai basah yang paling maksimal, dan begitu juga untuk batas keringnya.
Perlu dicatat, beberapa chip komparator mungkin mengalami gangguan apabila dicelup ke media yang tidak ideal seperti misalnya air. Karena sensor jenis ini umumnya didesain untuk membaca kelembapan tanah, jadi untuk lebih pastinya harus diuji menggunakan tanah yang basah, bukan air saja.
Untuk kode program dari hasil eksperimen kita sedang kita tulis di tutorial terpisah, stay tune
HTSL://HIGH THINKING SIMPLE LIVING . ME
Mengubah nilai sensor
kang cara mengubah nilai yang terbaca sensor YL 69 ini agar bisa menjadi dalam % RH (relatif Humidity) yaitu satuan international gmna ya?? mohon bantuannya nuhun
Baca nilai kelembapan dalam RH
Halo,
Coba masuk sini gan, https://tutorkeren.com/artikel/kode-program-membaca-kelembapan-tanah-yl6...
HTSL://HIGH THINKING SIMPLE LIVING . ME
sensor rusak?
misi gan, mau nanya
sensor saya walau sudah di celup air kok ga bisa sampe 1023 ya nilainya? padahal coding dah sama dengan yang di atas dan kalo sudah dicelup paling dapet sekitar 700an. apakah sensor saya rusak atau emang segitu kemampuannya?
Baca Sensor Kelembapan YL69
Halo Gan,
silahkan mampir ke sini gan, disini ada penjelasan dan koding terbaru untuk jenis sensor ini.
https://tutorkeren.com/artikel/kode-program-membaca-kelembapan-tanah-yl6...
Semoga bermanfaat.
HTSL://HIGH THINKING SIMPLE LIVING . ME
Sensitivitas sensor
Permisi, mo nanya untuk sensitivitas sensor yl-69 apa bisa di atur? Soalnya saya pakai buat ngukur kadar air biji bijian (gabah, jagung) ga bisa kebaca. Hasilnya tetep dibaca 0%. Terimakasih...
Atur sensitivitas YL-69
Halo,
Untuk sensor YL-69 tidak didesain untuk mengukur kelembapan/kadar air biji-bijian. Sebagai gantinya mungkin bisa pakai sensor kapasitan.
HTSL://HIGH THINKING SIMPLE LIVING . ME
apakah ada kodingan untuk mikrokontoler nodemcu esp8266
selamat siang, izin bertanya min, ssaya menggunakan nodemcu esp8266, apakah kodingan tersebut bisa digunakan pada nodemcu esp8266? jika tidak bisa, minta bantuannya untuk kodingan nodemcu esp8266, terimkasih