#define PIR_PIN 7 // Pin untuk Sensor PIR
#define TRIG_PIN 9 // Pin Trigger untuk Sensor Ultrasonik
#define ECHO_PIN 8 // Pin Echo untuk Sensor Ultrasonik
#define BUZZER_PIN 6 // Pin untuk Buzzer
#define LED_PIN 10 // Pin untuk LED
void setup() {
Serial.begin(115200);
// Inisialisasi pin
pinMode(PIR_PIN, INPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
Serial.println("Sistem Keamanan Pintu Siap");
}
void loop() {
// Membaca status dari Sensor PIR
int pirStatus = digitalRead(PIR_PIN);
// Membaca jarak dari Sensor Ultrasonik
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
float distance = duration * 0.034 / 2; // Menghitung jarak dalam cm
Serial.print("Gerakan: ");
Serial.print(pirStatus == HIGH ? "Terdeteksi" : "Tidak Terdeteksi");
Serial.print(", Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Logika untuk alarm
if (pirStatus == HIGH || distance < 20) { // Gerakan terdeteksi atau jarak kurang dari 20 cm
digitalWrite(BUZZER_PIN, HIGH); // Buzzer ON
digitalWrite(LED_PIN, HIGH); // LED Merah ON
Serial.println("ALARM! Bahaya terdeteksi.");
} else {
digitalWrite(BUZZER_PIN, LOW); // Buzzer OFF
digitalWrite(LED_PIN, LOW); // LED Merah OFF
}
delay(500); // Tunggu sebelum iterasi berikutnya
}