Bateriově napájený GSM alarm

 

Před nedávnem jsem byl požádán, jestli bych nesestrojil zabezpečovací zařízení pro objekt, který se nachází někde v lesích mimo dosah elektrické sítě.
Při neoprávněném vniknutí do objektu měl být majitel upozorněn pomocí SMS, nebo alespoň prozvoněním mobilního telefonu.
Jedna z nejdůležitějších podmínek byla, aby zařízení bylo schopné pracovat na obyčejné baterie i několik měsíců bez zásahu obsluhy.

Navrhnul jsem tedy použití Arduina Mini Pro s GSM modulem.
Pokud by se někomu podobné zařízení také hodilo, zde je popis.
 



Základní popis

Zabezpečovací zařízení se nachází uvnitř objektu a je napájené třemi tužkovými bateriemi (=4,5V).
Na vstupních dveřích je umístěný koncový přepínač, který je k alarmu připojený pomocí 3 vodičů.

Po aktivaci hlídání pomocí "tajného" vypínače na desce alarmu má obsluha 20 sekund na to, aby opustila objekt. Během této doby není testován stav přepínače na dveřích.
Po uplynutí 20 sekund se zařízení uspí do stavu, ve kterém odebírá méně než 10uA. Z tohoto režimu spánku se zařízení probudí až otevřením dveří.

Po probuzení má uživatel dalších 20 sekund na to, aby deaktivoval hlídání pomocí "tajného" přepínače na desce.
Pokud ale do objektu přijde nezvaný host, neví, že má alarm deaktivovat a po 20 sekundách dojde k tomu, že se zapne napájení do GSM modulu.
V programu se pak spustí sekvence příkazů, které způsobí prozvonění zvoleného telefonního čísla (odesílání SMS se mi zatím zprovoznit nepodařilo).

Po prozvonění, které trvá asi 20 sekund se GSM modul odpojí a alarm přejde opět do režimu hlubokého spánku.


Proudový odběr

Kvůli maximální snaze o snížení odběru bylo nutné provést několik zásahů na desce Arduino Mini Pro.

Jednalo se hlavně o odstranění stabilizátoru a LED, která signalizuje přítomnost napájecího napětí.
Čerpal jsem z těchto stránek: http://home-automation-community.com.....

Odstranil jsem i několik kondenzátorů před a za stabilizátorem a kondenzátor na vstupu referenčního napětí, ale to už nemělo na odběr vliv.
 
  

Když je alarm deaktivovaný, nemá žádný proudový odběr (je odpojená baterie).
Okamžitě po aktivaci hlídání se odběr zvětší na dobu 20 sekund asi na 10mA.
Pak přejde zařízení do režimu spánku, ve kterém odebírá jen zhruba 6uA.
Po otevření dveří se proud na dalších 20 sekund opět zvětší na 10mA.
Když nedojde k deaktivaci hlídání, zapne se GSM modul. Odběr tohoto modulu kolísá podle způsobu komunikace s GSM sítí a krátkodobě může dosáhnout až na 200mA. V tomto režimu vydrží maximálně 120 sekund. Když se ale podaří navázat spojení se sítí rychleji, může se vypnout i dříve (čas pro navázání spojení + 20 sekund na prozvánění.)

 


Schéma

 


Některé detaily

Když jsem použil GSM modul v předchozím projektu, objevily se velké problémy s rušením Arduina signálem z antény na GSM modulu. Arduino se samo od sebe restartovalo, nebo se zasekávalo tak, že jsem musel provést ruční reset. Nepomáhalo ani vyhlazování napájení pomocí kondenzátorů.
Nakonec jsem zjistil, že za problémy může anténa, která byla příliš blízko procesoru ATmega328 na Arduinu. Vytvořil jsem kolem Arduina plechové stínění a od té doby už se žádný problém neobjevil.
V tomto zabezpečovacím zařízení jsem GSM modul umístil tak, aby byla anténa co možná nejdál od Arduina. K resetům už nedocházelo, ale pro jistotu jsem i tady Arduino raději oplechoval.

 
 
Protože si GSM modul bere z baterie opravdu velké proudy (zaznamenal jsem i špičku kolem 200mA), použil jsem pro napájení Arduina zapojení s kondenzátorem a Schottkyho diodou. Kdyby se stalo, že kvůli velkému odběru proudu poklesne napájecí napětí, zůstane Arduino ještě chvíli napájené z kondenzátoru C1. Dioda zajistí, že se ten kondenzátor nevybije do GSM modulu. Je možné použít i obyčejnou diodu. Schottka má ale výhodu v tom, že je na ní menší úbytek napětí v propustném směru, takže zbývá ještě o pár desetin voltů víc pro Arduino.

 
 
Přepínač, kterým se aktivuje, nebo deaktivuje hlídání, je dvojitý. Je to kvůli tomu, že kdyby došlo k deaktivaci alarmu v okamžiku, kdy je Arduino v režimu spánku, dokázal by samotný kondenzátor C1 ještě několik hodin Arduino napájet. Takže při následné aktivaci hlídání by Arduino ani nepoznalo, že mělo nějaký čas odpojenou baterii.
Druhý kontakt přepínače slouží právě k tomu, aby se při deaktivaci hlídání vybil kondenzátor C1 přes odpor R3. Tím bude zajištěno, že se při další aktivaci hlídání provede RESET procesoru.

 
 
Tlačítko na GSM modulu bylo třeba přemostit, aby se dal modul spustit jen pouhým připojením napájecího napětí: detailní fotka

 
 
Kontakt na dveřích je přepínací. Je to z toho důvodu, aby byla v obou polohách zajištěna jednoznačná logická úroveň na vstupu D2.
Sice by bylo možné použít Pull-Up odpor, který by na vstupu udržoval stále logickou "1". Při otevření dveří by se kontakt sepnul na GND a tím by se by se stav změnil na "0".
Problém byl ale v zadání úlohy. Byla tam podmínka, že když zloděj vykopne dveře (takže zůstanou trvale otevřené), mělo by zabezpečovací zařízení po prozvonění telefonu přejít opět do režimu s minimální spotřebou proudu.
Při použití Pull-Up odporu by při otevřených dveřích přes tento odpor do GND protékal trvale proud.
Je to ale asi jediná alternativa v případě, že je třeba zabezpečit více vstupů do objektu zároveň (okna i dveře).
Při použití Pull-Up odporu 56k je trvale protékající proud při otevřených dveřích něco pod 100uA  (  Ibat = (Ubat - Uschott) / RPull-Up  ).
Tady je schéma zapojení pro více hlídaných vstupů do objektu: vicevstupu.gif

 
 
Hlídač reaguje pouze na sestupnou hranu signálu na vstupu D2. Když tedy narušitel nechá otevřené dveře, dalšího zloděje už systém nezachytí.



Program

Před kompilací je nutné v programu zadat správné telefonní číslo, které se má prozvánět:

 


Kvůli snížení odběru proudu bylo třeba také přenastavit FUSE bity v ATmega328:



Ukázkové video

 

 


 



úvodní strana webu AstroMiK.org


poslední úprava stránky 10.4.2017