-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFinalProjectThef.ino
74 lines (59 loc) · 1.71 KB
/
FinalProjectThef.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <SoftwareSerial.h>
#define RX_PIN 2
#define TX_PIN 3
#define SPEAKER_PIN 9
#define PIR_PIN 6
#define RED_LED_PIN 10
#define GREEN_LED_PIN 11
SoftwareSerial SimModule(RX_PIN, TX_PIN);
int pirSensorPin = PIR_PIN;
int redLedPin = RED_LED_PIN;
int greenLedPin = GREEN_LED_PIN;
bool motionDetected = false;
unsigned long lastMotionTime = 0;
const unsigned long cooldownPeriod = 10000;
void setup() {
pinMode(pirSensorPin, INPUT);
pinMode(SPEAKER_PIN, OUTPUT);
pinMode(redLedPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
digitalWrite(SPEAKER_PIN, LOW);
digitalWrite(redLedPin, LOW);
digitalWrite(greenLedPin, LOW);
Serial.begin(115200);
SimModule.begin(115200);
SimModule.print("AT");
}
void loop() {
checkSerial();
checkPIR();
}
void checkSerial() {
while (SimModule.available()) {
Serial.println(SimModule.readString());
}
while (Serial.available()) {
SimModule.println(Serial.readString());
}
}
void checkPIR() {
delay(2000);
int val = digitalRead(pirSensorPin);
if(val == HIGH && !motionDetected) {
Serial.println("Thef or Motion Detected");
Serial.println("Calling the Owner");
// If Motion Detected
digitalWrite(redLedPin, HIGH);
digitalWrite(SPEAKER_PIN, HIGH);
digitalWrite(greenLedPin, LOW);
motionDetected = true;
lastMotionTime = millis();
SimModule.println("ATD+639630488883+;");
if(millis() - lastMotionTime >= cooldownPeriod) {
motionDetected = false;
digitalWrite(SPEAKER_PIN, LOW);
digitalWrite(redLedPin, LOW);
digitalWrite(greenLedPin, HIGH);
}
}
}