● online
- 10mm Kapton Tape Polymide Film Gold High Temp isol....
- MP3 TF 16P Alternatif DFPlayer mini MP3 Player Ard....
- Kabel Jumper arduino Dupont Pelangi 30 cm Male to ....
- TP5100 4.2v 8.4v 1S 2S Single / Double Cell Lithiu....
- Kapton Tape Polymide Film 20mm Polimida 20 mm Isol....
- Kabel Jumper 10cm Dupont Pelangi 10 cm Female to M....
- USB To RS485 High Speed Converter RS-485 RS 485 Ad....
- Raspberry Pi 4 Model B - 2GB RAM Raspberry Pi 4B....
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
Cara Bikin Sistem Deteksi Banjir IoT dengan Alarm Bertingkat dan Notifikasi Telegram
Musim hujan sering kali membawa ancaman banjir luapan sungai yang datang tiba-tiba. Masalah utama di lapangan adalah pemantauan manual yang terbatas dan alur informasi yang lambat, sehingga masyarakat terlambat mendapatkan informasi evakuasi. Buat kamu para sobat maker dan IoT enthusiast, kita bisa menciptakan solusinya sendiri secara mandiri! Kita dapat merakit Early Warning System (EWS) banjir berbasis Internet of Things (IoT) yang mampu mengukur tinggi air secara real-time, ditenagai panel surya, serta langsung mengirimkan notifikasi darurat ke aplikasi Telegram di smartphone kamu. Sebelum kita melangkah ke proses perakitannya, kalau kamu tertarik mengembangkan perangkat pemantau lingkungan lainnya, kamu juga bisa membaca panduan tentang bikin alat monitoring kualitas udara ruangan berbasis esp32 dan sensor mq-135. Yuk, kita bedah komponen, skematik, hingga kode pemrogramannya!
Alat dan Bahan Project EWS Banjir

| Komponen | Jumlah | Keterangan |
| Microcontroller ESP32 / NodeMCU ESP32 | 1 unit | Unit pemroses utama dengan Wi-Fi dan Bluetooth internal |
| Sensor Ultrasonik HC-SR04 | 1 unit | Sensor pengukur jarak permukaan air non-kontak (rentang 2–400 cm) |
| Layar LCD I2C | 1 unit | Tampilan lokal status peringatan, tinggi air (T_{\text{air}}), dan volume air (V_{\text{air}}) |
| Buzzer & LED Indikator | 1 set | Modul alarm audio-visual lokal di lokasi pemantauan |
| Panel Surya / Solar Panel | 1 unit | Sumber daya utama mandiri (off-grid) di luar ruangan |
| Baterai Lithium-Ion 18650 | 2 unit | Penyimpan daya cadangan (power backup storage) |
| Modul Charger TP5100 | 1 unit | Pengontrol pengisian daya baterai yang efisien |
| Buck Converter MP1584 DC-DC | 1 unit | Regulator penurun tegangan daya keluaran baterai |
| Kapasitor & Resistor | Secukupnya | Kapasitor filter 0,1 µF, kapasitor daya 10 µF, sirkuit penunda RC (resistor 10 kΩ & kapasitor 1 µF) |
| Waterproof Box / Casing Tahan Air | 1 unit | Wadah pelindung perangkat keras dari cuaca luar |
Skematik Rangkaian dan Arsitektur IoT
Arsitektur sistem EWS ini dibangun berdasarkan tiga lapisan (layer) utama IoT:
- Perception Layer: Diampu oleh Sensor Ultrasonik HC-SR04 yang bekerja mengukur jarak ke permukaan air tanpa sentuhan langsung.
- Network Layer: Mengandalkan modul Wi-Fi internal pada mikrokontroler ESP32 untuk mentransmisikan data mentah ke server cloud secara terus-menerus.
- Application Layer: Memanfaatkan Telegram Bot API dan antarmuka web (web interface) interaktif sebagai media penerima laporan visual dan peringatan otomatis.
Panduan Hubungan Rangkaian & Catatan Hardware:
- Koneksi Sensor: Pin Trigger dan Echo pada sensor HC-SR04 dihubungkan langsung ke GPIO digital pada ESP32 (misalnya GPIO 5 untuk Trigger dan GPIO 18 untuk Echo).
- Manajemen Daya Mandiri: Panel surya menyuplai arus ke modul charger TP5100 untuk mengisi dua baterai Lithium-Ion 18650. Tegangan baterai kemudian diturunkan menggunakan Buck Converter MP1584 DC-DC agar stabil sesuai kebutuhan rel daya ESP32 (jalur 3.3V).
- Stabilisasi Daya & Filter: Berdasarkan rujukan teknis pabrikan, ditambahkan dioda proteksi ESD serta kapasitor minimal 10 µF pada pintu masuk daya utama (main power entrance) untuk menahan lonjakan arus saat transmisi Wi-Fi. Pasang pula kapasitor filter 0,1 µF berdekatan dengan pin daya digital dan pin ADC untuk meredam gangguan atau noise frekuensi tinggi.
- Proteksi Pin Reset: Pin
CHIP_PUpada ESP32 tidak boleh dibiarkan mengambang (floating). Hubungkan sirkuit delay RC yang terdiri dari resistor R = 10 kΩ dan kapasitor C = 1 µF ke pinCHIP_PU. Sirkuit ini memastikan rel daya 3.3V telah stabil sepenuhnya sebelum chip diaktifkan (boot up). Untuk panduan teknis kelistrikan perangkat secara mendalam, kamu dapat merujuk pada dokumentasi resmi hardware ESP32.
Cara Kerja dan Logika Alarm Bertingkat

Prinsip kerja alat ini dimulai ketika sensor ultrasonik HC-SR04 memancarkan gelombang suara ke arah permukaan air. Gelombang tersebut akan dipantulkan kembali setelah mengenai permukaan air, kemudian waktu tempuh pantulannya dibaca oleh ESP32 untuk mengetahui jarak antara sensor dan permukaan air.
Jarak tersebut dihitung berdasarkan waktu tempuh gelombang dan kecepatan suara di udara, yaitu sekitar 0,034 cm/µs. Karena gelombang menempuh perjalanan pergi dan pulang, hasil perhitungannya dibagi dua agar mendapatkan jarak sebenarnya.
Hal penting yang perlu dipahami adalah jarak antara sensor dan permukaan air berbanding terbalik dengan ketinggian air. Artinya, ketika permukaan air sungai naik mendekati sensor, jarak yang terbaca justru semakin kecil. Untuk mengetahui ketinggian air sebenarnya, ESP32 mengurangi tinggi posisi pemasangan sensor dari dasar sungai dengan jarak hasil pengukuran sensor.
Sebagai contoh, jika sensor dipasang setinggi 150 cm dari dasar sungai dan jarak yang terbaca adalah 50 cm, berarti ketinggian air mencapai 100 cm.
Hasil pengukuran kemudian ditampilkan pada layar LCD I2C agar kondisi air bisa dipantau langsung di lokasi. Data tersebut juga digunakan untuk menentukan tingkat peringatan berdasarkan ambang batas ketinggian air, yang dibagi menjadi tiga kategori berikut.
- Status Aman / Normal: Ketinggian air masih berada di bawah batas awal peringatan. Sebagai acuan, kondisi normal memiliki ketinggian rata-rata sekitar 20 cm. LCD menampilkan status aman beserta hasil pengukuran ketinggian air.
- Status Siaga / Alert (Tingkat 3 & 2): Ketinggian air mulai meningkat dan memasuki rentang 80–120 cm. Pada kondisi ini, sistem menampilkan status siaga pada LCD sebagai tanda bahwa permukaan air perlu diwaspadai.
- Status Bahaya / Banjir (Alert 1): Ketinggian air telah melewati batas kritis, yaitu lebih dari 120 cm dari dasar sungai. ESP32 akan langsung mengaktifkan status bahaya sebagai tanda bahwa kondisi berpotensi menyebabkan banjir.
Mekanisme Peringatan Ganda (Dual Alert Mechanism): Sistem menjalankan dua respon peringatan secara bersamaan. Secara lokal, indikator LED merah menyala dan audio buzzer berbunyi nyaring di lokasi pemantauan untuk memberi peringatan langsung pada warga sekitar. Secara jarak jauh (remote), ESP32 mengeksekusi pengiriman pesan otomatis melalui Telegram Bot yang akan langsung muncul sebagai notifikasi push di layar terkunci (lock screen) smartphone warga maupun petugas.
Pemrograman ESP32 dan Notifikasi Telegram
Pengembangan program dilakukan menggunakan Arduino IDE. ESP32 dikonfigurasi agar terhubung ke jaringan Wi-Fi lokal, lalu berkomunikasi dengan Telegram Bot API menggunakan protokol HTTPS POST melalui endpoint /sendMessage.
Untuk memastikan pembacaan sensor tidak berfluktuasi akibat riak, gelombang, atau percikan air sungai, diterapkan logika pemrosesan data (data pre-processing). Pembacaan sensor direkam dalam interval 1 menit dengan mengambil 5 sampel data. Data bernilai nol (0) atau lonjakan ekstrem di luar rentang valid sensor (2–400 cm) diabaikan (ignored), lalu sampel yang valid dihitung nilai rata-ratanya (averaging).
Berikut adalah contoh kode C++/Arduino yang sudah menyertakan filtering data, perhitungan tinggi air yang benar, dan pengiriman notifikasi Telegram via HTTPS POST:
#include <WiFi.h>
#include <HTTPClient.h>
// Konfigurasi WiFi dan Telegram
const char* ssid = "NAMA_WIFI_KAMU";
const char* password = "PASSWORD_WIFI_KAMU";
String botToken = "BOT_TOKEN_TELEGRAM_KAMU";
String chatId = "CHAT_ID_TELEGRAM_KAMU";
// Definisi pin ESP32
const int trigPin = 5;
const int echoPin = 18;
const int buzzerPin = 19;
const int ledPin = 21;
// Tinggi posisi sensor dari dasar sungai (cm)
const float SENSOR_HEIGHT = 150.0;
void setup() {
Serial.begin(115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin, OUTPUT);
// Menghubungkan ESP32 ke jaringan WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
}
// Fungsi membaca jarak menggunakan sensor ultrasonik
float readSingleDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
return (duration * 0.034) / 2.0;
}
void loop() {
float totalDistance = 0;
int validSamples = 0;
// Sampling 5 kali dan menyaring data tidak valid
for (int i = 0; i < 5; i++) {
float d = readSingleDistance();
if (d >= 2.0 && d <= 400.0) {
totalDistance += d;
validSamples++;
}
delay(100);
}
if (validSamples > 0) {
// Menghitung rata-rata jarak sensor
float avgDistance = totalDistance / validSamples;
// Menghitung ketinggian air sebenarnya
float waterLevel = SENSOR_HEIGHT - avgDistance;
// Memeriksa batas bahaya ketinggian air
if (waterLevel > 120.0) {
digitalWrite(buzzerPin, HIGH);
digitalWrite(ledPin, HIGH);
String alertMsg = "⚠️ PERINGATAN BANJIR! Status: BAHAYA. Tinggi Air: " +
String(waterLevel, 1) + " cm!";
sendTelegramAlert(alertMsg);
} else {
digitalWrite(buzzerPin, LOW);
digitalWrite(ledPin, LOW);
}
}
// Interval pemantauan selama 1 menit
delay(60000);
}
// Fungsi mengirim notifikasi melalui Telegram
void sendTelegramAlert(String message) {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
String url = "https://api.telegram.org/bot" +
botToken + "/sendMessage";
http.begin(url);
http.addHeader(
"Content-Type",
"application/x-www-form-urlencoded"
);
String httpRequestData = "chat_id=" + chatId +
"&text=" + message;
// Mengirim pesan menggunakan HTTPS POST
int httpResponseCode = http.POST(httpRequestData);
http.end();
}
}
Pengujian Sistem dan Hasil Evaluasi Real
Berdasarkan pengujian lapangan secara langsung pada aliran sungai (seperti pengujian empiris pada lokasi Sungai Belik di Kampung Sagan dan Kampung Iromejan), sistem ini mencatatkan performa sebagai berikut:
- Akurasi Pembacaan Tinggi: Pengujian perbandingan antara sensor ultrasonik dan alat ukur manual menghasilkan tingkat akurasi tinggi sebesar 98,50%, dengan rata-rata tingkat error hanya sebesar 1,27%.
- Pengiriman Notifikasi Sangat Cepat: Notifikasi pesan push pada aplikasi Telegram terbukti sangat responsif dengan rata-rata delay pengiriman hanya 1,82 detik (berkisar antara 2 hingga 5 detik sejak status bahaya terdeteksi).
- Batas Jarak Efektif Sensor: Pengujian menunjukkan bahwa kesalahan pembacaan (error) cenderung meningkat ketika jarak pengukuran melampaui 300 cm (3 meter). Hal ini disebabkan oleh sudut pantulan gelombang ultrasonik yang tidak kembali sempurna serta turbulensi pada permukaan air.
Tips Perawatan dan Pitfalls yang Harus Dihindari
- Perawatan Sensor: Bersihkan permukaan sensor HC-SR04 secara berkala dari kotoran sungai, sampah terapung, atau percikan lumpur yang dapat menghalangi pemancaran gelombang ultrasonik.
- Pemeliharaan Panel Surya: Pastikan kaca panel surya selalu bersih dari debu, dedaunan, atau lumut agar proses pengisian daya baterai 18650 tetap maksimal.
- Jalur Pancaran Bebas Hambatan (Unobstructed Line of Sight): Pasang posisi sensor secara vertikal dan tegak lurus. Pastikan tidak ada tiang, kabel, atau struktur fisik yang menghalangi lintasan gelombang suara ke permukaan air.
- Stabilitas Daya Mikrokontroler: Jangan biarkan pin
CHIP_PUpada ESP32 dalam kondisi mengambang (floating). Pemasangan sirkuit penunda RC sangat krusial untuk mencegah reset berulang pada sistem saat terjadi fluktuasi tegangan.
Kesimpulan
Kombinasi antara komponen open-source berbiaya terjangkau seperti ESP32, sistem manajemen daya mandiri, serta integrasi pesan instan Telegram terbukti mampu menghasilkan sistem peringatan dini banjir (Early Warning System) berbasis masyarakat yang efektif dan responsif. Kecepatan notifikasi dalam hitungan detik mampu memangkas keterlambatan informasi manual sehingga proses evakuasi dapat dilakukan lebih awal. Yuk, sobat maker, rakit proyek IoT ini sekarang dan bantu amankan lingkungan sekitarmu dari ancaman banjir luapan!
Cara Bikin Sistem Deteksi Banjir IoT dengan Alarm Bertingkat dan Notifikasi Telegram
Halo, Sobat IoT! Pernahkah kamu merasa ruangan di rumah tiba-tiba terasa lembap sampai tembok berjamur, atau malah sebaliknya, udara jadi... selengkapnya
Flow meter yaitu sebuah sensor yang berfungsi untuk menghitung aliran air (debit) dan volume air dalam suatu alur dan... selengkapnya
Telegram adalah sebuah aplikasi chating yang cukup banyak penggunanya dan telegram ini dapat menjawab sendiri sesuai dengan perintah yang... selengkapnya
Bagi pegiat teknologi, komputer, elektronika, dan Internet Of Things (IoT) maka sudah tidak asing lagi dengan benda yang satu... selengkapnya
Motor DC sering digunakan dalam proyek Raspberry Pi seperti robot, kipas otomatis, conveyor mini, dan berbagai sistem mekanik lainnya. Namun,... selengkapnya
Menjaga kondisi lingkungan ruang server tetap stabil adalah hal yang sangat krusial bagi kelangsungan operasional sistem TI. Jika suhu dan... selengkapnya
Dalam menjalankan bisnis online tentu saja harus memperhatikan beberapa aspek agar bisnis kita berjalan dengan lancar. Sebagai contoh di... selengkapnya
Raspberry Pi tidak hanya bisa menyalakan LED atau membaca input dari tombol, tapi juga bisa digunakan untuk membuat simulasi lampu... selengkapnya
Sensor getar Piezoelectric Ceramic (Piezo) merupakan sensor getaran sederhana namun sangat sensitif yang mampu menghasilkan tegangan saat terjadi tekanan atau... selengkapnya
Melanjutkan tutorial dari postingan sebelumnya tentang cara memulai menggunakan telegram pada NodeMCU, kali kita akan membahas cara membuat notifikasinya... selengkapnya
Modul sensor tegangan AC bolak balik 1 fasa ini menggunakan optocoupler sehingga tegangan input (AC) tidak akan mengganggu/membahayakan tegangan output… selengkapnya
Rp 21.000Bagaimana jika mikrokontroler yang anda gunakan tidak memiliki port ADC. atau anda masih kurang dengan spesifikasi resolusi ADC yang disediakan… selengkapnya
Rp 65.000ESP-WROOM-32 is Powered by Espressif’s most advanced SoC, the ESP-WROOM-32 features high performance, a wide range of peripherals, Wi-Fi and… selengkapnya
Rp 38.400Modul sensor tegangan AC bolak balik 3 fasa ini menggunakan optocoupler sehingga tegangan input (AC) tidak akan mengganggu/membahayakan tegangan output… selengkapnya
Rp 57.000Features – Calibrated directly in Celsius (Centigrade) – Linear + 10.0 mV/C scale factor – 0.5C accuracy guaranteeable (at +25C)… selengkapnya
Rp 8.000Case patern: Solid Warna : Merah dan Hijau Current: 10-20 mA Diameter: 3mm
Rp 300Kabel Jumper Dupont Pelangi 10 cm male to male 1 lembar = 40 kabel
Rp 13.0002000W SCR Electronic Voltage Regulator Speed Controller Dimmer Thermostat Aplikasi : Kontrol temperature heater, kontrol kecepatan fan/bor tangan/gurinda tangan, kompor… selengkapnya
Rp 19.500Item Deskripsi : This module performance is stable, measure the distance accurately. performance nearly the same as SRF05, SRF02 SRF05,… selengkapnya
Rp 13.900Cara Bikin Sistem Deteksi Banjir IoT dengan Alarm Bertingkat dan Notifikasi Telegram
Kategori
Artikel Terkait
-
Rancang Sistem Kontrol Kecepatan Motor DC Otomatis Berdasarkan Beban
-
Bikin Sistem Parkir Otomatis dengan Penghitung Kendaraan dan Indikator Slot Kosong
-
Rancang Sistem Pendeteksi Kebakaran dengan Kipas Otomatis dan Alarm Peringatan
-
Bikin Alat Monitoring Konsumsi Listrik Rumah Secara Real-Time Berbasis ESP32
-
Bikin Sistem Keamanan Pintu Berbasis RFID dengan Notifikasi Telegram

Saat ini belum tersedia komentar.