#include <Servo.h>
Servo slidingGateServo;
Servo windowServo;
Servo garageDoorServo;
const int pirPin = 2;
const int trigPin = 4;
const int echoPin = 5;
const int rainSensorPin = A0;
const int tempSensorPin = A1;
const int ldrPin = A2;
const int livingRoomLed = 6;
const int bedroomLed = 7;
const int gardenLed = 8;
const int redWarningLed = 12;
long duration;
int distance;
int tempValue;
int ldrValue;
int rainValue;
int pirState = LOW;
void setup() {
// Servo setup
slidingGateServo.attach(9); // Sliding Gate Servo on Pin 9
windowServo.attach(10); // Window Servo on Pin 10
garageDoorServo.attach(11); // Garage Door Servo on Pin 11
// LED and sensor setup
pinMode(pirPin, INPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(livingRoomLed, OUTPUT);
pinMode(bedroomLed, OUTPUT);
pinMode(gardenLed, OUTPUT);
pinMode(redWarningLed, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Ultrasonic Sensor for Sliding Gate
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
if (distance < 50) {
slidingGateServo.write(90); // Open gate when distance < 20cm
} else {
slidingGateServo.write(0); // Close gate
}
if (distance < 20) {
garageDoorServo.write(90); // Open gate when distance < 20cm
} else {
garageDoorServo.write(0); // Close gate
}
// PIR Sensor for Security (Red LEDs)
pirState = digitalRead(pirPin);
if (pirState == HIGH) {
digitalWrite(redWarningLed, HIGH); // Turn on warning light
} else {
digitalWrite(redWarningLed, LOW); // Turn off warning light
}
// LDR for Garden Lights
ldrValue = analogRead(ldrPin);
if (ldrValue < 300) {
digitalWrite(gardenLed, HIGH); // Turn on garden light
} else {
digitalWrite(gardenLed, LOW); // Turn off garden light
}
// Raindrop Sensor for Window Control
rainValue = analogRead(rainSensorPin);
if (rainValue < 300) {
windowServo.write(90); // Close window if it rains
} else {
windowServo.write(0); // Keep window open otherwise
}
delay(1000);
}