Byl jsem požádán o stavbu alarmu s přenosem poplachu na dálku pomocí mobilního telefonu. Na trhu existují buď hotová zařízení, jejichž cena je dosti vysoká, nebo stavebnice, u kterých je sice cena o něco příznivější, ale není u nich možnost úpravy podle požadavků uživatele. Vydal jsem se proto hledat na internet, a našel jsem vynikající stránky s touto tematikou, dokonce česky. Rozhodl jsem se postavit alarm podle jejich návodu, bohužel jsem zjistil, že není k dispozici zdrojový kód konstrukce. Protože jsem chtěl některé parametry změnit a navíc jsem se chtěl naučit programovat procesory Microchip PIC, řešení stažením *.hex souboru mi moc nepomohlo. Proto jsem se rozhodl převzít hardwarové řešení a přepsat vlastní software. Tato konstrukce není v dnešní době žádnou novinkou, ale snažil jsem se kompletním uvedením informací, zdrojových kódů a mých postřehů pomoci všem, kdo se do stavby podobného zařízení pustí ulehčit práci a vyhnout se některým omylům a problémům.


Náhled na konstrukci - ke zvětšení obrázku klikněte na náhled


  Vstup: 1 alarmový vstup oddělený optočlenem
  Výstup: 1 přepínací kontakt, možno ovládat zapnutí a vypnutí zasláním SMS
  Přenos: pomocí mobilního telefonu GSM Siemens C35i
  Odstavení alarmu: skrytým tlačítkem do 10 sekund po vyvolání poplachu (sepnutí hlídacího kontaktu) Znovuuvedení alarmu do hlídacího stavu: rozepnutí hlídacího kontaktu
  Možnost uživatelem nastavit číslo, na které má být alarm hlášen.
  Bezplatné hlášení alarmu prozvoněním (stejným způsobem je ohlášeno správné přijetí příkazu k ovládání relé)




Technické parametry:

 Napájení: externí 5-15 V stejnosměrných
 Odběr: bez nabíjení MT cca 50 mA
 Osazený procesor: první konstrukce PIC 16F84A, druhá PIC 16F628 (nebo 16F628A)
 Zapnutí relé: odeslání SMS "GSM-ZAP" (samozřejmě bez uvozovek, s pomlčkou, všechna velká) na MT alarmu
 Vypnutí relé: odeslání SMS "GSM-VYP"




Popis konstrukce
     K přenosu alarmu jsem zvolil MT Siemens C35i, neboť jej jednak vlastním, a také‚ a to je hlavní má implementovaný hardwarový modem. To znamená, že s telefonem lze velmi jednoduše komunikovat přes systémový konektor pomocí klasické sériové komunikace (RS232). Komunikační interface mobilního telefonu je duplexní, znakově (bytově) orientované‚ asynchronní sériové rozhraní, které, až na napěťové úrovně obou signálů (TxD, RxD) odpovídá  doporučení RS232. Změněné nestandardní napěťové úrovně log. 0 a log. 1 jsou jedinou příčinou, proč nelze mobilní telefon připojit např. k sériovému portu počítače PC přímo, jen pomocí tří vodičů. Pro Siemens C35i platí tyto parametry přenosu: datová  rychlost 19200 Bd, 8 datových bitů, bez parity, 1 stop bit. Můžeme komunikovat jak z PC pomocí různých programů (samozřejmě po příslušné napěťové úpravě signálu TxD), tak pomocí jednočipu (což je tento případ). Propojení s vlastním alarmem je řešeno datovým kabelem, který přenáší signály TxD, RxD a pomocí kterého je dobíjen akumulátor telefonu.
      Protože na rozdíl od mikroprocesoru jsou úrovně v mobilním telefonu 3voltové logiky, je nutno napěťovou velikost signálu TxD, který jde z procesoru do telefonu snížit. Snížení je provedeno Zenerovou diodou a rezistorem umístěnými přimo v těle konektoru.
     Vlastní konstrukce je klasicky zapojený procesor s časovacím obvodem s krystalem a resetem. Napájení je řešeno monolytickým stabilizátorem typu 78S05. V původní konstrukci byl použit procesor PIC 16F84A, který nemá harwarový UART. Proto se signály a vůbec celá sériová komunikace musí emulovat softwarově. Oproti původní konstrukci jsem upravil plošný spoj na jednostranný. Protože jsem vlastnil jeden PIC 16F84, vytvořil jsem jednu konstrukci pro něj, ale již v té době jsem si říkal, že bude podstatně jednodušší vytvořit tu samou pro PIC 16F628, který má implementován kompletní hardwarový UART / USART, má možnost na portu B zapnout interní pullup odpory a má možnost použít interní resetovací obvod po zapnutí napájení. Tato druhá konstrukce má stejné parametry a stejné ovládání výstupního relé jako verze s PIC16F84A. Druhá  verze byla kompletně odladěna a otestována na kontaktním nepájivém poli a funguje bez problémů. Je mým zvykem ke všem i zkušebním konstrukcím vytvořit plošný spoj pro eventuální zájemce, a ani zde to není vyjímkou.



Komunikace s mobilním telefonem
      Vlastní komunikace s mobilním telefonem probíhá pomocí t.zv. AT (z angl. Attention) příkazů. Některé telefony nemají implementován hardwarový modem, komunikace s nimi potom probíhá v binárním režimu a modem musí být emulován softwarem v počítači. AT příkazy jsou ASCII znaky zasílané po lince TxD do telefonu. Tyto příkazy mohou mít různý tvar a mohou mít parametry. Odpověď telefonu přichází po lince RxD. V podstatě se jedná o klasickou sériovou komunikaci. Pro základní pokusy s mobilním telefonem a také pro odladění software je vhodné nejprve použít nějaký terminál (program pro přímé odesílání znaků z klávesnice po sériové lince). Ve Windows je to například Hyperterminál, existuje spousta dalších, já osobně používám nejraději Telix. Nastavení terminálu je třeba upravit podle použitého telefonu (rychlost, parita atd.). Pro spojení telefonu s PC budeme navíc ještě potřebovat (jak jsem již uvedl výše) komunikační kabel. Pro převod úrovní RS232 na TTL používám kompaktní převodník. Pro spojení mezi tímto převodníkem (úroveň TTL) a telefonem (3 voltová logika) je třeba upravit napěťovou úroveň. Ta je upravena (jak bylo již uvedeno výše) v konektoru zapojeném do telefonu. Další příklady budou vztaženy k mobilnímu telefonu SIEMENS C35i.
Detailnějšímu popisu AT příkazů, dekódování SMS popř. úpravy software na Vaši SMS se věnuji na samostatné stránce.



Zapojení konektoru Siemens C35i

 1 - GND
2 - Self service (informace o nabíjení)
3 - Load (vstup nabíjecího proudu)
4 - Output battery (Vcc)
5 - Data TX (data out MT -> PC)
6 - Data RX (data in PC -> MT)
7 - Detekce / Clock (signál pro detekci / ovládání příslušenství)
8 - Detekce / Data (signál pro detekci / ovládání příslušenství)
9 - GND ext. mikrofon
10 - Input ext. mikrofon
11 - Output ext. audio
12 - GND ext. audio

Zapojení kabelu s napěťovým přizpůsobením
Náhled na konstrukci - ke zvětšení obrázku klikněte na náhled  


Popis software
     Obě verze jsou v podstatě co do funkce totožné. Při rozdílech na to upozorním. Po zapnutí napájení alarmu při zapnutém mobilu jsem měl občas problém s tím, že i když byl spojen jumper nabíjení telefonu, telefon se nezačal nabíjet. Po nějaké době hledání závady jsem zjistil, že při připojení nabíjení by neměla být na datovém vstupu log.1. Tento jev jsem nakonec odstranil tak, že po zapnutí (resetu) alarmu nastavím na datovém vstupu log.0, podržím ji tam 2 sekundy, po 2 sekundách změním úroveň datového vstupu na log.1 a tím mi zůstane nastálo zobrazen na displeji znak nabíjení (zůstane, i když potom nabíjení odpojíme) a nyní se již baterie nabíjí tak, jak má. Bohužel jsem nedokázal rozluštit PROČ se tohle děje, ale zatím to tak funguje.
      Po zapnutí napájení se přečte adresa 1 EEPROM, na které je uložen stav relé po poslední změně. Podle přečtené informace se relé buď zapne nebo nechá rozepnuté. Pak se testuje příznak indikující přijetí nové SMS. Pokud je nastaven, provede se vyčtení tel. čísla z pozice 1 na SIM a číslo je vytočeno. Následuje čekací pauza, po odčasování je zavěšeno. Nyní se testuje připojení MT. U verze s 16F84A se testuje úroveň H na vstupu RxD z mobilu, dokud není, procesor setrvává ve smyčce. U verze s 16f628 se cyklicky vysílá UARTem příkaz AT<CR> a testuje se odpověď. Dokud nepřijde <OK> setrvává se ve smyčce. Pokud není komunikace s mobilem, v obou případech zůstává LED "Komunikace s MT" zhasnuta. Jestliže telefon komunikuje, blikne v intervalu po 12 sekundách zelená LED.

     Po detekci, že je telefon připojen se rozsvítí LED a testuje se alarmový vstup. Pokud není v H (16f628 v L), není poplach, testuje se po 1 sekundě alarmový vstup znovu. Takto se otestuje 10x. Pak následuje dotaz na MT na nové SMS. Pokud není,(zjistíme tak, že MT po odeslání příkazu CMGL odpoví OK) následuje skok na začátek. Jestliže je přijata nová SMS, testuje se dosažení znaku dvojtečky: ve zprávě. Po jejím dosažení se oříznou nepotřebné znaky a do alokovaných 12 byte RAM se přenese obsah textu SMS. Obsah se z formátu PDU nedekóduje, ale protože víme, co máme čekat za zprávu (lépe řečeno za data) porovnáme přijatá data. Pokud jsou totožná se ZAP, provede se zápis do EEPROM s nastavením odpovídajícího příznaku. Pokud je VYP, provede se zápis s nulovaným příznakem. SMS je pak smazána(obsah EEPROM a tím zapnutí/vypnutí relé se testuje na začátku). Zapnutí / vypnutí relé signalizuje rudá LED. Pokud data neodpovídají ani jedné zprávě, je SMS smazána. U verze s 16F628 navíc pro zajištění větší spolehlivosti běží WATCHDOG nastavený na dobu cca 2 sekundy, který resetuje procesor, pokud by zůstal zacyklený ve smyčce.
     Při vyvolání poplachu začne blikat zelená LED v sekundovém intervalu. Program čeká 10 sekund a čte přitom stav pinu RB3. Pokud v této době přijde pin RB3 do log. H (16f628 do L), t.zn. bylo stisknuto odstavovací tlačítko, program pokračuje normálně dál. Pokud tlačítko stisknuto nebylo, vyčte se tel. číslo a vytočí se. Po 15 sekundách je spojení ukončeno. Více najdete v komentovaných zdrojových souborech.
     Po odstavení poplachu tlačítkem se stav poplachového kontaktu nadále sleduje. Pokud je sepnutý jako při stisknutí tlačítka, nic se neděje. Pokud dojde k jeho rozepnutí, obnoví se funkce hlídání. Např. hlídáme stav garážových vrat. Přijde majitel, otevře dveře, sepne se kontakt a pokud by do 10 sekund nestiskl tlačítko, bude vyvolán poplach. Pokud tlačítko stiskne, nic se neděje. Při odchodu pro aktivaci stačí pouze vrata zavřít, kontakt se rozepne, alarm je aktivován a příští otevření vrat opět vyvolá poplach (pokud jej neodstavíme).

Schéma verze s 16F84A Schéma verze s 16F628 (16F628A)
Náhled na konstrukci - ke zvětšení obrázku klikněte na náhled Náhled na konstrukci - ke zvětšení obrázku klikněte na náhled

Plošný spoj verze s 16F84A Plošný spoj verze s 16F628 (16F628A)
Náhled na konstrukci - ke zvětšení obrázku klikněte na náhled Náhled na konstrukci - ke zvětšení obrázku klikněte na náhled

Oživení

Zkušební zapojení konstrukce s 16F628       Alarm nemá žádné nastavovací prvky. Pro procesor doporučuji zásadně použít patici. Po osazení desky ji zkontrolujeme na nežádoucí propoje. Procesor zatím neosadíme, telefon nepřipojujeme. Zapojíme napájení - nejlépe ze zdroje s proudovou pojistkou nastavenou na cca 100 mA. Pokud je vše v pořádku, a deska nemá žádný zkrat, změříme napájecí napětí procesoru (piny 5 a 14), kde musí být 5 V. Pokud je i zde vše správně, vypneme napájení a zasuneme procesor. Nyní musíme nastavit mobilní telefon. Do paměti na SIM kartě nastavíme do první pozice tlf. číslo, které má telefon volat při poplachu nebo při potvrzení přijetí povelu pro relé. Toto číslo musí být v mezinárodním formátu (např. +420604123456) !! Napájení zapneme, a po zapnutí zasuneme konektor do MT. Pokud byla práce pečlivá a je správně zapojen konektor MT, musí se rozsvítit zelená LED a bliknout vždy po 12 sekundách. Nyní ověříme činnost, kdy vyvoláme poplach - simulujeme - u verze 16F84 přivedeme log. H na pin 6, u verze 16f628 pin 6 uzemníme. Zelená LED musí začít blikat. Pokud do 10 sec. nasimulujeme stisknutí odstavovacího tlačítka, LED blikat přestane a poplach není vyvolán. Jestliže poplach neodstavíme, telefon vytočí nastavené číslo a čeká po dobu 15 sekund, než spojení ukončí. Pak se alarm vrátí do původního stavu. Nyní můžeme vyzkoušet ovládání relé. Z jiného MT nebo internetu pošleme na MT alarmu SMS ve tvaru GSM-ZAP (velká písmena!). Po přijetí telefonem se musí sepnout relé a rozsvítit rudá LED. Telefon jako potvrzení povelu opět vytočí zadané tel. číslo a pak zavěsí. Pro vypnutí analogicky pošleme GSM-VYP. Před uvedením do provozu propojíme jumper pro nabíjení MT.

      Problémy ? Telefon nekomunikuje, zelená LED nesvítí - připojte na vstup a výstup kabelu z telefonu (TxD a RxD na procesor) převodník (např. "Kompaktní převodník TTL -> RS232") a terminálem vyzkoušet signály z a do telefonu. Zkusíme zaslat do telefonu příkaz AT a ENTER a telefon musí odpovědět OK. Pokud se tak nestane, je závada nejspíše v konektoru MT. Zkontrolovat propojení signálů: TxD procesoru na RxD MT a naopak !!
Jestliže je i pak vše v pořádku, může se jednat o problém popsaný na jiné stránce.
     POZOR u této konstrukce musíme pamatovat na skutečnost, abychom alespoň jedenkrát za půl roku z telefonu alarmu zatelefonovali, protože pokud tak neučiníme, operátor vyhodnotí telefonní číslo karty jako neaktivní a kartu zablokuje. Je samozřejmě možné (u některých konstrukcí je to již implementováno) do programu procesoru vložit rutinu, která tuto skutečnost ohlídá a např. jednou za dva měsíce provede zavolání na nějakou placenou službu (třeba předpověď počasí nebo přesný čas ap.) a tím zabrání zablokování karty.
Akumulátor x dobíjení - mluvil jsem s jedním člověkem, který má kontakty přímo u Siemensu a podle jejich názoru je podstatně lepší neprovozovat telefon s akumulátorem trvale dobíjeným, ale vyndat akumulátor z MT a připojit napájení MT přímo z aplikace s mikrokontrolérem. Pozor napájení MT je 3,6V, proto je nutno napětí snížit např. diodou do série (1N4007). Po této úpravě již můžeme MT napájet z aplikace. Více o tématu napájení MT z aplikace naleznete na další stránce alarmů.

Rozpiska součástek

Verze s 16F84AVerze s 16F628 (16F628A)
 C1,C2 15pF keramika
 C3,C4 100nF keramika
 C5 10uF/6V tantal
 C6 1G/25V elektrolyt
 C7 100uF/6V elektrolyt
 D1,D4,D5,D6 dioda 1N4007
 D2 LED 3mm zelená
 D3 LED 3mm rudá
 IC1 procesor PIC16F84AP
 IC2 stabilizátor 78S05
 K1 relé OMRON G5V1/12V (např.GM electronic)
 OK1 optočlen PC817 Sharp (též GM)
 Q1 krystal 3,579MHz / HC49U-V
 X1 svorkovnice ARK500/3
 X2,X3 svorkovnice ARK500/2
 T1 tranzistor NPN univerzální BC337
 RN1 rezistorová síť 1k
 R1 rezistor miniaturní 47k
 R2 rezistor miniaturní 1k5
 R3 rezistor miniaturní 1k8
 R4,R6,R7 rezistor miniaturní 10k
 R5 rezistor miniaturní 5k6
 JP1,2 jumpery - lámací
  patice DIL 18 precizní
  krabička U-KM42BN (GM electronic)
 C1,C2 15pF keramika
 C3,C4 100nF keramika
 C6 1G/25V elektrolyt
 C7 100uF/6V elektrolyt
 D1,D5,D6 dioda 1N4007
 D2 LED 3mm zelená
 D3 LED 3mm rudá
 IC1 procesor PIC 16F628-20/P (16F628A)
 IC2 stabilizátor 78S05
 K1 relé OMRON G5V1/12V (např.GM electronic)
 OK1 optočlen PC817 Sharp (též GM)
 Q1 krystal 4,00MHz / HC49U-V
 X1 svorkovnice ARK500/3
 X2,X3 svorkovnice ARK500/2
 T1 tranzistor NPN univerzální BC337
 R1 rezistor miniaturní 6k8
 R2 rezistor miniaturní 1k5
 R3 rezistor miniaturní 1k8
 R4 rezistor miniaturní 10k
 R5 rezistor miniaturní 5k6
 R7 rezistor miniaturní 3k3
 JP1,2 jumpery - lámací
  patice DIL 18 precizní
  krabička U-KM42BN (GM electronic)


     Tato konstrukce byla navrhována jako stabilní s umístěním např. v garáži nebo v bytě. Bylo by samozřejmě možné ji použít i jako alarm pro hlídání automobilu, museli by se ale změnit některé parametry týkající se spotřeby, jako např. použít nízkopříkonový stabilizátor pro napájení elektroniky, procesor "uspávat" a budit ho např. změnou na portu B, vyřešit jinak dobíjení MT a další, to však již není náplní této konstrukce.

Na závěr se můžete podívat na vnitřní uspořádání alarmu.

     Na jednu prosbu jsou k dispozici další dvě verze software, u první alarm postupně volá na 4 čísla uložená na SIM, ve druhé verzi také volá na 4 čísla, navíc je doprogramována funkce zpoždění, kdy je po stisku tlačítka alarm 10 sekund nečinný. Tuto funkci je možné využít např. při hlídání bytu, kdy před opuštěním bytu před otevřením dveří stiskneme odstavovací tlačítko, alarm je 10 sekund nečinný a my můžeme byt opustit. Po uplynutí časového intervalu je činnost alarmu obnovena a hlídání normálně funguje. Vše naleznete níže v odkazu software.

POZOR - další konstrukce GSM alarmů s některými vylepšenými funkcemi naleznete na nové stránce.


Ke stažení jsou tyto soubory:

Velikost 27,9 kByte  Všechny verze software pro ALARM GSM (zdrojové soubory s komentářem vloženy)
 
Velikost 138 kByte Plošné spoje a schémata ve formátu EAGLE 4.01
 
Velikost 364 kByte Plošné spoje, schémata a osazení ve formátu *.jpg
 
Velikost 84 kByte Uživatelský návod, popis zapojení a ovládání, štítek na krabičku
 
Velikost 173 kByte  AT příkazy pro Siemens C35i (english)

Vytisknout stránku

Zpátky Zpátky
© DH servis 2002 -