Banjir sering datang tanpa peringatan yang jelas. Padahal, jika tanda-tanda awal seperti kenaikan air, hujan, dan derasnya aliran bisa dipantau dengan baik, risiko kerusakan dapat diminimalkan. Di sinilah teknologi berbasis Internet of Things mulai menunjukkan perannya.

Dengan memanfaatkan mikrokontroler seperti ESP32, kita bisa membuat sistem sederhana yang mampu memantau kondisi lingkungan secara real-time dan memberikan respon otomatis saat terjadi potensi banjir. Menariknya, sistem ini tidak hanya menggunakan satu sensor, tetapi menggabungkan beberapa sensor agar hasilnya lebih akurat dan tidak mudah salah deteksi.


Cara Kerja Sistem

Sistem ini bekerja dengan membaca tiga kondisi utama secara bersamaan:

  • Ketinggian air menggunakan sensor ultrasonik
  • Kondisi hujan menggunakan rain sensor
  • Aliran air menggunakan water flow sensor

Data dari ketiga sensor tersebut akan diproses oleh ESP32. Jika kondisi masih normal, sistem hanya melakukan monitoring. Namun jika air mulai naik, hujan terdeteksi, dan aliran air semakin deras, sistem akan masuk ke kondisi siaga hingga bahaya.

Pada kondisi bahaya, sistem akan:

  • Mengaktifkan buzzer sebagai alarm
  • Menyalakan lampu (melalui relay) sebagai indikator visual

Alat dan Bahan

Untuk membuat sistem ini, kamu cukup menyiapkan beberapa komponen berikut:

  • ESP32 DevKit
  • Sensor Ultrasonik HC-SR04
  • Rain Sensor Module
  • Water Flow Sensor
  • Buzzer
  • Relay 1 Channel
  • LED / Lampu sebagai indikator
  • Breadboard dan kabel jumper

Semua komponen ini cukup umum dan mudah ditemukan di toko elektronik atau marketplace.


Rangkaian Singkat

Berikut gambaran koneksi yang digunakan:

  • Ultrasonik → TRIG (GPIO 5), ECHO (GPIO 18)
  • Rain Sensor → GPIO 19
  • Flow Sensor → GPIO 21
  • Buzzer → GPIO 22
  • Relay → GPIO 23

Pastikan semua GND terhubung bersama dan sumber tegangan sesuai dengan kebutuhan masing-masing sensor.


Program ESP32

Berikut kode yang digunakan untuk menjalankan sistem:
 

#define TRIG_PIN   5
#define ECHO_PIN   18
#define RAIN_PIN   19
#define FLOW_PIN   21
#define BUZZER_PIN 22
#define RELAY_PIN  23

long duration;
float distanceCm;

void setup() {
  Serial.begin(115200);

  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  pinMode(RAIN_PIN, INPUT);
  pinMode(FLOW_PIN, INPUT);

  pinMode(BUZZER_PIN, OUTPUT);
  pinMode(RELAY_PIN, OUTPUT);

  digitalWrite(BUZZER_PIN, LOW);
  digitalWrite(RELAY_PIN, LOW);
}

float readDistanceCM() {
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);

  duration = pulseIn(ECHO_PIN, HIGH);
  return duration * 0.034 / 2;
}

void loop() {
  float distance = readDistanceCM();
  int rain = digitalRead(RAIN_PIN);
  int flow = digitalRead(FLOW_PIN);

  Serial.print("Air: ");
  Serial.print(distance);
  Serial.print(" cm | Hujan: ");
  Serial.print(rain);
  Serial.print(" | Flow: ");
  Serial.println(flow);

  if (distance < 10 && rain == 0 && flow == 1) {
    digitalWrite(BUZZER_PIN, HIGH);
    digitalWrite(RELAY_PIN, HIGH);
    Serial.println("⚠️ BANJIR TERDETEKSI!");
  } else {
    digitalWrite(BUZZER_PIN, LOW);
    digitalWrite(RELAY_PIN, LOW);
  }

  delay(1000);
}

Simulasi di Wokwi

  1. Buka https://wokwi.com
  2. Pilih ESP32 Project
  3. Tambahkan:
    • HC-SR04
    • Buzzer
    • LED
    • Pushbutton (untuk simulasi flow)
    • Switch (untuk simulasi hujan)

Karena water flow sensor tidak selalu tersedia di Wokwi, kamu bisa menggantinya dengan tombol sebagai pemicu logika aliran air.


Tips Pengembangan

Agar project ini lebih maksimal, kamu bisa menambahkan fitur seperti:

  • Monitoring via smartphone (Blynk / ThingSpeak)
  • Notifikasi Telegram atau WhatsApp
  • Dashboard web (Laravel / IoT platform)
  • LCD untuk tampilan langsung

Dengan tambahan ini, sistem tidak hanya memberi alarm lokal, tetapi juga bisa dipantau dari jarak jauh.


Penutup

Sistem peringatan dini banjir ini adalah contoh sederhana bagaimana mikrokontroler bisa digunakan untuk menyelesaikan masalah nyata. Dengan kombinasi beberapa sensor dan aktuator, kita bisa membuat sistem yang tidak hanya membaca kondisi, tetapi juga mampu mengambil keputusan secara otomatis.

Project ini sangat cocok untuk:

  • Praktikum mahasiswa
  • Tugas akhir
  • Produk IoT sederhana
  • Bahkan implementasi nyata di lingkungan sekitar

Jadi, daripada hanya belajar teori, kenapa tidak langsung coba membuatnya sendiri?