Antarmuka sensor kelembaban tanah kapasitif dengan Arduino UNO

Halo, Semuanya!, bertemui lagi dengan saya yang udah lama nggak nulis karena libur sekolah. Dalam dunia pertanian, pemantauan kelembaban tanah menjadi sangat penting untuk meningkatkan menjaga kesehatan tanaman dan efisiensi penggunaan air . Disini kita kan menggunakan sensor kelembaban tanah kapasitif untuk melakukan pemantauan kondisi tanah tempat tanaman kita. Dalam postingan ini, kita akan membahas bagaimana cara membuat antarmuka sensor kelembaban tanah kapasitif menggunakan Arduino UNO. Project ini nantinya bisa dikembangkan sedemikain rupa untuk mendukung sistem pertanian yang modern. Yuk, kita mulai!

Sensor Kelembaban Tanah Kapasitif

Sensor kelembaban tanah kapasitif adalah alat yang digunakan untuk mengukur kadar kelembaban tanah dengan cara mengukur perubahan kapasitansi listrik disekitar tanah. Sensor ini lebih akurat dan tahan lama dibandingkan dengan sensor kelembaban resistif (yang memiliki 2 probe), sehingga sangat cocok untuk penggunaan jangka panjang.

Untuk dapat mengendalikan input dari sensor ini, kita akan menggunakan Arduino sebagai otaknya. Untuk itu kita perlu mempersiapkan alat, bahan, gambar rangkaian dan contoh codingnya.

Alat dan Bahan

Alat/BahanKebutuhan
Arduino UNO1 Buah
Sensor Kelembaban Tanah Kapasitif1 buah
Layar LCD1 buah
Breadboard1 buah
kabel jumper / kabel biasasecukupnya

Gambar Rangkaian

Instalasi Library LCD 16×2 I2C

untuk bisa mengendalikan sensor LCD 16×2 dengan mudah, kita perlu menginstal library untuk kedua modul tersebut dengan mengikuti langkah-langkah berikut ini:

Bukalah aplikasi Arduino IDE, lalu buka library manager yang terdapat disebelah kiri layar

Library yang akan kita instal adalah library LiquidCrystal_I2C. Gunakan kotak pencarian untuk mempermudah pencarian library yang dimaksud. Lewati langkah ini jika library sudah pernah diinstal sebelumnya.

Setelah library berhasil terinstal, maka kita bisa lanjut ke proses penulisan code program. yukk lanjut…

Coding

/* Gantilah nilai-nilai variabel dibawah ini sesuai dengan hasil pemantauan mu */
#define nilaiBasah 277   // nilai maksimal, kita anggap ini sebagai kondisi basah
#define nilaiKering 380   // nilai minimal, kita anggap sebagai kering

// pin yang terhubung ke sensor
#define sensorPin A0

//library LCD
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {  
  Serial.begin(9600);
  lcd.init();
  lcd.backlight();
  lcd.setCursor(2, 0);
  lcd.print("Please Wait");
  //tunggu 10 detik sebelum sensor aktif
  lcd.setCursor(0, 1);
  for (int a = 10; a >= 0; a--) {
    Serial.println(a);
    lcd.print(">");
    delay(1000);
  }
  lcd.clear();
  Serial.print("Sensor Aktif");
  lcd.setCursor(2, 0);
  lcd.print("Sensor Aktif");
  delay(1000);
  lcd.clear();
}

void loop() {
  // pembacaan input dari sensor
  int lembab = analogRead(sensorPin);
  //menampilkan hasil pembacaan
  Serial.print("Analog output: ");
  Serial.println(lembab);
  
  // penentuan kondisi tanah
  if (lembab < nilaiBasah) {
    Serial.println("Status: tanah terlalu basah");
    lcd.setCursor(0, 0);
    lcd.print("Kondisi Tanah");
    lcd.setCursor(0, 1);
    lcd.print("terlalu Basah");
  } else if (lembab >= nilaiBasah && lembab < nilaiKering) {
    Serial.println("Status: sempurna");
    lcd.setCursor(0, 0);
    lcd.print("Kondisi Tanah");
    lcd.setCursor(0, 1);
    lcd.print("sempurna");
  } else {
    Serial.println("Status: Tanah terlalu kering, perlu disiram");
    lcd.setCursor(0, 0);
    lcd.print("Kondisi Tanah");
    lcd.setCursor(0, 1);
    lcd.print("terlalu Kering");
  }
  Serial.println();
  delay(1000);
  lcd.clear();
}

Upload kode diatas, cek dahulu pastikan tidak ada yang error. Setelah upload berhasil, kita bisa langsung uji coba dengan menggunakan sampel tanah basah dan kering.

Sampai disini dulu, selamat mencoba.