Tutorial Sederhana: Cara Menggunakan Sensor Kelembaban Tanah Kapasitif dengan LCD

Tutorial ini menjelaskan langkah-langkah sederhana untuk menghubungkan dan mengoperasikan sensor kelembaban tanah kapasitif menggunakan LCD 16×2 I2C serta berbagai mikrokontroler: Arduino Uno, ESP32, dan Arduino Mega.

Prinsip Kerja Sensor Kelembaban Tanah Kapasitif

Sensor kelembaban tanah kapasitif bekerja berdasarkan perubahan kapasitansi yang dipengaruhi oleh kadar air dalam tanah. Berbeda dengan sensor resistif yang mengandalkan konduktivitas listrik (dan cepat korosi), sensor kapasitif tidak memiliki elektroda terbuka, sehingga lebih tahan lama dan akurat.


โš™๏ธ Bagian-Bagian Utama Sensor Kapasitif:

  1. Pelat Kapasitif Internal (PCB Trace)
    Terdapat dua jalur konduktif di dalam PCB yang berfungsi sebagai pelat kapasitor. Pelat ini tidak terlihat karena berada di dalam lapisan sensor.
  2. Lapisan Dielektrik (Tanah Sekitar)
    Ruang di antara pelat kapasitor diisi oleh tanah, yang berfungsi sebagai media dielektrik. Nilai dielektrik tanah berubah tergantung kandungan air.
  3. Rangkaian Oscillator dan Penguat
    Sensor memiliki rangkaian elektronik yang mengubah perubahan kapasitansi menjadi sinyal tegangan analog.

๐Ÿ”ฌ Cara Kerja secara Detail:

  1. Sensor ditancapkan ke tanah
    Ketika sensor dimasukkan ke dalam tanah, tanah menjadi bagian dari sistem kapasitor internal sensor.
  2. Air dalam tanah mempengaruhi kapasitansi
    Air memiliki konstanta dielektrik tinggi (~80), dibandingkan tanah kering (~3โ€“7).
    โžœ Semakin banyak air, semakin tinggi kapasitansinya.
  3. Rangkaian pengubah kapasitansi ke tegangan
    Rangkaian pada sensor mengukur kapasitansi tersebut dan mengubahnya menjadi sinyal tegangan analog (biasanya 0โ€“3.3V atau 0โ€“5V tergantung VCC).
  4. Output tegangan dibaca oleh mikrokontroler
    • Tanah basah โ†’ tegangan output lebih rendah
    • Tanah kering โ†’ tegangan output lebih tinggi
      Mikrokontroler (Arduino/ESP32) membaca tegangan ini sebagai nilai ADC, yang kemudian dapat diolah menjadi persentase kelembaban atau status (Kering/Lembab/Basah).

๐Ÿ“Š Karakteristik Sensor Kapasitif (contoh umum):

Kondisi TanahTegangan OutputNilai ADC (0โ€“1023 @ 5V)
Basah~1.0V~200โ€“400
Lembab~2.0V~500โ€“700
Kering~3.5โ€“4.0V~800โ€“950

Nilai ini bisa berbeda tergantung jenis tanah dan sensor.


โœ… Kelebihan Sensor Kapasitif:

  • Tidak mudah korosi karena tidak ada elektroda terbuka
  • Lebih akurat dan stabil dibanding sensor resistif
  • Cocok untuk pemantauan jangka panjang

โš ๏ธ Kekurangan / Hal yang Perlu Diperhatikan:

  • Butuh kalibrasi manual tergantung jenis tanah
  • Beberapa sensor versi murah bisa mengalami drift suhu (pengaruh suhu terhadap pembacaan)
  • Sensor bisa terganggu oleh logam atau larutan garam tinggi dalam tanah

contoh penerapan yang cocok untuk sensor kelembaban tanah kapasitif dalam berbagai bidang:


๐ŸŒฟ 1. Otomatisasi Penyiraman Tanaman (Smart Irrigation)

๐Ÿ“Œ Deskripsi:

Sensor digunakan untuk memantau kelembaban tanah dan secara otomatis mengaktifkan pompa air atau katup solenoid jika tanah terlalu kering.

โœ… Manfaat:

  • Hemat air
  • Tanaman tidak overwatering atau kekeringan
  • Dapat bekerja 24 jam tanpa intervensi manusia

๐Ÿก 2. Sistem Taman Pintar di Rumah (Smart Garden/Home Farming)

๐Ÿ“Œ Deskripsi:

Sensor dipasang di pot atau bedeng tanaman untuk memberikan data ke mikrokontroler + LCD, aplikasi smartphone, atau notifikasi cloud.

โœ… Manfaat:

  • Cocok untuk urban farming atau hidroponik
  • Monitoring kelembaban dari dalam rumah
  • Integrasi ke Alexa/Google Assistant atau IoT platform

๐Ÿšœ 3. Pertanian dan Perkebunan Skala Besar (Agrikultur Presisi)

๐Ÿ“Œ Deskripsi:

Sensor diletakkan pada berbagai titik lahan, dihubungkan ke jaringan data (LoRa, Zigbee, WiFi), dan digunakan untuk mengatur pola penyiraman berbasis kebutuhan real-time.

โœ… Manfaat:

  • Meningkatkan efisiensi pertanian
  • Mencegah pemborosan air dan energi
  • Data bisa digunakan untuk analisis kesuburan tanah

๐ŸŒฑ 4. Riset & Pendidikan (Edukit / Lab Tanaman)

๐Ÿ“Œ Deskripsi:

Sensor digunakan dalam praktikum sekolah / universitas untuk mengajarkan:

  • Fisika sensor kapasitif
  • Mikrokontroler
  • Otomatisasi dan pertanian digital

โœ… Manfaat:

  • Murah dan mudah digunakan
  • Melatih siswa dalam praktik IoT dan otomasi lingkungan

๐Ÿงช 5. Sistem Monitoring Tanaman Berbasis IoT / Web

๐Ÿ“Œ Deskripsi:

Sensor dipasangkan dengan ESP32/ESP8266 dan hasilnya dikirim ke:

  • Web dashboard (misal: Blynk, Thingspeak)
  • Notifikasi Telegram
  • Data logging untuk analisis kelembaban harian/mingguan

โœ… Manfaat:

  • Akses jarak jauh
  • Bisa menyesuaikan waktu penyiraman sesuai cuaca/data real

๐Ÿšฟ 6. Kendali Pompa Otomatis di Greenhouse

๐Ÿ“Œ Deskripsi:

Sensor digunakan untuk mengontrol pompa air berdasarkan kelembaban tanah di dalam rumah kaca. Bisa juga bekerja bersama sensor suhu dan cahaya.

โœ… Manfaat:

  • Menjaga lingkungan mikro tanaman lebih stabil
  • Mendukung pertumbuhan optimal dalam kondisi terkendali

๐Ÿข 7. Pemantauan Tanaman Indoor di Kantor / Gedung

๐Ÿ“Œ Deskripsi:

Digunakan untuk memantau kelembaban tanaman hias di kantor atau taman dalam ruangan. Dapat memicu LED indikator atau notifikasi saat tanaman butuh air.

โœ… Manfaat:

  • Estetika kantor tetap terjaga
  • Tidak perlu cek manual satu per satu

๐Ÿ“Œ Alat dan Bahan:

  • Sensor kelembaban tanah kapasitif (analog)
  • LCD 16×2 I2C
  • Mikrokontroler: Arduino Uno / ESP32 / Arduino Mega
  • Kabel jumper

Cara penggunaan menggunakan arduino uno

Arduino Uno adalah salah satu board mikrokontroler yang paling banyak digunakan. Untuk menghubungkan sensor kelembaban dengan Arduino Uno

Arduino Uno

  • Sensor:
    • AOUT โ†’ A0
    • VCC โ†’ 5V
    • GND โ†’ GND
  • LCD I2C:
    • SDA โ†’ SDA
    • SCL โ†’ SCL
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Inisialisasi LCD dengan alamat I2C 0x27 dan ukuran 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2);

const int sensorPin = A0; // Pin analog untuk sensor kelembaban tanah
int nilaiADC;             // Nilai mentah dari sensor
int persenKelembaban;     // Nilai kelembaban dalam persen
String statusTanah;       // Status kondisi tanah

void setup() {
  Serial.begin(9600);
  lcd.begin();
  lcd.backlight(); // Nyalakan lampu latar LCD

  lcd.setCursor(0, 0);
  lcd.print("Monitoring Tanah");
  lcd.setCursor(0, 1);
  lcd.print("Initializing...");
  delay(2000);
  lcd.clear();
}

void loop() {
  // Baca nilai analog dari sensor
  nilaiADC = analogRead(sensorPin);

  // Konversi nilai menjadi persen kelembaban
  persenKelembaban = map(nilaiADC, 1023, 300, 0, 100); // Kalibrasi sesuai sensor
  persenKelembaban = constrain(persenKelembaban, 0, 100); // Batasi 0-100%

  // Tentukan status kelembaban tanah
  if (persenKelembaban > 70) {
    statusTanah = "Basah";
  } else if (persenKelembaban > 40) {
    statusTanah = "Lembab";
  } else {
    statusTanah = "Kering";
  }

  // Tampilkan di Serial Monitor
  Serial.println("====================================");
  Serial.print("Nilai ADC: ");
  Serial.println(nilaiADC);
  Serial.print("Kelembaban: ");
  Serial.print(persenKelembaban);
  Serial.println(" %");
  Serial.print("Status Tanah: ");
  Serial.println(statusTanah);
  Serial.println("====================================");
  Serial.println();

  // Tampilkan di LCD
  lcd.setCursor(0, 0);
  lcd.print("Kelembaban:");
  lcd.setCursor(11, 0);
  lcd.print(persenKelembaban);
  lcd.print("% ");
  
  lcd.setCursor(0, 1);
  lcd.print("Status:");
  lcd.setCursor(8, 1);
  lcd.print("        "); // Clear area
  lcd.setCursor(8, 1);
  lcd.print(statusTanah);

  delay(2000);
}

Cara Penggunaan dengan ESP32

ESP32 adalah mikrokontroler yang lebih canggih dengan konektivitas Wi-Fi dan Bluetooth. Dengan ESP32, Anda dapat mengirimkan data kelembaban tanah ke server atau aplikasi web melalui jaringan

ESP32

SCL โ†’ GPIO22

Sensor:

AOUT โ†’ GPIO34 (atau pin analog lainnya)

VCC โ†’ 3.3V / 5V*

GND โ†’ GND

LCD I2C:

SDA โ†’ GPIO21

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Inisialisasi LCD I2C dengan alamat 0x27 dan ukuran 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2);

const int sensorPin = 34; // Gunakan pin input analog ESP32 (misalnya GPIO34)
int nilaiADC;
int persenKelembaban;
String statusTanah;

void setup() {
  Serial.begin(115200); // Kecepatan serial untuk ESP32

  // Inisialisasi LCD
  lcd.begin();
  lcd.backlight();

  // Tampilkan pesan awal
  lcd.setCursor(0, 0);
  lcd.print("Monitoring Tanah");
  lcd.setCursor(0, 1);
  lcd.print("ESP32 + LCD");
  delay(2000);
  lcd.clear();
}

void loop() {
  // Baca nilai analog dari sensor
  nilaiADC = analogRead(sensorPin);

  // Konversi ke persen kelembaban (kalibrasi sesuai sensor kamu)
  persenKelembaban = map(nilaiADC, 4095, 1500, 0, 100);
  persenKelembaban = constrain(persenKelembaban, 0, 100);

  // Tentukan status
  if (persenKelembaban > 70) {
    statusTanah = "Basah";
  } else if (persenKelembaban > 40) {
    statusTanah = "Lembab";
  } else {
    statusTanah = "Kering";
  }

  // Tampilkan di Serial Monitor
  Serial.println("==================================");
  Serial.print("Nilai ADC: ");
  Serial.println(nilaiADC);
  Serial.print("Kelembaban: ");
  Serial.print(persenKelembaban);
  Serial.println(" %");
  Serial.print("Status Tanah: ");
  Serial.println(statusTanah);
  Serial.println("==================================\n");

  // Tampilkan ke LCD
  lcd.setCursor(0, 0);
  lcd.print("Kelembaban:");
  lcd.setCursor(11, 0);
  lcd.print(persenKelembaban);
  lcd.print("% ");

  lcd.setCursor(0, 1);
  lcd.print("Status:");
  lcd.setCursor(8, 1);
  lcd.print("        ");
  lcd.setCursor(8, 1);
  lcd.print(statusTanah);

  delay(2000);
}

Cara Penggunaan dengan Arduino Mega

Arduino Mega memiliki lebih banyak pin dan lebih banyak port serial dibandingkan dengan Arduino Uno, yang membuatnya lebih fleksibel

Arduino Mega

  • Sensor:
    • AOUT โ†’ A0 (atau pin analog lainnya)
    • VCC โ†’ 5V
    • GND โ†’ GND
  • LCD I2C:
    • SDA โ†’ Pin SDA
    • SCL โ†’ Pin SCL
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Inisialisasi LCD I2C (alamat default 0x27), ukuran 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2);

// Pin analog tempat sensor terhubung
const int sensorPin = A0;

int nilaiADC;
int persenKelembaban;
String statusTanah;

void setup() {
  Serial.begin(9600);
  lcd.begin();
  lcd.backlight();

  // Tampilkan pesan awal
  lcd.setCursor(0, 0);
  lcd.print("Monitoring Tanah");
  lcd.setCursor(0, 1);
  lcd.print("Arduino Mega");
  delay(2000);
  lcd.clear();
}

void loop() {
  // Baca nilai ADC dari sensor
  nilaiADC = analogRead(sensorPin);

  // Kalibrasi sesuai sensor (semakin tinggi ADC = semakin kering)
  persenKelembaban = map(nilaiADC, 1023, 300, 0, 100); // sesuaikan angka!
  persenKelembaban = constrain(persenKelembaban, 0, 100);

  // Tentukan status tanah
  if (persenKelembaban > 70) {
    statusTanah = "Basah";
  } else if (persenKelembaban > 40) {
    statusTanah = "Lembab";
  } else {
    statusTanah = "Kering";
  }

  // Serial Monitor
  Serial.println("==================================");
  Serial.print("Nilai ADC: ");
  Serial.println(nilaiADC);
  Serial.print("Kelembaban: ");
  Serial.print(persenKelembaban);
  Serial.println(" %");
  Serial.print("Status Tanah: ");
  Serial.println(statusTanah);
  Serial.println("==================================\n");

  // Tampilkan di LCD
  lcd.setCursor(0, 0);
  lcd.print("Kelembaban: ");
  lcd.setCursor(12, 0);
  lcd.print(persenKelembaban);
  lcd.print("% ");

  lcd.setCursor(0, 1);
  lcd.print("Status: ");
  lcd.setCursor(8, 1);
  lcd.print("        "); // clear
  lcd.setCursor(8, 1);
  lcd.print(statusTanah);

  delay(2000);
}
  1. Pantau Hasil Pembacaan
    Setelah diunggah, kamu dapat melihat:
    • Persentase kelembaban tanah pada LCD
    • Status tanah (kering, lembab, basah)
    • Dan nilai sensor di Serial Monitor (jika ditampilkan)

๐ŸŽฏ Tips Kalibrasi:

Setiap sensor bisa memiliki rentang bacaan yang sedikit berbeda. Lakukan uji coba pada tanah kering dan basah untuk menentukan batas nilai ADC yang tepat.

Leave a Reply

Your email address will not be published. Required fields are marked *