Anda di sini

Pemrograman

Kode Program Membaca Kelembapan Tanah YL69 Arduino NodeMCU

Aditya Suranata - 06 November 2017 22:25:09 11

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.... Emo 59

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 Biggrin

// 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);
}

Produk Terkait
Sensor Kelembapan Tanah YL-69 Module Soil Moisture

Sensor Kelembapan Tanah YL-69 Module Soil Moisture

CMP230317-63

Sensor kelembapan tanah analog dengan chip komparator yang sangat stabil, sensor ini dapat bekerja pada logic 3.3V hingga 5V jadi sangat cocok untuk...

19,000 IDR Beli

DHT22 Digital Temperature and Humidity Sensor

DHT22 Digital Temperature and Humidity Sensor

CMP230317-35

DHT22 Digital Temperature and Humidity Sensor, sensor suhu dan kelembapan digital murah merakyat, jauh lebih presisi, lebih akurat dari DHT11.

69,000 IDR Beli

SHT31-DIS Digital I2C Sensor Suhu & Kelembapan RH...

SHT31-DIS Digital I2C Sensor Suhu & Kelembapan RH...

CMP131117-70

SHT-31D adalah sensor suhu dan kelembapan digital kelas premium dari vendor Sensirion. Ini adalah versi asli dari sensor suhu & kelembapan murah...

198,000 IDR Beli

3.503
Image

Aditya Suranata

Aditya suka menulis, bukan hanya sekedar hobi, menulis menjadi medianya untuk mencurahkan pikiran dan perasaan. Di TutorKeren.com kebanyakan menyumbang tulisan sesuai dengan minat dan keahliannya yaitu pada kategori pemrograman dan elektronika. Selain itu juga gemar menulis mengenai hal-hal umum, seperti ilmu alam, sosial dan beberapa pengalamannya yang mungkin bisa berguna untuk orang lain.

Komentar

cara membuatnya bagaimana ?

cara membuatnya bagaimana ?

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 Dance 4

HTSL://HIGH THINKING SIMPLE LIVING . ME

kalau manfaat dari alat ini ? selain mengukur kwlwmbapan tanah

apa-apa saja manfaat yang bisa diperoleh dari alat ini ? selain mengukur kelembapan tanah

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

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

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

oh okee terimakasih mas, saya mengerti. oiya mas kalo uint8_t itu gunanya untuuk apa ya mas? maksudnya pake uint8_t agar apa?

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 Dash 1

HTSL://HIGH THINKING SIMPLE LIVING . ME

oh oke mas saya paham, terimakasih mas atas ilmunya, semoga berkah Good

Mari Gabung

Halo Emo 51 , Ada yang ingin disampaikan? Jangan sungkan untuk gabung diskusi ini. Silahkan Login dulu atau Daftar baru.