La casa è protetta da un antifurto perimetrale composto da reed (contatti magnetici) applicati a ogni
finestra. I contatti magnetici sono particolari interruttori che permettono il passaggio della corrente
a seconda che un magnete sia allontanato o avvicinato al dispositivo, in questo caso esso è posto su un oggetto mobile (porta o finestra). Mentre il sistema è abilitato, non appena una finestra o
porta viene aperta, l’allarme si attiva con una segnalazione acustica, ottenuta tramite un campanello, e da una segnalazione visiva data da una luce lampeggiante. Il sistema anti intrusione è attivabile e disattivabile tramite tastierino numerico, digitando una password. Il programma visualizza lo stato dell’allarme sul display della centralina.
Programma Arduino
#include <Keypad.h>
#define sirena 24
#define LEDA 17
#define mg1 4
#define mg2 3
#define mg3 2
#define mg4 44
#define mg5 45
#define mg6 14
#define mg7 15
#define mg8 16
int x = 0;
int y = 0;
int m = 0;
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {34, 35, 36,
37};
byte colPins[COLS] = {38, 39, 40};
Keypad keypad = Keypad(
makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void
setup()
{
pinMode(LEDA, OUTPUT);
pinMode
(sirena, OUTPUT);
pinMode
(mg1, INPUT);
pinMode
(mg2, INPUT);
pinMode
(mg3, INPUT);
pinMode
(mg4, INPUT);
pinMode
(mg5, INPUT);
pinMode
(mg6, INPUT);
pinMode
(mg7, INPUT);
pinMode
(mg8, INPUT);
keypad.addEventListener(keypadEvent);
void
loop()
{
char
key = keypad.getKey();
pinMode (
x == 0) {
lcd.setCursor(0, 0);
lcd.print("CASA
DOMOTICA ");
lcd.setCursor(0, 1);
lcd.print("allarme off
");
}
else {
lcd.setCursor(0,
0);
lcd.print("CASA DOMOTICA
");
lcd.setCursor(0,
1);
lcd.print("allarme on
");
}
if ( (digitalRead(mg1) == LOW)
|| (digitalRead (mg2) == LOW) || (digitalRead
(mg3) == LOW) || (digitalRead
(mg4) == LOW) || (digitalRead
(mg5) == LOW) || (digitalRead
(mg6) == LOW) || (digitalRead
(mg7) == LOW) || (digitalRead
(mg8) == LOW)) {
y = 1;
}
else {
y = 0;
}
if (( y ==
1) && ( x == 1)) {
do {
digitalWrite(sirena,
HIGH);
do {
digitalWrite(LEDA,
HIGH);
delay(100);
digitalWrite(LEDA,
LOW);
delay(100);
m = m + 1;
}
while
(m < 1);
m = 0;
char
key = keypad.getKey();
}
while (x == 1);
digitalWrite(sirena,
LOW);
digitalWrite(LEDA,
LOW);
}
}
void
keypadEvent(KeypadEvent key) {
switch (keypad.getState()) {
case PRESSED:
if
(key == '#') {
x = !x;
}
break;
}
}
Nessun commento:
Posta un commento