// Pin Definitions
#define DOORBELL_PIN 4 // Push button (doorbell)
#define BUZZER_PIN 5 // Buzzer
#define LED_PIN 2 // LED
#define PIR_PIN 14 // PIR Motion Sensor
void setup() {
Serial.begin(115200);
// Set pin modes
pinMode(DOORBELL_PIN, INPUT_PULLUP); // Button as input with pull-up resistor
pinMode(BUZZER_PIN, OUTPUT); // Buzzer as output
pinMode(LED_PIN, OUTPUT); // LED as output
pinMode(PIR_PIN, INPUT); // PIR sensor as input
Serial.println("Smart Doorbell System Ready");
}
void loop() {
// Check if doorbell button is pressed
if (digitalRead(DOORBELL_PIN) == LOW) {
Serial.println("Doorbell Pressed!");
// Turn on LED and buzzer
digitalWrite(LED_PIN, HIGH);
digitalWrite(BUZZER_PIN, HIGH);
delay(1000); // Buzzer sounds for 1 second
digitalWrite(BUZZER_PIN, LOW);
digitalWrite(LED_PIN, LOW);
// Debounce delay
delay(1000);
}
// Check if motion is detected by PIR sensor
if (digitalRead(PIR_PIN) == HIGH) {
Serial.println("Motion Detected!");
// Turn on LED as a visual indicator
digitalWrite(LED_PIN, HIGH);
delay(3000); // Keep LED on for 3 seconds
digitalWrite(LED_PIN, LOW);
}
}