// IOT2 - 29 FARID SYAIFUL HIDAYAT
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
String note;
void setup() {
lcd.init();
lcd.backlight();
Serial.begin(115200);
//ULTRASONIC
pinMode(LED_BUILTIN, OUTPUT);
pinMode(3, OUTPUT);
pinMode(2, INPUT);
//LED
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}
long bacaJarakCM(){ //bisa di ganti dengan float / int
digitalWrite(3,0);
delayMicroseconds(2);
digitalWrite(3,1);
delayMicroseconds(10);
digitalWrite(3,0);
int durasi = pulseIn(2,1);
//return durasi * 0.034 / 2;
return (durasi / 2) / 29.1;
}
void deteksi() {
int jarak = bacaJarakCM();
Serial.print("Jarak Air: ");
Serial.print(bacaJarakCM());
Serial.print("cm | ");
Serial.println(note);
if (jarak <= 50){
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
note ="Status: Banjir";
//
lcd.setCursor(0, 0);
lcd.print("Jarak Air: ");
lcd.print(bacaJarakCM());
lcd.print("cm ");
lcd.setCursor(0, 1);
lcd.print(note);
lcd.print(" ");
}
else if(jarak >= 50 && jarak <=100) {
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
note = "Status: Siaga";
//
lcd.setCursor(0, 0);
lcd.print("Jarak Air: ");
lcd.print(bacaJarakCM());
lcd.print("cm ");
lcd.setCursor(0, 1);
lcd.print(note);
lcd.print(" ");
}
else if(jarak >= 100){
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
note = "Status: Aman";
//
lcd.setCursor(0, 0);
lcd.print("Jarak Air: ");
lcd.print(bacaJarakCM());
lcd.print("cm ");
lcd.setCursor(0, 1);
lcd.print(note);
lcd.print(" ");
}
else {
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
note = "";
}
delay(50);
}
void loop(){
deteksi();
}