Kode Program Membaca Kelembapan Tanah YL69 Arduino NodeMCU
Berikut adalah kode program untuk membaca kelembapan tanah menggunakan sensor YL69 pada Arduino maupun NodeMCU. Nilai yang dihasilkan oleh program ini adalah dalam bentuk persentase. Kode ini telah dilengkapi dengan fungsi sampling dan kalibrasi batas atas dan batas bawah yang sangat membantu untuk mendapatkan data pembacaan yang paling akurat dan stabil.
Bagaimana cara menggunakannya?
Sangat sederhana sekali, kamu cukup copy paste kodenya ke Arduino. Untuk pengkabelan, kamu harus menghubungkan pin VCC sensor ke Pin 8, dan pin Data analog pada sensor ke pin A0. Kemudian, untuk kalibrasi kamu harus menyiapkan media uji berupa tanah basah. Untuk mendapatkan nilai kalibrasi batas atas atau val_max, kamu harus menguji sensornya pada media yang kamu anggap benar-benar basah atau yang mewakili kelembapan 100%. Begitu juga untuk nilai batas bawah atau val_min, kamu harus menyelupkan sensornya ke media tanah yang kamu anggap paling kering atau mewakili kelembapan 0%. Bagaimana caranya tau? bisa menggunakan alat uji kelembapan tanah analog yang banyak dijual di toko-toko pertanian.
Ketika mencelupkan ke tanah basah, lihat output kalib pada serial monitor catat nilai yang paling stabil. Begitu juga pada tanah kering, catat berapa nilai kalibnya. Setelah mendapatkan nilai kalib yang pas untuk batas atas dan batas bawah, ganti nilai val_max dengan kalib basah, dan val_min dengan kalib kering. Upload ulang kodenya ke Arduino maupun NodeMCU, dan voila....
Bagaimana agar nilai persennya menjadi RH (Relative Humidity) ?
Caranya adalah satu kata yaitu rumit. Banyak orang yang salah kaprah dengan sensor YL69 ini, sensor ini bukan sensor kelembapan yang dapat mengukur kelembapan RH maupaun udara. Ini adalah sensor kelembapan analog murah meriah yang nilai outputnya tidak ada standarnya, alias suka suka kita saja. Sensor hanya mengeluarkan nilai analog dan tugas kita yang mengkalibrasi nilai analog tersebut menjadi range kelembapan seperti basah, sedang, kering maupun nilai dalam bentuk persen.
So... bagi teman-teman yang mumet karena masalah ini, saya sarankan ganti sensor saja ke sensor berjenis SHT. Tapi harganya agak sedikit mahal, paling murah sekitar 175Rban. Ada juga yang versi kaweannya, as always. Nama yang kawean umumnya berkode DHT, harganya relatif murah hingga setengah dari harga yang asli (70Rban >).
Oke, sekian catatan singkat nan padat ini.. semoga bermanfaat.
Eh, btw kodenya lupa... ini ya
// Pin analog di A0, ini untuk power #define PIN_YL69 D8 unsigned int getAnalog(){ const int sampling = 100; unsigned int analog = 0; for (int i = 0; i < sampling; i++){ digitalWrite(PIN_YL69, HIGH); int nilaiSensor = analogRead(A0); digitalWrite(PIN_YL69, LOW); analog += nilaiSensor; } analog = analog / sampling; return analog; } uint8_t getSoil(){ /* Nilai kalibrasi */ /* HARUS DIATUR SENDIRI */ // Batas atas const int val_max = 730; // Batas bawah const int val_min = 108; const int sampling = 100; unsigned long analog = 0; for (int i = 0; i < sampling; i++){ digitalWrite(PIN_YL69, HIGH); int nilaiSensor = analogRead(A0); digitalWrite(PIN_YL69, LOW); analog += nilaiSensor; } analog = analog / sampling; if(analog > val_max){ analog = val_max; } else if(analog < val_min){ analog = val_min; } uint8_t persen = map(analog,val_max,val_min,0,100); return persen; } void setup(){ pinMode(PIN_YL69, OUTPUT); digitalWrite(PIN_YL69, LOW); } void loop(){ Serial.print("Kalib: "); Serial.print(getAnalog()); Serial.print(" - "); Serial.print("Persen: "); Serial.print(getSoil()); Serial.println('%'); delay(1000); }
Komentar
cara membuatnya bagaimana ?
cara membuatnya bagaimana ?
assalamu'alaikum ..
cara membuatnya bagaimana ?
Perakitan sensor kelembapan tanah
Halo,
Tutorial lengkap untuk perakitan sensor kelembapan tanah dengan Arduino ada di sini: https://tutorkeren.com/artikel/tutorial-menggunakan-sensor-kelembaban-ta...
Silahkan dicoba apabila ada kesulitan bisa diskusi lagi
HTSL://HIGH THINKING SIMPLE LIVING . ME
kak
kalau manfaat dari alat ini ? selain mengukur kwlwmbapan tanah
kak maaf lagi ..
apa-apa saja manfaat yang bisa diperoleh dari alat ini ? selain mengukur kelembapan tanah
Manfaat alat
Manfaat yang mana nih?
YL-69 hanya untuk kelembapan analog aja, kalau yg SHT31 atau DHT11 bisa untuk suhu dan kelembapan udara digital
HTSL://HIGH THINKING SIMPLE LIVING . ME
nilai val_max & val_min
permisi gan, mau nanya. ini kodingan buat kalibrasi sesor yl-69 kan? nah cara nentuin nilai angka kaya 'val_max =730 & val_min=108' (nilai yg agan buat) untuk pertama kali gimana ya? kita asal aja gitu gan? jadi itu nilai perkiraan? terimakasih gan. mohon bantuannya
Kalibrasi Sensor Kelembapan Tanah
Halo Mas Dika,
Maaf late reply, untuk nilai yg val_max dan val_min itu didapatkan dari pembacaan pada kondisi paling basah dan kondisi paling kering. Saya mencobanya dengan menggunakan tanah basah yang saya anggap basah (atau kalau perlu kalibrasi yg diakui bisa menggunakan tanah basah yg sudah diukur dulu dengan alat ukur yg diakui) untuk val_max, dan untuk val_min juga sama cuma tanahnya tanah yang saya anggap paling kering.
Kalau masnya bingung, bisa gunakan nilai val_max dan val_min yang saya pakai, itu sudah mewakili tanah basah dan tanah kering.
Sekian semoga membantu. Kalau kurang jelas bisa diskusi lagi.
HTSL://HIGH THINKING SIMPLE LIVING . ME
fungsi uint8_t
oh okee terimakasih mas, saya mengerti. oiya mas kalo uint8_t itu gunanya untuuk apa ya mas? maksudnya pake uint8_t agar apa?
kenapa pakai uint8_t
Halo,
untuk alasan kenapa pakai uint8_t adalah supaya lebih hemat memori. uint8_t itu adalah singkatan dari unsigned 8 bit int, jadi nilai maksimal yg dapat dipegang adalah 255. Itu pada fungsi getSoil() kan yang direturn nilai dalam persen, yang artinya tidak lebih dari 100, jadi daripada buang-buang memori lebih baik pakai ukuran yang pas, ukuran 255 / 1 byte / uint8_t
begitu ceritanya
HTSL://HIGH THINKING SIMPLE LIVING . ME
terimakasih
oh oke mas saya paham, terimakasih mas atas ilmunya, semoga berkah