GSM Resetátor

13.03.2005

K tomuto výtvoru jsem byl přinucen značnou nespolehlivostí linuxového serveru ve spojení se softwarovým access pointem a wifi kartou ZCOM XI-626. Na tomto počítači docházelo k častým zátuhům a pokaždé jej musel nahazovat jeho správce. Resetátor umožnil dálkový tvrdý reset tohoto serveru a tím snížení doby nedostupnosti sítě. Prostě jednoduše řečeno, pošlete SMSku s heslem a resetátor na cca 3-4 sekundy odpojí 230V.. :-) Testováno a provozováno na telefonu Siemens C35.

Předem bych chtěl poděkovat Davidu Hankovci, majícího www stránky na adrese: http://www.dhservis.cz/ , od kterého jsem čerpal cenné informace ohledně rozhraní USART v jednočipu PIC16F628A. Na svých stránkách má podobně řešenou aplikaci, GSM alarm, tak se tam určitě koukněte.

Jak to funguje?

Není to nic složitého. Na napájecí straně trafo 1.9VA a výše, můsek, stabilizátor 78S05. Taková kadence rozhodně není potřeba, ale původní Davidův návrh počítal i s nabíjením přes tento stabilizátor. Zjistil jsem však, že i při nižším vstupním napětí se stabilizátor velmi zahřívá, takže cesta vedla použitím menšího a levnějšího transfomátoru na napájení PICu + relátek a externí nabíječky (zapojení kladného vodiče z nabíječky je na DPS označeno nab). Dále se zapojení dělí na 2 verze. První je prototypová verze, kdy jsem až dodatečně zjistil, že PIC16F628A má již integrovaný oscilátor a signál MCLR se dá interně pripojit k Ucc, takže zapojení obsahuje krystal 4MHz a rezistor 6k8 zajištující přípojení log.1 na MCLR pin. V první verzi jsou použity 3 reléové výstupy, svorkovnice a podobná bižuterie. Verze druhá nemá nic navíc, tedy neobsahuje krystal, MCLR interně připojeno na Ucc. Obsahuje pouze 2 reléové výstupy a žádnou svorkovnici - jen to zvyšuje cenu zařízení. Jakožto interface s mobilním telefonem jsou nutné pouhé 2 rezistory a jedna zenerova dioda. Nedoporučuji dělat přívodní kabel moc dlouhý.

Software

Ovládací program je pro obě verze téměř shodý. Rozdíl je pouze v konfiguraci, kterou najdete na začátku zdrojového kódu. Program jsem i pro vlastní potřebu poměrně hodně okomentoval a použil intuitivní názvy návěstí, takže by z jeho případou modifikací neměl být problém.
Jak jsem již zmínil výše, jedná se o kód pro jednočip PIC16F628A, přeloženo kompilátorem MPASM. Po zapnutí resetátoru se testuje přítomnost mobilního telefonu (odpoveď na AT příkazy), pokud je nalezen, začne periodicky blikat LED dioda. Několikrát blik, poté delší svit a tak stále dokola. Tím je signalizována komunikace s telefonem, resp dotazy na nově příchozí zprávy. Pokud telefon obdží SMS zprávu, PIC zkontroluje, zda-li je shodá s hesly Reset01, Reset02 nebo Reset03 a pokud není, zprávu smaže. Tady jsem našel drobnou chybku v Davidově programu. V případě, že na jeho konstrukci přijde behěm jedné periody testování více SMS zpráv, dojde ke smazání pouhé jedné zprávy. Tímto může dojít v případě aktivity nějakého chorého člověka k zahlcení paměti pro SMS zprávy a nefukčnosti zařízení. Tento problém jsem vyřešil zkrácením intervalu pro kontrolu nových zpráv a následném mazání tří zpráv i v případě, že přijde jen jedna. Ještě se mi nepodařilo masivním útokem z www brány dosáhnout toho, aby v paměti zůstala jediná nesmazaná zpráva. Tak a teď co se stane, jestliže SMS zpráva obsahuje výše uvedená hesla. V prvé řadě dojde k sepnutí příslušného relé (odpojení spotřebiče od 230V), poté k mazací proceduře, časové prodlevě a opětovnému odpojení relé. Poté se načte z telefonního seznamu číslo umístěné na 1,2 a 3 pozici a toho číslo se prozvoní. V programu je 3. číslo zakomentované, protože jsem jej ještě nepotřeboval, ale není problém dodělat těch čísel klidně 10, je to principielně stále to samé dokola. Po prozvonění přejde program do své základní smyčky a opět k periodickému poblikávání LED. Program znatelně využívá watchdog timer, protože GSM telefon je věc v mnoha případech neposlušná a bez watchdogu docházelo k mnoha zakousnutím, takže ho nechejte zapnutý.

Zapojení

To je vcelku pochopitelné s DPS. Relé odpojují 230V směrem ke spotřebičům. Velkým problémem Siemensů bývá nabíjení, respetive logika nabíjení. Nutnou pomínkou správného chodu je použít NIMH akumulátor. V případě Li-Ion se telefon jednou nabije, vybije a vypne, tedy nedobíjí se neustále. Tento defekt se týká právě jen Siemensů C35, zřejmě vývojáři nepočítali s možností použití Li-Ion akumulátorů. Každopádně s NIMH resetátor pracuje naprosto spolehlivě.
Konektor se k telefonu připojuje podle následujícího obrázku:

Fotky z bastlení druhé verze:

Soubory ke stažení

Verze 1 - DPS
Verze 1 - Rozmístění součástek
Verze 2- DPS
Verze 2- Rozmístění součástek
Dokumentační balík (jsou tam i další verze a postřehy)