#include <LiquidCrystal_I2C.h>
const int trigPin = 5;
const int echoPin = 18;
#define sound_speed 0.034
#define cm_to_inch 0.393701
#define hijau 12
#define kuning 14
#define orange 4
#define merah 2
long duration;
float distanceCm;
float distanceInch;
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup(){
Serial.begin(115200);
lcd.init();
lcd.backlight();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(hijau, OUTPUT);
pinMode(kuning, OUTPUT);
pinMode(orange, OUTPUT);
pinMode(merah, OUTPUT);
lcd.setCursor(3,0);
lcd.print("Sensor Banjir");
lcd.setCursor(3,1);
lcd.print("Poljan Ciparay");
lcd.setCursor(6,2);
lcd.print("Citarum");
}
void loop(){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distanceCm = duration * sound_speed/2 + 0.06;
distanceInch = distanceCm * cm_to_inch;
Serial.print("Jarak (cm): ");
Serial.print(distanceCm);
digitalWrite(hijau, LOW);
digitalWrite(kuning, LOW);
digitalWrite(orange, LOW);
digitalWrite(merah, LOW);
if(distanceCm > 180){
Serial.println(" = AMAN");
digitalWrite(hijau, HIGH);
lcd.setCursor(0,3);
lcd.print("Aman");
}
else if(distanceCm > 150 && distanceCm < 180){
Serial.println(" = Siaga 1 !");
digitalWrite(kuning, HIGH);
lcd.setCursor(0,3);
lcd.print("Siaga 1");
}
else if(distanceCm > 120 && distanceCm < 150){
Serial.println(" = Siaga 2 !!");
digitalWrite(orange, HIGH);
lcd.setCursor(0,3);
lcd.print("Siaga 2");
}
else if(distanceCm < 120){
Serial.println(" = Siaga 3 !!!");
digitalWrite(merah, HIGH);
lcd.setCursor(0,3);
lcd.print("Siaga 3");
}
delay(1000);
}