#include <WiFi.h> // Library yang benar untuk ESP32
// Definisikan pin
#define PIR_PIN 5
#define TRIG_PIN 12
#define ECHO_PIN 13
#define BUZZER_PIN 16
#define LED_PIN 2
// Konfigurasi WiFi
char ssid[] = "RUMAH KE 2"; // Masukkan SSID Wi-Fi Anda di sini
char pass[] = "lemaknian"; // Masukkan password Wi-Fi Anda di sini
long duration;
int distance;
int threshold_distance = 100; // Ambang batas jarak (dalam cm) untuk mengaktifkan alarm (100 cm)
void setup() {
// Mulai komunikasi serial
Serial.begin(9600);
// Inisialisasi pin
pinMode(PIR_PIN, INPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
// Sambungkan ke Wi-Fi
Serial.println("Connecting to WiFi...");
WiFi.begin(ssid, pass);
int attempts = 0;
// Tunggu hingga terhubung ke Wi-Fi
while (WiFi.status() != WL_CONNECTED && attempts < 20) { // Maksimum 20 percobaan
delay(1000);
Serial.print(".");
attempts++;
}
// Cek status koneksi Wi-Fi
if (WiFi.status() == WL_CONNECTED) {
Serial.println("\nConnected to WiFi");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
} else {
Serial.println("Failed to connect to WiFi");
}
}
void loop() {
// Baca deteksi gerakan dari sensor PIR
int motionDetected = digitalRead(PIR_PIN);
if (motionDetected == HIGH) {
Serial.println("Motion detected!");
digitalWrite(BUZZER_PIN, HIGH); // Nyalakan buzzer
digitalWrite(LED_PIN, HIGH); // Nyalakan LED
delay(5000); // Tunggu selama 5 detik sebelum pengecekan gerakan berikutnya
} else {
digitalWrite(BUZZER_PIN, LOW); // Matikan buzzer
digitalWrite(LED_PIN, LOW); // Matikan LED
}
// Mengukur jarak dengan sensor ultrasonik (HC-SR04)
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance = duration * 0.0344 / 2; // Menghitung jarak dalam cm
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Periksa apakah jarak lebih kecil dari threshold (100 cm)
if (distance < threshold_distance) {
Serial.println("Ada orang mendekat!"); // Notifikasi jika ada objek dalam jarak 100 cm
digitalWrite(BUZZER_PIN, HIGH); // Nyalakan buzzer jika jarak kurang dari threshold
digitalWrite(LED_PIN, HIGH); // Nyalakan LED
} else {
digitalWrite(BUZZER_PIN, LOW); // Matikan buzzer
digitalWrite(LED_PIN, LOW); // Matikan LED
}
delay(500); // Tunggu sebentar sebelum pengulangan
}