#include <ESP32Servo.h>
#define PIR_SENSOR 27
#define BUZZER 14
#define LED 12
#define RELAY 26
#define SERVO_PIN 15
Servo myServo;
void setup() {
Serial.begin(115200);
pinMode(PIR_SENSOR, INPUT);
pinMode(BUZZER, OUTPUT);
pinMode(LED, OUTPUT);
pinMode(RELAY, OUTPUT);
myServo.attach(SERVO_PIN);
// Initial states
digitalWrite(BUZZER, LOW);
digitalWrite(LED, LOW);
digitalWrite(RELAY, LOW);
myServo.write(0);
Serial.println("Security System Ready...");
}
void loop() {
int motion = digitalRead(PIR_SENSOR);
if (motion == HIGH) {
Serial.println("⚠ MOTION DETECTED!");
digitalWrite(LED, HIGH); // Turn on LED
digitalWrite(BUZZER, HIGH); // Sound alarm
digitalWrite(RELAY, HIGH); // Trigger relay (ON)
myServo.write(90); // Move servo to 90 degrees
delay(2000); // Alarm active for 2 seconds
}
else {
digitalWrite(LED, LOW);
digitalWrite(BUZZER, LOW);
digitalWrite(RELAY, LOW);
myServo.write(0); // Servo returns to 0°
}
delay(100);
}