#include<LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int trig = 6;
int echo = 5;
long waktu, LevelAir;
int buzzer = 2;
int ledYellow = A0;
int ledGreen = A1;
int ledBlue = A2;
int ledRed = A3;
void setup() {
lcd.init(); //untuk inisialisasi lcd, untuk memulai komunikasi dengan arduino
lcd.backlight(); //untuk menyalakan lampu latar lcd
lcd.clear(); //berfungsi untuk menghapus semua karakter yang ada di lcd, termasuk spasi dan titik
lcd.setCursor(3,0); //mau mulai darimana (x,y) jadi itu x = 2, y=0
lcd.print("WATER LEVEL");
lcd.setCursor(3,1);
lcd.print("WTP BALITAS");
delay(2000);
lcd.clear();
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
Serial.begin(9600); //perantara antar arduino dengan monitor, untuk mengaktifkan serial monitor di layar laptop
pinMode(buzzer, OUTPUT);
pinMode(ledYellow, OUTPUT);
pinMode(ledRed, OUTPUT);
pinMode(ledBlue, OUTPUT);
pinMode(ledGreen, OUTPUT);
}
void loop() {
digitalWrite(trig, HIGH); // untuk mengaktifkan transmitter
delayMicroseconds(5);
digitalWrite(trig, LOW);
delayMicroseconds(5);
waktu = pulseIn(echo, HIGH); // untuk mengaktifkan echo
LevelAir = waktu/58.4;
Serial.print("LevelAir= ");
Serial.print(LevelAir);
Serial.println(" cm");
lcd.setCursor(0,0);
lcd.print("LevelAir= ");
lcd.setCursor(8,0);
lcd.print(LevelAir);
lcd.print(" cm ");
delay(200);
if (LevelAir > 350) {
digitalWrite(ledGreen, HIGH); // Nyalakan LED merah jika level air lebih dari 350 cm
digitalWrite(ledYellow, LOW); // Matikan LED hijau
digitalWrite(ledBlue, LOW); // Matikan LED biru
digitalWrite(ledRed, LOW);
tone(buzzer, 500, 2000);
} else if (LevelAir > 300) {
digitalWrite(ledGreen, LOW); // Matikan LED merah
digitalWrite(ledBlue, HIGH); // Nyalakan LED hijau jika level air antara 301 dan 349 cm
digitalWrite(ledYellow, LOW); // Matikan LED biru
digitalWrite(ledRed, LOW);
} else if (LevelAir > 200) {
digitalWrite(ledGreen, LOW); // Matikan LED merah
digitalWrite(ledBlue, LOW); // Nyalakan LED hijau jika level air antara 201 dan 299 cm
digitalWrite(ledYellow, HIGH); // Matikan LED biru
digitalWrite(ledRed, LOW);
} else {
digitalWrite(ledYellow, LOW); // Matikan LED merah
tone(buzzer, 500, 2000);
digitalWrite(ledGreen, LOW); // Matikan LED hijau
digitalWrite(ledRed, HIGH); // Nyalakan LED biru jika level air dibawah 200 atau lebih rendah
digitalWrite(ledBlue, LOW);
}
}