2025-04-13 14:59:01 -03:00
|
|
|
#include <Arduino.h>
|
|
|
|
#include "alarm.h"
|
2025-04-13 22:53:18 -03:00
|
|
|
#include "DoorSensor.h"
|
2025-04-13 14:59:01 -03:00
|
|
|
#include "LedController.h"
|
2025-04-13 22:53:18 -03:00
|
|
|
#include "Siren.h"
|
2025-04-13 14:59:01 -03:00
|
|
|
// #include <WiFi.h>
|
2025-04-10 21:10:23 -03:00
|
|
|
|
2025-04-13 22:53:18 -03:00
|
|
|
AlarmStatus s;
|
|
|
|
DoorSensor doorSensor(&s);
|
2025-04-13 14:59:01 -03:00
|
|
|
LedController led(&s);
|
2025-04-13 22:53:18 -03:00
|
|
|
Siren siren(&s);
|
2025-04-13 14:59:01 -03:00
|
|
|
|
2025-04-14 11:19:55 -03:00
|
|
|
void printStatus()
|
|
|
|
{
|
2025-04-13 14:59:01 -03:00
|
|
|
String msg = String("Door: ") + String(doorSensor.IsDoorOpen() ? "Open" : "Closed");
|
2025-04-14 11:19:55 -03:00
|
|
|
msg = msg + " | Alarm: " + String(s.isArmed ? "Armed" : "Disarmed");
|
|
|
|
msg = msg + " | Is Fired: " + String(s.isFired ? "Fired" : "Not Fired");
|
|
|
|
msg = msg + " | Led: " + String(s.ledOn ? "On" : "Off");
|
|
|
|
msg = msg + " | Silent: " + String(s.silent ? "Silent" : "Loud");
|
|
|
|
msg = msg + " | Muted: " + String(s.muted ? "Muted" : "Not Muted");
|
2025-04-13 14:59:01 -03:00
|
|
|
Serial.println(msg);
|
|
|
|
}
|
2025-04-14 11:19:55 -03:00
|
|
|
|
|
|
|
void setup()
|
|
|
|
{
|
2025-04-10 21:10:23 -03:00
|
|
|
Serial.begin(115200);
|
|
|
|
|
2025-04-13 14:59:01 -03:00
|
|
|
doorSensor.Init();
|
|
|
|
led.Init();
|
2025-04-13 22:53:18 -03:00
|
|
|
siren.Init();
|
2025-04-13 14:59:01 -03:00
|
|
|
|
2025-04-14 11:19:55 -03:00
|
|
|
s.silent = true;
|
2025-04-13 14:59:01 -03:00
|
|
|
s.isArmed = doorSensor.IsDoorClosed();
|
2025-04-14 11:19:55 -03:00
|
|
|
|
2025-04-13 14:59:01 -03:00
|
|
|
// WiFi.mode(WIFI_STA);
|
|
|
|
// WiFi.disconnect();
|
|
|
|
// delay(100);
|
2025-04-10 21:10:23 -03:00
|
|
|
|
2025-04-13 22:53:18 -03:00
|
|
|
printStatus();
|
2025-04-10 21:10:23 -03:00
|
|
|
}
|
|
|
|
|
2025-04-14 11:19:55 -03:00
|
|
|
void loop()
|
|
|
|
{
|
2025-04-13 14:59:01 -03:00
|
|
|
doorSensor.HandleDoor();
|
|
|
|
|
2025-04-14 11:19:55 -03:00
|
|
|
if (s.doorChanged)
|
|
|
|
{
|
2025-04-13 14:59:01 -03:00
|
|
|
DoorEvent();
|
|
|
|
}
|
2025-04-14 11:19:55 -03:00
|
|
|
s.doorChanged = false;
|
2025-04-13 14:59:01 -03:00
|
|
|
|
2025-04-14 11:19:55 -03:00
|
|
|
if (s.isFired)
|
|
|
|
{
|
2025-04-13 22:53:18 -03:00
|
|
|
siren.SoundSiren();
|
|
|
|
}
|
|
|
|
|
2025-04-13 14:59:01 -03:00
|
|
|
led.Update();
|
|
|
|
|
2025-04-13 22:53:18 -03:00
|
|
|
// delay(1000);
|
2025-04-13 14:59:01 -03:00
|
|
|
}
|
2025-04-10 21:10:23 -03:00
|
|
|
|
2025-04-14 11:19:55 -03:00
|
|
|
void DoorEvent()
|
|
|
|
{
|
|
|
|
if (doorSensor.IsDoorOpen())
|
|
|
|
{
|
2025-04-13 14:59:01 -03:00
|
|
|
Serial.println("The door-opening");
|
2025-04-14 11:19:55 -03:00
|
|
|
if (!s.isArmed)
|
2025-04-13 14:59:01 -03:00
|
|
|
{
|
|
|
|
Serial.println("Alarm is dissarmed, not fireing");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
Serial.println("Alarm is armed, firing");
|
2025-04-14 11:19:55 -03:00
|
|
|
s.isFired = true;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2025-04-13 22:53:18 -03:00
|
|
|
// delay(500);
|
2025-04-13 14:59:01 -03:00
|
|
|
Serial.println("The door-closing");
|
2025-04-14 11:19:55 -03:00
|
|
|
s.isArmed = true;
|
2025-04-13 14:59:01 -03:00
|
|
|
}
|
2025-04-10 21:10:23 -03:00
|
|
|
}
|