Ko smo dalj časa odsotni si lahko iz modulov,ki jih imamo doma izdelamo preprost alarm,ki nas pokliče v primeru vloma.Izdelamo ga lahko z enostavnim uC Attiny serije 45 ali 85 in PIR senzorja.Programiramo ga preko ISP programatorja,programiramo pa v Arduino okolju.
Uporabljene so komponente/moduli(glej shemo):
-Attiny 45/84 uC
-PIR sensor HC-SR501
-SIM800L modul
-npn transistorček
-upori,dioda
-stikalo
-2 pin konektor
-5V adapter
Vezje lahko enostavno po shemi sestavimo na testirno ploščo,kot vidite na sliki.Ko prvič štartamo GSM kartico jo nastavimo na GSM aparatu,brez pin-a in pošljemo sms operaterju potrebno kodo ob prvi prijavi na omrežje.Sam sem uporabil BOB,ker prednaročniška katrica ima rok trajanja leto dni do prve polnitve. Torej leto dni nam je ni treba polniti.Na voljo imamo 100 enot minute/sms-e.
Na gsm modulu dodamo 1000uF elko blizu uC,zaradi velike tokovne porabe gsm modula ob prijavi na omrežje
Kako deluje:
Delovanje je zelo enostavno.
Ko PIR zazna IR energijo telesa,torej gibanje v prostoru,pokliče na gsm številko, ki smo jo vpisali v programu. Več številk lahko dodamo v primeru, če želimo, da alarm pokliče na več številk.Ko dobimo klic ga prekineno (rdeča tipka).Torej ne porabimo enot s kartice, gsm modul dobi signal zasedeno, s tem prekine klicanje.Več o delovanju gsm modula na linku.
Vezje je preko transistorja in vklopi minus pol (na PB4) oziroma maso, zaradi motenj se je izkazalo kot najboljša možnost.Če bi se pojavile motnje zaradi gsm modula,ovijemo PIR senzor v kovinski oklep (Faradeyeva kletka).
Na PIR senzorju nastavimo občutljivost in čas,občutljivost(sensivity) na polovico,to je cca 4-5m razdalje,čas(time) pa na 1/4,potenciometri se vrtijo v smeri urinega kazalca.Kasneje lahko to spremenimo, glede na potrebe, kdaj želimo, da se PIR senzor aktivira.Čas nastavimo na min,ker je dovolj samo sekunda ali dve za aktivacijo.Ko prispemo v prostor imamo 10 sekund časa da alarm izklopimo.Aktivira se šele po nekaj sekundah.Ta čas lahko spremenimo.Če radi programiramo,lahko uporabimo sms string za vklop in izklop alarma. Npr; on ali off ali pa 1 oziroma 0.
tukaj še program:
Koda: Izberi vse
#include <SoftwareSerial.h>
//Kreirajmo software serial povezavo za komunikacijo s SIM800L
SoftwareSerial mySerial(3, 4); //RX-PB3-pin2, TX-PB4-pin3....SIM800L Tx & Rx(logicni nivo 3.3V) povezava na attiny #2 & #3
void setup()
{
pinMode(1, INPUT_PULLUP);
Serial.begin(9600); //Zazeni serijsko komunikacijo z Arduino IDE (Serial Monitor)
mySerial.begin(9600);//Zazeni serijsko komunikacijo z Arduino(attiny85) in SIM800L
Serial.println("Initializing...");
delay(1000);
mySerial.println("AT"); //test GSM modula, vrne OK
updateSerial();
mySerial.println("AT+CSQ"); //Signal quality test, vrednost v rangu 0-31 , 31 je najboljše
updateSerial();
mySerial.println("AT+CCID"); //Prebere SIM in potrdi,da je kartica vstavljena
updateSerial();
mySerial.println("AT+CREG?"); //Preverba registracije na omrežje
updateSerial();
/*delay(3000); // počakaj da se GSM modem poveže na omrežje
mySerial.println("AT+CMGF=1"); // Konfiguriraj TEXT mode
updateSerial();
mySerial.println("AT+CMGS=\"+38641814xxx\"");//vstavi omrežno stevilko drzave in svojo gsm stevilko za sprejem sporocila sms
updateSerial();
mySerial.print("Ponovni zagon"); //vsebina texta
updateSerial();
mySerial.write(26);
*/
}
void loop()
{
if(digitalRead(1) == LOW) { //nizki logicni nivo z PIR senzorja
Call();
}
}
void Call()
{
delay(10000); // imamo 10 sekund časa,da alarm izklopimo
mySerial.println("ATD+ +38641814xxx;"); // vstavi omrežno stevilko drzave in svojo gsm stevilko za klic
updateSerial();
delay(20000); // pocakaj 20 sekund...
mySerial.println("ATH"); //odlozi
updateSerial();
}
void updateSerial()
{
delay(500);
while (Serial.available())
{
mySerial.write(Serial.read());//Posredovanje serijskega signala v serijski sofware port
}
while(mySerial.available())
{
Serial.write(mySerial.read());//Posredovanje serijskega signala v serijski sofware port
}
}
https://lastminuteengineers.com/pir-sen ... -tutorial/
o SIM800L gsm modulu:
https://lastminuteengineers.com/sim800l ... -tutorial/