#include <Arduino.h>
#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Definisi pin
#define TRIG_PIN 27
#define ECHO_PIN 26
#define BUZZER_PIN 23
#define LED_PIN 13
void setup() {
// Inisialisasi pin
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
// Inisialisasi serial komunikasi
Serial.begin(115200);
lcd.init(); // Inisialisasi LCD
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Sistem Siaga");
}
void loop() {
// Mengirimkan pulsa trigger
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Membaca durasi dari echo
long duration = pulseIn(ECHO_PIN, HIGH);
// Menghitung jarak
float distance = (duration * 0.034) / 2;
// Tampilkan jarak di serial monitor
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Deteksi kebocoran
if (distance < 20.0) { // Anggap jarak < 20 cm sebagai kebocoran
digitalWrite(BUZZER_PIN, HIGH); // Nyalakan buzzer
digitalWrite(LED_PIN, HIGH); // Nyalakan LED
lcd.setCursor(0, 1);
lcd.print("Benda Asing Terdeteksi!");
} else {
digitalWrite(BUZZER_PIN, LOW); // Matikan buzzer
digitalWrite(LED_PIN, LOW); // Matikan LED
lcd.setCursor(0, 1);
lcd.print("Kondisi Aman"); // Membersihkan baris kedua
}
delay(500); // Penundaan 500 ms
}