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
- Buka https://wokwi.com
- Pilih ESP32 Project
- 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?