Code
Code
h>
#include <TinyGPS++.h>
// Pin definitions
#define MOTION_SENSOR_PIN 2
#define BUZZER_PIN 3
#define DOOR_SWITCH_PIN 4
#define RED_LED_PIN 5
#define BLUE_LED_PIN 6
#define CAMERA_TRIGGER_PIN 7 // Pin to trigger image capture
// Time thresholds
#define MOTION_TIMEOUT_MS 5000 // 5 seconds
#define DOOR_TIMEOUT_MS 5000 // 5 seconds
// Initialize objects
SoftwareSerial gsmSerial(GSM_RX_PIN, GSM_TX_PIN);
TinyGPSPlus gps;
// Function prototypes
void sendSMS(String message);
void activateAlarm();
void deactivateAlarm();
void captureImage();
void loop() {
// Check motion sensor
if (digitalRead(MOTION_SENSOR_PIN) == HIGH) {
motionDetected = true;
motionTriggerTime = millis();
} else if (millis() - motionTriggerTime > MOTION_TIMEOUT_MS) {
motionDetected = false;
}
// Intrusion detection
if (motionDetected && doorOpened) {
activateAlarm();
String message = "Intruder detected at your property!";
sendSMS(message);
captureImage();
delay(5000);
}
void activateAlarm() {
digitalWrite(BUZZER_PIN, HIGH);
digitalWrite(RED_LED_PIN, HIGH);
digitalWrite(BLUE_LED_PIN, HIGH);
delay(1000);
}
void deactivateAlarm() {
digitalWrite(BUZZER_PIN, LOW);
digitalWrite(RED_LED_PIN, LOW);
digitalWrite(BLUE_LED_PIN, LOW);
}
void captureImage() {
digitalWrite(CAMERA_TRIGGER_PIN, HIGH);
delay(100);
digitalWrite(CAMERA_TRIGGER_PIN, LOW);
}