Banjir merupakan salah satu bencana yang sering terjadi, terutama di daerah perkotaan dan sekitar aliran sungai. Salah satu solusi sederhana yang bisa dilakukan adalah membuat sistem monitoring ketinggian air secara otomatis.

Dengan memanfaatkan Arduino, kita bisa membuat sistem yang mampu:

  • Mendeteksi kenaikan air
  • Mengetahui kondisi hujan
  • Memberikan peringatan dini
  • Menampilkan data secara real-time

Project ini sangat cocok untuk:

  • Mahasiswa (praktikum / skripsi)
  • Pemula Arduino
  • Sistem IoT sederhana

Konsep Sistem

Sistem ini menggunakan 3 sensor utama dan LCD untuk monitoring:

Sensor → Arduino → LCD + Serial

Sensor yang digunakan:

  • Sensor Ultrasonik → mengukur jarak air
  • Sensor Hujan → mendeteksi hujan
  • Water Level Sensor → mendeteksi tinggi air

Alat dan Bahan

Komponen

Jumlah

Arduino Uno

1

Sensor Ultrasonik HC-SR04

1

Sensor Hujan

1

Water Level Sensor

1

LCD 16x2 I2C

1

Breadboard

1

Kabel jumper

Secukupnya

Rangkaian Sistem

  • Sensor Ultrasonik

Pin

Arduino

VCC

5V

GND

GND

TRIG

D9

ECHO

D10

  • Sensor Hujan

Pin

Arduino

VCC

5V

GND

GND

AO

A0

  • Water Level

Pin

Arduino

VCC

5V

GND

GND

Signal

A1

 

  • LCD I2C

Pin

Arduino

VCC

5V

GND

GND

SDA

A4

SCL

A5

  • Gambar Rangkaian

Cara Kerja Sistem

Sistem bekerja sebagai berikut:

  1. Sensor membaca kondisi lingkungan
  2. Arduino memproses data
  3. Data ditampilkan ke LCD
  4. Jika kondisi berbahaya → alarm aktif

Program Arduino

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define TRIG 9
#define ECHO 10

#define RAIN A0
#define WATER A1

LiquidCrystal_I2C lcd(0x27, 16, 2);

long durasi;
float jarak;

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

  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);

  lcd.init();
  lcd.backlight();

  lcd.setCursor(0, 0);
  lcd.print("Monitoring Air");
  lcd.setCursor(0, 1);
  lcd.print("Sistem Siap...");
  delay(2000);
  lcd.clear();
}

void loop() {
  // Baca sensor ultrasonic
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);

  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);

  durasi = pulseIn(ECHO, HIGH, 30000);
  jarak = durasi * 0.034 / 2;

  // Jika ultrasonic gagal membaca
  if (durasi == 0) {
    jarak = 999;
  }

  // Baca sensor hujan dan water level
  int hujan = analogRead(RAIN);
  int level = analogRead(WATER);

  bool kondisiAir = (jarak < 10);
  bool kondisiLevel = (level > 500);
  bool kondisiHujan = (hujan < 500);

  String status;

  if (kondisiAir && kondisiLevel) {
    status = "BAHAYA";
  } 
  else if (kondisiAir || kondisiLevel || kondisiHujan) {
    status = "SIAGA";
  } 
  else {
    status = "AMAN";
  }

  // Tampilkan ke Serial Monitor
  Serial.print("Jarak: ");
  Serial.print(jarak);
  Serial.print(" cm | Hujan: ");
  Serial.print(hujan);
  Serial.print(" | Level: ");
  Serial.print(level);
  Serial.print(" | Status: ");
  Serial.println(status);

  // Tampilkan ke LCD
  lcd.clear();

  lcd.setCursor(0, 0);
  lcd.print("J:");
  lcd.print(jarak, 0);
  lcd.print("cm ");

  lcd.print("H:");
  lcd.print(hujan);

  lcd.setCursor(0, 1);
  lcd.print("L:");
  lcd.print(level);
  lcd.print(" ");
  lcd.print(status);

  delay(1500);
}

Contoh Output LCD

J:8cm
BAHAYA

Kategori Kondisi

Kondisi

Status

Normal

AMAN

Hujan

SIAGA

Air tinggi

BAHAYA

Pengembangan Project

Project ini bisa dikembangkan menjadi:

  • IoT ESP32 + ThingSpeak
  • Monitoring berbasis web
  • Notifikasi Telegram / WhatsApp
  • Dashboard real-time

Sangat cocok untuk skripsi Anda

Kesimpulan

Project ini menggabungkan:

  • 3 sensor
  • LCD display
  • Komunikasi serial

Ini adalah mini sistem monitoring banjir berbasis IoT

Dengan project ini, Anda sudah memahami:

  • Input (sensor)
  • Proses (Arduino)
  • Output (LCD)

Ini adalah dasar untuk membangun sistem Smart Monitoring modern