Banner 468x 60

Tuesday, December 2, 2025

KODE C# Arduino Uno Sensor Kelembapan Tanah + LCD + Buzzer + Pompa Mini

Bangun "Kebun Pintar" Sendiri: Tutorial Membuat Sistem Penyuram Tanaman Otomatis dengan Arduino & LCD

Sensor Tanah dalam Perkebunan Modern



Apakah Anda sering lupa menyiram tanaman kesayangan hingga layu? Atau Anda berencana pergi liburan tapi takut tanaman mati kekeringan?

Jangan khawatir! Di era IoT ( Internet of Things ) ini, kita bisa memanfaatkan teknologi sederhana untuk merawat tanaman. Dalam tutorial ini, kita akan membuat Sistem Monitoring dan Penyiram Otomatis menggunakan Arduino Uno . Sistem ini akan mendeteksi jika tanah kering, membunyikan alarm, menampilkan status di layar LCD, dan secara otomatis menyalakan pompa air.

Mari kita bedah cara memasaknya, langkah demi langkah!

🛠️ Komponen yang diperlukan

Sebelum memulai coding, pastikan Anda memiliki "amunisi" berikut ini:

  1. Arduino Uno R3 (Otak dari sistem ini).

  2. Sensor Kelembapan Tanah (Sensor Kelembapan Tanah) – Disarankan tipe FC-28 atau Sensor Kapasitif.

  3. LCD 16x2 dengan Modul I2C (Agar kabel lebih rapi dan hemat pin).

  4. Buzzer Aktif (Sebagai suara alarm).

  5. Pompa Air Mini ( Submersible Pump 5V ) .

  6. Modul Relay 1 Channel 5V (Sangat Penting! Ini saklar elektronik untuk menyalakan pompa).

  7. Kabel Jumper (Male-to-Male & Male-to-Female) .

  8. Breadboard (Opsional, untuk merangkai).


🔌 Skema Rangkaian (Wiring)

Jangan takut dengan kabel. Ikuti panduan sederhana ini:

1. Sensor Kelembapan Tanah:

  • VCC -> 5V Arduino

  • GND -> GND Arduino

  • A0 (Keluaran Analog) -> Pin A0 Arduino

2. LCD 16x2 (I2C):

  • GND -> GND

  • VCC -> 5V

  • SDA -> Pin A4 (atau pin SDA di atas AREF)

  • SCL -> Pin A5 (atau pin SCL di atas AREF)

3. Bel:

  • Positif (+) -> Pin Digital 8

  • Negatif (-) -> GND

4. Pompa Mini & Relay:

  • Catatan: Jangan colok pompa langsung ke Arduino! Gunakan Relai.

  • IN (Relai) -> Pin Digital 7

  • VCC (Relai) -> 5V

  • GND (Relai) -> GND

  • Sambungan Pompa: menghubungkan kabel positif pompa ke terminal COM relay, dan dari terminal NO relay ke sumber daya baterai/power supply eksternal.


💻 Kode Program (Kode)

Salin kode di bawah ini ke software Arduino IDE .

Catatan Teknis: Pastikan Anda sudah menginstal perpustakaan LiquidCrystal_I2C melalui menu Sketch > Include Library > Manage Libraries .


/*

 * PROYEK: Sistem Taman Pintar

 * AUTHOR: [Nama Blog Anda]

 * PERANGKAT KERAS : Arduino Uno, Sensor Tanah, LCD I2C, Relay (Pompa), Buzzer

 */


#include <Wire.h> 

#include <LiquidCrystal_I2C.h>


// --- KONFIGURASI PIN ---

const int sensorPin = A0; // Pin sensor kelembapan

const int relayPin = 7; // Pin untuk Relai (Pompa)

const int buzzerPin = 8; // Sematkan ke Buzzer


// --- KONFIGURASI NILAI BATAS ---

// Nilai sensor biasanya 0-1023. 

// Semakin tinggi nilainya = Semakin KERING (untuk tipe resistif standar)

// Sesuaikan "batasKering" dengan hasil kalibrasi sensor Anda.

const int batasKering = 700; 


// Inisialisasi LCD (Alamat I2C biasanya 0x27 atau 0x3F)

Kristal Cair_I2C lcd(0x27, 16, 2);


batalkan pengaturan() {

  // Pin Mode Pengaturan

  pinMode(relayPin, OUTPUT);

  pinMode(buzzerPin, OUTPUT);

  pinMode(sensorPin, INPUT);


  // Pastikan pompa mati & buzzer diam di awal

  digitalWrite(relayPin, TINGGI); // Relay aktif LOW biasanya (HIGH = Mati)

  digitalWrite(buzzerPin, RENDAH);


  // Mulai Serial Monitor (untuk debugging)

  Serial.mulai(9600);


  // Mulai LCD

  lcd.init();

  lcd.lampu latar();

  

  // Tampilan Intro

  lcd.setCursor(0,0);

  lcd.print(" TAMAN CERDAS ");

  lcd.setCursor(0,1);

  lcd.print(" SISTEM MULAI ");

  penundaan(2000);

  lcd.clear();

}


void loop() {

  // 1. BACA DATA SENSOR

  int nilaiSensor = analogRead(sensorPin);

  

  // Ubah nilai analog ke Persentase (Estimasi)

  // 1023 adalah sangat kering (0%), 300 adalah sangat basah (100%)

  // Anda mungkin perlu mengubah angka 1023 dan 300 sesuai percobaan

  int kelembaban = map(nilaiSensor, 1023, 300, 0, 100); 

  

  // Batasi agar persentase tidak minus atau lebih dari 100

  kelembaban = kendala(kelembapan, 0, 100);


  // Tampilkan di Serial Monitor (Ctrl+Shift+M)

  Serial.print("Nilai Analog : ");

  Serial.print(nilaiSensor);

  Serial.print(" | Kelembapan: ");

  Serial.print(kelembapan);

  Serial.println("%");


  // 2. TAMPILKAN KE LCD

  lcd.setCursor(0, 0);

  lcd.print("Tanah: ");

  lcd.print(kelembapan);

  lcd.cetak("%"); // Spasi ekstra untuk membersihkan karakter lama


  // 3. LOGIKA KONTROL (OTOMASI)

  // Jika tanah kering (nilai analog TINGGI melebihi batas)

  if (nilaiSensor > batasKering) {

    

    // Aksi: Nyalakan Pompa & Bunyikan Alarm

    lcd.setCursor(0, 1);

    lcd.print("STATUS: MENYIRAM");

    

    digitalWrite(relayPin, RENDAH); // Relay Aktif (Pompa Nyala)

    

    // Bunyikan buzzer beep-beep

    digitalWrite(buzzerPin, TINGGI);

    tunda(100);

    digitalWrite(buzzerPin, RENDAH);

    

  } kalau tidak {

    // Aksi: Matikan Pompa & Diam

    lcd.setCursor(0, 1);

    lcd.print("STATUS: AMAN ");

    

    digitalWrite(relayPin, TINGGI); // Relay Mati (Pompa Mati)

    digitalWrite(buzzerPin, RENDAH);

  }


  tertunda(1000); // perbarui setiap 1 detik

} 



💡 Penjelasan Cara Kerja (Logika "If-Else")

Agar pembaca paham, berikut adalah logika sederhana di balik kode di atas:

  1. Bacaan: Arduino membaca tegangan listrik dari sensor tanah.

  2. Pemetaan: Jika tanah basah, listrik mengalir lancar (hambatan rendah). Jika tanah kering, listrik sulit mengalir (hambatan tinggi).

  3. Keputusan: Kita menetapkan "Titik Batas" (Ambang Batas). Dalam kode di atas, jika nilai sensor melebihi 700(artinya kering), Arduino memerintahkan Relay untuk ON (Pompa menyala) dan Buzzer berbunyi.

  4. Umpan balik: Saat udara mengalir dan tanah menjadi basah, nilai sensor akan turun di bawah 700, dan pompa otomatis akan mati.

  5. Shutterstock

🚀 Tips Pro untuk pembaca

  • Kalibrasi itu Kunci: Setiap tanah berbeda. Sebelum memasang pompa, celupkan sensor ke tanah kering dan katat angkanya (misal 800). Lalu siram air hingga basah, catat angkanya (misal 350). Gunakan angka ini untuk mencerahkan batasKeringkode Anda.

  • Masalah Korosi: Sensor tipe standar (lapis emas/nikel) lama-kelamaan akan korosi (karatan) jika dicolok terus menerus. Untuk penggunaan jangka panjang di luar ruangan, gunakan Capacitive Soil Moisture Sensor v1.2 yang lebih tahan karat.

  • Daya Pompa: Jika pompa tidak menyala meskipun relay sudah berbunyi "klik", kemungkinan arus USB laptop tidak cukup kuat. Gunakan adaptor eksternal 9V atau 12V untuk mensuplai daya ke Arduino dan Pompa.


Kesimpulan

Membuat alat penyiram otomatis bukan hanya soal coding, tapi soal memecahkan masalah sehari-hari dengan kreativitas. Dengan modal kurang dari Rp 100.000, Anda sudah bisa menyelamatkan tanaman kesayangan Anda dari kekeringan.

Selamat mencoba dan salam Maker !

 

0 comments:

Post a Comment