GSM alarm

Uporabniški avatar
Milenko
Prispevkov: 1200
Pridružen: Pe Nov 08, 2002 9:56 am
Kraj: Glavica Milenko, Maribor, tel:068/164-387
Kontakt:

GSM alarm

Odgovor Napisal/-a Milenko »

Gsm-Attiny85-alarm

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
  }
}
več o senzorju na strani:

https://lastminuteengineers.com/pir-sen ... -tutorial/

o SIM800L gsm modulu:

https://lastminuteengineers.com/sim800l ... -tutorial/
Nimate dovoljenj za ogled prilog tega prispevka.
tehnologija za prihodnost.

www.algenera.com