Menampilkan Data Sensor Kelembaban Tanah Kapasitif di LCD 1602 dengan Arduino Uno

Sensor kelembapan tanah kapasitif (Capacitive Soil Moisture Sensor)adalah sensor untuk mendeteksi kelembaban tanah, sensor ini dapat diintegrasikan dengan mikrokontroler seperti Arduino. Sensor kelembapan tanah ini umumnya dimanfaatkan pada pertanian untuk membuat sistem penyiraman otomatis atau untuk memantau kelembaban tanah tanaman secara offline maupun online. Saat ini sensor kelembapan hadir di pasaran dalam bentuk modul seperti terlihat pada gambar di bawah ini.

Cara kerja sensor kelembapan tanah kapasitif adalah ketika sensor mendeteksi kondisi tanah dalam keadaan kering maka tegangan outputnya akan meningkat, namun saat kondisi tanah terdeteksi basah maka tegangan output sensor akan menurun. Tegangan output sensor ini dapat dipantau melalui serial monitor pada Ardino IDE dalam bentuk nilai analog 0 – 1023. Nilai analog ini digunakan sebagai parameter untuk mengukur kelembapan tanah.

Modul sensor kelembapan tanah memiliki 3 pin yaitu VCC, GND, dan AOUT. Pin Aout inilah yang mengeluarkan tegangan analog yang menunjukkan nilai kelemban tanah. Pin Aout ini kemudian dapat dihubungkan ke sistem mikrokontroller atau komputer melalui pin Analog Digital. Pada beberapa sistem processing yang tidak memiliki pin analog (seperti komputer), Anda akan akan membutuhkan modul ADC (Analog to Digital Converter) untuk mengubah tegangan analog output sensor menjadi nilai yang dapat dibaca komputer.

Untuk lebih memahami prinsip kerja sensor kelembaban tanah kapasitif pada tutorial kali ini ,marilah buat percobaan sederhana berikut ini:

Alat dan Bahan Percobaan Capacitive Soil Moisture-LCD-Uno

  1. Arduino Uno
  2. Sensor kelembapan tanah kapasitif v1.2
  3. Resistor 150 Ω
  4. LED merah
  5. LED hijau
  6. Kabel jumper secukupnya (Male to male dan Male to female)
  7. LCD 16×2

Dari alat dan bahan di atas, kemudian buatlah rangkaian seperti pada gambar di bawah ini. Kali ini kita akan membuat sistem sederhana menyalakan LED berdasarkan kondisi kelembaban tanah. Untuk nilai kelembaban tanah sendiri juga akan ditampilkan dalam LCD 1602

Konfigirasi pin/wiring rangkaian di atas adalah sebagai berikut:

  • VCC dihubungkan dengan 5v Arduino Uno.
  • GND dihubungkan dengan GND Arduino Uno.
  • AOUT dihubungkan dengan  pin A0 Arduino Uno.
  • LED merah terhubung dengan pin A1 Arduino Uno.
  • LED hijau terhubung dengan pin A2 Arduino Uno.
  • Pin SDA LCD 16×2 terhubung dengan pin A4 Arduino Uno.
  • Pin SCL LCD 16×2 terhubung dengan pin A5 Arduino Uno

Contoh Sketch Sensor Kelembaban Tanah-LCD-Uno

Setelah hardware sudah siap, kini saatnya untuk mengisi programnya. Berikut ini adalah contoh program untuk menampilkan data sensor kelembapan tanah kapasitif di LCD 1602 menggunakan Arduino Uno. Perhatikan bahwa dalam contoh source code di bawah Anda harus menginstal library ‘LiquidCrystal_I2C.h’ terlebih dahulu. Caranya sangat mudah, yakni melalui menu Tools-Manage Libraries, kemudian ketikkan nama library ke kotak search, setelah itu tekan tombol “Install”

#include <Wire.h>              // Memanggil library wire.h
#include <LiquidCrystal_I2C.h> // Memanggil library LCD dengan I2C
LiquidCrystal_I2C lcd(0x3F, 16, 2); // Alamat I2C(0x27) LCD dan Jenis LCD (20x4)
 
#define Sensor A0   //Deklarasi pin sensor pada pin A0
#define ledM A1     //Deklarasi LED merah pada pin A1
#define ledH A2     //Deklarasi LED hijau pada pin A2

float nilai_sensor;
float n_akhir;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(ledM, OUTPUT);  //deklarasi LED merah sebagai Output
  pinMode(ledH,OUTPUT);   //deklarasi LED hijau sebagai Output
  lcd.init();             // instruksi untuk memulai LCD
  lcd.begin(16,2);        // instruksi untuk menggunakan lcd 16x2
  lcd.backlight();        // instruksi untuk mengaktifkan lampu latar LCD
}

void loop() {
  // Instruksi untuk mwngubah nilai analog menjadi persen
  nilai_sensor = analogRead(A0);
  n_akhir = map(analogRead(A0), 900, 620, 0, 100); //Nilai sensor tertinggi, terendah
  if (n_akhir >= 100){
  n_akhir = 100;
  }

  else if (n_akhir<0)
  {
   n_akhir=0;
  }
  
  Serial.print("Nilai Analog: ");                 //menampilkan nilai analog pada serial monitor
  Serial.println(nilai_sensor);
  Serial.print("Nilai Kelembapan: ");             //menampilkan hasil konversi nilai analog ke persen
  Serial.println(n_akhir);
  delay(1000);

  if(n_akhir < 30){              // Insttruksi untuk mengaktifkan LED merah jika kelembapan kurang dari 30%
    digitalWrite(ledM,HIGH);
    digitalWrite(ledH,LOW);
  }

  else if (n_akhir > 60){       // Instruksi untuk mengaktifkan LED hijau jika kelembapan lebih dari 60%
    digitalWrite(ledH,HIGH);
    digitalWrite(ledM,LOW);
  }
  
  lcd.setCursor(0, 0);            // karakter dimulai dari kolom 5 baris 1
  lcd.print("Moisture Sensor");   // Karakter yang akan ditampilkan pada LCD
  lcd.setCursor(0, 1);            // karakter dimulai dari kolom 5 baris 2
  lcd.print("Soil:");             // Karakter yang akan ditampilkan pada LCD
  lcd.print(n_akhir);
  lcd.print("%");
  delay(2000);
}

Setelah program selesai diunggah perhatikan nilai analog dan nilai persentase kelembapan tanah sensor yang ditampilkan pada serial monitor dan LCD 16×2 serta kondisi LED

Hasil percobaan saat tanah kering
Hasil percobaan saat tanah basah

Perhatikan gambar di atas. Saat tanah dalam kondisi kering nilai analog yang terbaca 902 setelah diubah dalam bentuk persen menunjukkan nilai 0% maka LED merah aktif. Saat tanah dalam kondisi kering nilai analog yang terbaca 702 setelah diubah dalam bentuk persen menunjukkan nilai 71% maka LED hijau aktif. Hal ini sesuai dengan instruksi pada baris 41-49

Pada baris program 41-49, script akan mengendalikan LED merah dan hijau untuk ON / OFF berdasarkan nilai analog yang telah diubah dalam bentuk persen (%). Ketika kondisi tanah kering atau kelembapan di bawah 30% maka LED merah akan aktif, namun jika kelembapan tanah yang terdeteksi lebih dari 60% maka LED hijau aktif.

Demikian sedikit tutorial mengenai bagaimana cara menampilkan data sensor kelembaban tanah kapasitif di LCD 16×2 menggunakan Arduino Uno. Perlu untuk Anda ketahui bahwa ada dua macam jenis sensor kelembaban tanah, yang satu adalah tipe kapasitif yang kita gunakan dalam tutorial kali ini, Tipe satunya adalah tipe resistif yang berbasis nilai resistansi, Berdasarkan pengalaman kami, sensor bertipe kapasitif lebih awet dan tahan lama ketika diterapkan pada kondisi sebenarnya (ditancapkan ke tanah) pada rentang yang waktu lama. Selamat bereksperimen

Leave a Reply