ALARM 220

 

 

HOBBY "ALARM 220" s odposlechem

 

Byl navržen jednookruhový systém za účelem hlídání garáže. Z důvodu spolehlivosti byl zvolen dveřní koncový spínač (nikoliv pohybový senzor) a v rámci Arduina byl zvolen jednoduchý kód na základě smyčky "void loop()" bez uspání a přerušení. Od předností "Uspání a přerušení" bylo odstoupeno z důvodu citlivosti procesoru v daném režimu. Citlivost režimu "Uspání" by se mohla negativně projevit např. planými poplachy ze silných atmosférických výbojů v blízkosti zabezpečeného objektu.

Bylo naprogramováno odeslání varovné SMS, prozvonění s možnosti odposlechu (viz mikrofon na přední straně boxu) a spuštění sirény. Při poklesu napájecího napětí pod 30% kapacity baterie bylo naprogramováno odeslána informativní SMS. 

 

KONSTRUKCE

Byla použita deska NANO (UNO nepracuje spolehlivě s GSM volačem, viz kapitola "GSM modul"), GSM volač SIM800L, baterie LiPo 6000 mAh, napájecí modul  HLK-5M05 220/5V 3W, siréna 12V/1A, násobič napětí (MT3608) pro dosažení napětí houkačky, elektretový mikrofon, koncový spínač ME-8108, spínač na klíč a standardní plastová krabice Z28

Jako základní zdroj napětí byl zvolen akumulátor LiPo 3,7V, R633A Hadex, jehož napěťové rozpětí 3.6 - 4.2 V vyhovuje jak desce NANO, tak modulu GSM (v daném rozmezí byla ověřena funkčnost použitého modulu GSM). Integrovaná elektronika použité baterie zabraňuje nebezpečnému vybití a přebití. Na úrovní napětí 2.9 V a 4.45 V se baterie odpojí. Spínaný zdroj 220/5V 3W poskytuje proud max. 600 mA. Je připojen na baterii přes křemíkovou diodu s úbytkem 0.6-0.7V (podle zatížení) a odpor 6R 1W zajišťující omezení nabíjecího proudu na 230 mA při maximálním vybití baterie. Rovněž odpor a dioda "vybalancují" vhodné max. napětí baterie 4.15 V při plném nabití za stálého klidového odběru alarmu 35 mA (baterie LiPo by se neměla nabíjet více jak na 4.2 V, vyšší napětí snižuje životnost).  Napětí 12 V pro použitou sirénu zabezpečuje uvedený modul napěťového násobiče, který je spínán tranzistorem BD 681. Tranzistor je vhodné chladit.

Napětí baterie je sledováno analogovým vstupem A0 desky NANO s nastaveným vnitřním referenčním napětím 1.1V. Na pin A0 je přivedeno napětí baterie přes odporový dělič. V případě, že napětí baterie klesne na méně než 3.7 V je přes odporový dělič přivedeno na pin A0 napětí menší než 1.1V. Za daného stavu program odešle informativní SMS. Při odpojení dobíjení 220V klesá napětí baterie cca 7 dnů na úroveň 3.7V, dojde k odeslání informativní SMS a dále je alarm funkční ještě cca 2 dny. 

ALARM se spustí rozpojením koncového spínače vrat garáže. Pin D2 desky NANO byl nastaven do režimu PULLUP, tj. log."1". Koncový spínač je při zavřených vratech sepnut, tj. na pinu D2 je log."0".  Po otevření vrat se koncový spínač rozepne a spustí alarm logickou "1"  na pinu D2. Pro potlačení "zachvění" spínače byl k pinu D2 paralelně připojen kondenzátor 10 μF a sériový odpor 25 K.  

Volač SIM800L poskytuje možnost připojení elektretového mikrofonu pro odposlech v případě zvednutí vyzvánění. Podle doporučení výrobce SIM800L byl mikrofon opatřen vf odrušením kondenzátory 30 pF (odrušení pásma 850/900 MHz ) a 10 pF (odrušení pásma 1800/1900 MHz). Anténa GSM volače byla použita ve tvaru dipólu, umístěna uvnitř v levé části boxu. SIMka volače musí být předem zbavena PINu (je vhodné použít simku bez paušálních poplatků, např. tzv. "nulovku" od Vodafonu/2023).

Za účelem signalizace času odchodu byl použit bzučák 5V připojený na pin D12. Zapojení lze dle vlastního vkusu doplnit kontrolkami. Byla použita doutnavka signalizující připojení 220 V a blikající ledka signalizující připojení systému k baterii. Klidový odběr alarmu z baterie činil cca 35 mA. 

 

Mechanické provedení :

Spínaný zdroj 220/5V byl (pro jistotu) opatřen plechovým odstíněním.  "Nahromaděné" odpory mezi deskou NANO a odstíněným zdrojem 220/5V jsou výsledkem "ladění" dobíjení baterie s cílem omezit dobíjení na max. 4,15 V. Odpory lze nahradit jedním odporem o hodnotě 6R8 1W. USB konektor desky NANO je dostupný z vnějšku na pravé straně boxu.

 

Logistika alarmu

 - při odchodu se připojí alarm na napětí klíčkem, rozezvučí se bzučák na 20 sekund, systém čeká 20 sekund - čas odchodu

 - po odeznění 20ti sekund bzučáku musí být "vrata" zavřená, stav vrat je kontrolován každou sekundu

 - v případě narušení objektu se v čase 1 sekundy načte stav spínače vrat (systém byl tímto aktivován a pokud nebude včas vypnut, odešle varovnou SMS a prozvoní i kdyby byla vrata ihned zpět zavřena) a dále systém čeká 20 sekund (čas příchodu), pokud nebude alarm vypnut klíčkem do 20ti sekund, spustí se alarm  -  systém odešle varovnou SMSku, čeká 10 sekund a začne vyzvánět na mobil cca 2,5 minuty,

 - v době vyzvánění je možné zvednout telefon a poslechnout si mikrofonem zabudovaným ve skříňce alarmu co se děje v objektu a to v klidu po dobu 1 minuty od zahájení vyzvánění, pak se zapne siréna na bobu 3 minut,

 - po ukončení sirény se systém odmlčí na 1 hodinu (smyčka se zastaví) a poté opět smyčka kontroluje, zda jsou vrata zavřena, pokud budou otevřená, opět se spustí alarm (SMS, prozvonění, siréna), opět se odmlčí na hodinu atd. ... až do zavření vrat nebo vypnutí systému,

 - program alarmu kontroluje v klidovém režimu jednou za 12 hodin stav vnitřního akumulátoru (LiPo 6Ah) s nastavenou prahovou hodnotou 30% kapacity akumulátoru,

 - při přerušení napájení 220 V se začne baterie vybíjet, cca po sedmi dnech klesne napětí baterie na 3.75 V, systém odešle informativní SMS "Baterie se vybíjí",

 - pokud nedojde k obnovení napájení 220V, alarm "klekne" cca za 2 dny po odeslání SMSky "Baterie se vybíjí",

- stav systému je možné kdykoliv ověřit vytočením čísla SIMky alarmu, pokud se ozve vyzváněcí tón, systém je aktivní.  

 

 

Kód alarmu "ALARM_220.ino" :

 

//*************************
//ZADEJ TELEFONNÍ ČÍSLO                                       
String T = "+420xxxxxxxxx";                		//zadání telefonního čísla                 
//*************************
int A;
float D;                                                
float N; 
String telefon;              				//deklarace řetězce "telefon"                               
String S1 = "ATD";                                      //část příkazu pro vyzvánění    
String S2 = ";\r";                                      //část příkazu pro vyzvánění    
String SMScislo;                                        //deklarace řetězce "SMScislo"    
String K1 = "AT+CMGS=\"";                               //část příkazu pro odeslání SMS    
String K2 = "\"\r\n";                                   //část příkazu pro odeslání SMS    

void setup() {
Serial.begin(9600);                                         
analogReference(INTERNAL);          			//nastavení vnitřního referenčního napětí procesoru na 1.1 V                        
telefon = S1+T+S2;                                      //sestavení řetězce pro vytáčení čísla vyzvánění    
SMScislo = K1+T+K2;                                     //sestavení řetězce pro vytáčení čísla SMS    
pinMode(2, INPUT_PULLUP);                               //nastavení pinu D2 jako vstup s nastavením log."1" vnitřním odporem    
pinMode(12,OUTPUT);   					//nastavení pinu D12 jako výstup - bzučák odchodu                                      
pinMode(13, OUTPUT);                  			//nastavení pinu D13 jako výstup - siréna                      
digitalWrite(12,HIGH);     				//akční logická "1" na pin D12 - rozezvučí bzučák odchodu                                 
delay(20000);               				//čas bzučení bzučáku 20 sekund - čas odchodu                                
digitalWrite(12,LOW);}          			//vypne bzučák                            

void loop() {						//hlavní smyčka
int D1 = digitalRead(2);  				//načte pin D2, koncový spínač vrat                                   
if (D1 == HIGH) {               			//jestli je na pinu D2 log "1", pak:                            
delay (20000);                                          //čeká 20 sekund - čas příchodu, čas na vypnutí systému klíčkem    
Serial.println("AT+CFUN=1");                            //připraví funkčnost GSM modulu    
delay (1000);                              
Serial.print("AT+CMGF=1\r\n");         			//nastaví režim odesílání SMS                     
delay (1000);                              
Serial.print(SMScislo);                         	//vytočí číslo SMSky            
delay (1000);                                 
Serial.println("ALARM GARAZ");     			//odešle text SMSky                         
delay (1000);                                
Serial.println((char)26);      				//ukončí odesílání SMS                             
delay (10000);                       			//čas 10 sekund na přečtení SMSky                       
Serial.println("AT+CFUN=1");   				//připraví funkčnost GSM modulu                             
delay (1000);                                               
Serial.println(telefon);      				//vytáčí číslo vyzvánění (na délku vyzvánění operátora)                             
delay (120000);                        			//vyzvání 2 minuty s možností odposlechu v klidu (bez sirény)                      
digitalWrite(13, HIGH);      				//přiřadí pinu D13 logickou "1", spustí se siréna                               
delay (180000);                                         //siréna houká 3 minuty     
digitalWrite(13,LOW);                                   //siréna se vypne    
delay (3600000);}                                       //čas čekání na opakování kontroly stavu vrat, 1 hodina    
delay(1000);                                            //zpoždění smyčky 1 sekunda    
A=A+1;                          			//načítání cyklu smyčky, každou 1 sekundu se zvýší o 1                            
if (A>43200)                       			//12 hodin = 43200 cyklů smyčky, každých 12 hodin proběhne kontrola napětí baterie                         
{BATERIE();}}                                           //pokud je splněna podmínka "if" (pokud bude načteno 43200 cyklu, tj. 12 hodiny) provede se funkce "BATERIE"     

void BATERIE(){						//funkce BATERIE
N=analogRead(14);                               	//načtení napětí na pinu 14, tj. analogový pin A0           
D=((N/93000)*100);                                      //převod načtené 10ti bitové hodnoty na napětí ve voltech   
delay (10);
if (D<1.1)                         			//jestli je napětí D menší než 1,1 pak:                        
{Serial.println("AT+CFUN=1");         			//připraví funkčnost GSM modulu                     
delay (1000);                              
Serial.print("AT+CMGF=1\r\n");                          //nastaví režim odesílání SMS   
delay (1000);                              
Serial.print(SMScislo);                			//vytočí číslo SMS                  
delay (1000);                                 
Serial.println("ALARM GARAZ - BATERIE SE VYBIJI");      //odešle informativní SMS o stavu baterie   
delay (1000);                                
Serial.println((char)26);}                              //ukončí odesílání SMS   
A=0;}                                                   //vynuluje cyklus smyčky kontroly baterie 
    

Zadání telefonního čísla je vyvedeno před algoritmus programu. Ostatní časové parametry, čas odchodu, příchodu, časy periodických kontrol, časy vyzvánění a houkání, je možné nastavit na příslušných řádcích programu. Např. interval kontroly objektu, 1 hodina po spuštění prvního poplachu, lze změnit dle vlastního požadavku změnou příkazu "delay" v hlavní smyčce (zde "delay(3600000)"). Příkaz "delay" lze prodloužit na max. hodnotu 4 029 409 670 295, tj. 49 dnů. 

 

 

Uvedený alarm nemusí sloužit jen k zabezpečení garáže. Pokud bychom uplatnili tento návrh pro hlídání např. rekreačního objektu, lze zapojit libovolný počet spínačů do série místo zde použitého jednoho koncového spínače vrat, viz kapitola "Alarm baslt". Rozepnutím kteréhokoliv ze spínačů, případně narušením připojovacího vedení spínačů (narušitelem), by došlo k aktivaci alarmu. Box alarmu je vhodné umístit na skryté místo, aby nebyl narušiteli "na očích". Logistiku lze upravit podle vlastních představ, např. zkrátit čas příchodu, spustit nejprve vyzvánění aj.

Odběr ze světelné sítě 220 V při klidovém chodu alarmu byl naměřen 1.5 W.

 

 

Listopad 2020

 

Home

 

Arby

arduinohobby@email.cz