#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16,2);
#define ECHO_PIN 2
#define TRIG_PIN 3
#define ledMerah 11
#define ledKuning 12
#define ledHijau 13
void setup(){
Serial.begin(115200);
lcd.init();
lcd.backlight();
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(ledMerah, OUTPUT);
pinMode(ledKuning, OUTPUT);
pinMode(ledHijau, OUTPUT);
}
float readDistanceCM(){
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration=pulseIn(ECHO_PIN, HIGH);
return duration *0.034/2;
}
void loop(){
float distance=readDistanceCM();
Serial.print("Measured Distance: ");
Serial.print(readDistanceCM());
Serial.print(" cm");
if(distance>=100){
digitalWrite(ledHijau, HIGH);
digitalWrite(ledMerah, LOW);
digitalWrite(ledKuning, LOW);
lcd.setCursor(0,0);
lcd.print("Jarak air:");
lcd.print(readDistanceCM());
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print(" AMAN");
lcd.print(" ");
}
else if((distance>=50) && (distance<100)){
digitalWrite(ledKuning, HIGH);
digitalWrite(ledMerah, LOW);
digitalWrite(ledHijau, LOW);
lcd.setCursor(0,0);
lcd.print(readDistanceCM());
lcd.print(" ");
lcd.setCursor(3,1);
lcd.print("Hati-hati Banjir");
lcd.print(" ");
}
else if(distance<50){
digitalWrite(ledMerah, HIGH);
digitalWrite(ledKuning, LOW);
digitalWrite(ledHijau, LOW);
lcd.setCursor(0,0);
lcd.print(readDistanceCM());
lcd.print(" ");
lcd.setCursor(1,1);
lcd.print("Bahaya Banjir");
lcd.print(" ");
delay(1000);
lcd.setCursor(1,1);
lcd.print("Segera Evakuasi");
delay(1000);
lcd.print(" ");
}
}