Cara Menggunakan Sensor Hujan Pada ESP32

Cara Menggunakan Sensor Hujan Pada ESP32

Sensor hujan adalah sensor berbasis konduktivitas air yang mendeteksi adanya tetesan air atau kelembaban pada permukaannya.

Berikut in adalah cara memprogram sensor hujan pada esp32 :

#include <Arduino.h>


int port_sensor_hujan = 16;




void setup()
{
Serial.begin(9600);
pinMode(port_sensor_hujan, INPUT);

}
void loop(){
int sensor_hujan = digitalRead(port_sensor_hujan);
Serial.println("Hujan : " + (String)sensor_hujan);


}


Berikut adalah penjelasan dari kode di atas :

1. Library

#include <Arduino.h>
  • Menyertakan pustaka dasar Arduino.
  • Memberikan akses ke fungsi seperti pinMode, digitalRead, Serial, dan lainnya.

2. Deklarasi Pin

int port_sensor_hujan = 16;
  • Mendefinisikan bahwa sensor hujan terhubung ke pin GPIO 16 pada ESP32.
  • Nama port_sensor_hujan digunakan untuk mempermudah referensi ke pin dalam kode.

3. Fungsi setup()

void setup()
{
  Serial.begin(9600);
  pinMode(port_sensor_hujan, INPUT);
}
  • Serial.begin(9600);: Mengaktifkan komunikasi serial dengan kecepatan 9600 bps agar hasil bisa ditampilkan di Serial Monitor.
  • pinMode(..., INPUT);: Menyatakan bahwa pin GPIO 16 akan digunakan sebagai input digital untuk membaca status dari sensor hujan.

4. Fungsi loop()

void loop(){
  int sensor_hujan = digitalRead(port_sensor_hujan);
  Serial.println("Hujan : " + (String)sensor_hujan);
}
  • digitalRead(port_sensor_hujan);:
    • Membaca status HIGH (1) atau LOW (0) dari sensor hujan.
    • Nilai tergantung dari keluaran DO (digital out) dari sensor:
      • LOW (0): Biasanya berarti ada air (hujan terdeteksi).
      • HIGH (1): Tidak ada air (permukaan kering).
  • Serial.println(...):
    • Menampilkan status pembacaan ke Serial Monitor.
    • Contoh output: Hujan : 1 atau Hujan : 0

Catatan:

  • Logika output tergantung dari sensor yang digunakan, namun pada umumnya:
    • DO = 0 (LOW) → Hujan terdeteksi (air membuat jalur PCB konduktif).
    • DO = 1 (HIGH) → Tidak ada air (permukaan kering).

Penambahan (Opsional)

Jika ingin menampilkan teks yang lebih mudah dibaca, kamu bisa ubah kode bagian loop() seperti ini:

void loop() {
  int sensor_hujan = digitalRead(port_sensor_hujan);

  if (sensor_hujan == LOW) {
    Serial.println("Status: HUJAN TERDETEKSI");
  } else {
    Serial.println("Status: TIDAK HUJAN");
  }

  delay(1000);
}

Kesimpulan

Kode ini membaca sensor hujan dari pin GPIO 16 menggunakan mode digital dan mencetak statusnya ke Serial Monitor. Sangat cocok untuk sistem monitoring hujan sederhana, sistem irigasi otomatis, atau trigger alarm saat hujan turun.

untuk diskusi bisa kontak dibawah ini :

Sosial media :

Apa itu ESP32?