GSM SMS javljalnik ALSMS-01 |
Informacije in datoteke na tej spletni strani so na voljo samograditeljem za zasebno amatersko uporabo. Uporaba v komercialne namene brez predhodne odobritve avtorja ni dovoljena.
Besedilo v nadaljevanju je posodobljen in dopolnjen opis zasnove, delovanja ter napotkov za samogradnjo javljalnika ALSMS-01, objavljen v reviji Elektronika, št. 2, oktober 2004. Originalni prispevek o gradnji ALSMS-01 je izšel v glasilu slovenskih radioamaterjev CQ ZRS, št. 6/2002.
ALSMS-01 je v času od svojega nastanka doživel nekaj majših hardverskih popravkov, zato priporočam, da si morebitni graditelj shemo električnega vezja ter načrt tiskanega vezja ogleda v zgoraj omenjeni reviji Elektronika. Shema in tiskano vezje, prikazano na tej spletni strani, omenjenih popravkov ne vsebujeta.
GSM SMS javljalnik ALSMS-01
Javljalnik ALSMS-01 je naprava, namenjena daljinskemu nadzoru objektov, daljinskemu upravljanju električnih naprav, javljanju stanj ter posredovanju informacij z SMS sporočili na enega ali več mobilnih GSM terminalov prek omrežja GSM. V prvi vrsti je bila razvita za nadzor individualnih stanovanjskih ali počitniških objektov, ki pretežni del časa samevajo nenadzorovani.
Zasnova sistema
Na slovenskem trgu je že dosegljivih nekaj sistemov, ki za daljinski nadzor objektov ali naprav ter javljanje dogodkov uporabljajo omrežje GSM. V osnovi sta uporabniku na voljo dve preprosti možnosti, kako prek GSM omrežja z mobilnega telefona upravljati z napravo na oddaljeni lokaciji oz. z nje prejemati sporočila. Prva možnost je vzpostavitev klicne govorne zveze med telefonom uporabnika in mobilnim telefonom naprave na oddaljeni lokaciji ter zatem upravljanje in posredovanje informacij vršiti s pomočjo tipkovnice (DTMF tonov) in zvočnih sporočil. Druga možnost je posredovanje ukazov in prenos informacij z uporabo kratkih sporočil SMS.
Prednost upravljanja oddaljenih naprav z vzpostavitvijo govorne zveze prek GSM mobilnega telefona je zanesljivost, medtem ko je največja slabost po mojem osebnem mnenju težavnost uporabe. Z miniaturnega mobilnika je po vzpostavitvi zveze težko s tipkanjem po tipkovnici posredovati oddaljeni napravi ukaze ter hkrati poslušati zvočne odzive naprave na drugem koncu govorne zveze.
Po drugi strani je pri uporabi SMS sporočil posredovana informacija, npr. alarmno stanje, po prejetju shranjena v mobilniku. Uporabnik jo lahko kadarkoli pregleduje, shranjuje ali briše, kar je gotovo prednost. Slabost tega načina komunikacije izvira iz dejstva, da operaterji omrežij GSM ne jamčijo časa, v katerem bo poslano SMS sporočilo prejemniku dostavljeno. Takšen sistem zato ni uporaben kot ključni alarmni sistem za nadzor procesov, pri katerih bi zaradi nepravočasne ali celo nikoli prejete informacije nastala materialna škoda oz. bi bila ogrožena zdravje ali življenja oseb. Služi lahko le kot dopolnilni sistem za sporočanje informacij ter upravljanje, medtem ko morajo vlogo ukrepanja v kritični situacijah prevzeti neodvisni, namensko zasnovani sistemi. ALSMS-01 uporablja za daljinsko upravljanje in nadzor SMS sporočila, tako da zanj veljajo vse naštete slabosti tega načina posredovanja informacij.
Morebitnega graditelja opozarjam, da javljalnik ALSMS-01 ne more in ne sme biti uporabljen v vlogi nadzora in upravljanja procesov, kjer bi zaradi začasne ali trajne odpovedi ali zaradi narave prenašanja sporočil prek omrežja GSM lahko nastala kakršnakoli materialna škoda oz. bilo ogroženo zdravje ali življenje ljudi. Prav tako avtor tega prispevka ne prevzema nikakršne odgovornosti za kakršnekoli posledice, ki bi nastale z uporabo ALSMS-01, zgrajenega po načrtih iz tega prispevka.
Osnovna konfiguracija in funkcionalnost
SMS javljalnik ALSMS-01 je nastal kot okrnjena, zato pa univerzalna in cenejša različica naprave, ki sem jo na prošnjo znanca zasnoval in izdelal za potrebe daljinskega nadzora male zasebne hidroelektrarne. Osnovna konfiguracija SMS javljalnika ALSMS-01 je prikazana na sliki 1. Javljalnik je povezan z GSM terminalom prek vmesnika RS-232, napaja se iz 230V AC omrežja, rezervno napajanje v primeru izpada omrežne napetosti zagotavlja svinčev akumulator. Naprava ima 8 stikalnih električnih vhodov ter dva vhoda za večrodovno plastično optično vlakno, ki ju je možno izrabiti za nadzor nad analognimi merilnimi veličinami ali za multipleksiranje večjega števila digitalnih vhodov. Na voljo so trije relejski izhodi 8A /230V AC. Srce naprave predstavlja mikrokontroler PIC16F876. Trenutna različica programske opreme podpira naslednjo funkcionalnost:
1. Hranjenje do 4 številk mobilnih telefonov GSM, na katere ALSMS-01 pošilja sporočila oz. z njih prejema ukaze ter klice.
2. Vnos osmih alarmnih sporočil dolžine do 22 alfanumeričnih znakov ter pošiljanje pripadajočega alarmnega sporočila ob aktiviranju enega ali več stikalnih vhodov na katerokoli od 4 vnaprej izbranih številk GSM mobilnikov.
3. Možnost podvojenega pošiljanja alarmnih sporočil z zamikom 1 minute po prvem obveščanju (nastavljivo za vsak vhod posebej).
4. Možnost daljinskega blokiranja pošiljanja alarmnih SMS sporočil za vsak vhod posebej.
5. Krmiljenje treh relejskih izhodov z SMS sporočili ter povratno obveščanje o izvršenem vklopu ali izklopu relejev.
6. Pošiljanje informacije o stanju vhodov, stanju relejskih izhodov, temperaturi, prisotnosti omrežne napetosti ter napetosti akumulatorja na zahtevo uporabnika.
7. Poslušanje okolice z vzpostavitvijo govorne zveze. Zvezo lahko vzpostavijo samo uporabniki z vnaprej izbranih GSM številk.
8. Sistemska ura realnega časa, čas nastopa alarma oz. odpošiljanja SMS sporočila se prilepi vsakemu poslanemu SMS sporočilu. Ura je daljinsko nastavljiva, ob popolnem izpadu napajanja (230V AC in izpraznjen akumulator) se resetira.
9. Meritev napetosti akumulatorja ter avtomatski izklop sistema v primeru izpada omrežja in padca napetosti akumulatorja pod 10,5V. Namen funkcije je preprečitev škodljive izpraznitve akumulatorja, ALSMS-01 uporabnika o izpraznitvi akumulatorja obvesti z alarmnim SMS sporočilom.
10. Meritev temperature okolice z vgrajenim temperaturnim senzorjem, posredovanje izmerjene vrednosti na zahtevo, avtomatsko javljanje v primeru prekoračitve temperature 70 C.
11. Vsaki od štirih številk GSM mobilnika je možno omogočiti ali onemogočiti dostop do funkcij upravljanja s sistemom - krmiljenje relejskih izhodov, posredovanje informacij o stanju sistema na zahtevo (temperatura, napetost akumulatorja, stanje izhodov in vhodov), poslušanje okolice, pošiljanje temperaturnega alarma, nastavitev sistemske ure
12. Možnost podvojenega pošiljanja sistemskih alarmov (temperatura, izklop sistema zaradi izpraznitve akumulatorja) z zamikom 1 minute po prvem obveščanju.
13. štirimestna dostopovna koda, s katero uporabniki dostopajo do sistemskih funkcij, otežuje nepooblaščen poseg v delovanje ALSMS-01 v primeru izgube GSM aparata.
14. Konfiguriranje (nastavitev opcij) ALSMS-01 z osebnim računalnikom.
ALSMS-01 je predviden in preskušen za delovanje s splošno namenskim GSM mobilnim telefonom Siemens C45 ali z industrijskim GSM modulom Siemens M20T.
Tri signalne LED služijo vizualizaciji pomembnejših stanj naprave: prisotnost omrežne napetosti, prisotnost oz. odsotnost signala omrežja GSM, inicializacija GSM terminala, pošiljanje sporočil, napake v delovanju, nepravilno nastavljena PIN koda ipd.
Vsi nastavljivi parametri, vključno z dostopovno kodo ter PIN kodo SIM kartice, se nastavljajo prek RS-232 vmesnika z osebnim računalnikom in preprostim konfiguracijskim programom v okolju Windows (slika 2). Zadnja različica tega programa je na voljo prek e-pošte na zahtevo brezplačno. Sam v okenskem programiranju nisem najbolj doma, zato je konfiguracijski program na mojo prošnjo pripravil kolega Drago Radin. Podatki o avtorju se nahajajo v menuju "pomoč".
Podrobnjša specifikacija funkcionalnosti ALSMS-01 (npr. logika pošiljanja SMS sporočil v primeru trenutno nerazpoložljivega GSM omrežja, nastavljiva zakasnitev zaznavanja aktivnega stanja na električnih vhodih, konfiguracijski protokol ipd.) zaradi obširnosti v tem prispevku ni podana. Zainteresiranim bralcem je na voljo v navodilih za uporabo. Tudi ta so brezplačno dosegljiva prek e-pošte na zahtevo.
Komunikacija z GSM terminalom Siemens M20T in C45
Kot sem že omenil v uvodu, je bil ALSMS-01 v prvotni izvedbi zasnovan za nadzor male hidroelektrarne, kjer se uporablja skupaj z GSM modulom Siemens M20T. Modul M20T je GSM telefon, vgrajen v plastično ohišje velikosti cigaretne škatlice, brez mikrofona, slušalke, tipkovnice in antene (slika 3). Naštete pritikline je sicer mogoče dokupiti ter priključiti prek vgrajenih konektorjev. M20T komunicira s svetom prek vmesnika RS-232. Za povezavo s PC računalnikom ali industrijskim krmilnikom tako potrebujemo le standardni RS-232 modemski kabel. Modul je kot nalašč za uporabo z javljalnikom ALSMS-01. Žal ima tudi pomembno pomanjkljivost, to je ceno, ki je v času pisanja tega prispevka znašala dobrih 50k SIT. Zato sem sklenil, da ALSMS-01 pripravim tudi za uporabo s katerim od cenenih GSM mobilnih telefonov. Izbral sem Siemensov C45. Najpomembnejši razlog za izbiro je bil, da sem tak mobilnik imel neizrabljen doma v predalu, upal pa sem tudi, da je komunikacija z njim identična kot pri modulu M20T. Žal se je slednje izkazalo za ne popolnoma res. Ni mi sicer uspelo pridobiti opisa protokola krmiljenja C45 prek RS232 vmesnika (in ustreznega vmesniškega kabla), imel pa sem na voljo podroben opis krmilnih ukazov za modul M20T in sem za začetek poizkusil uporabiti kar isti protokol tudi za komunikacijo s C45. Izkazalo se je, da ta podpira le okrnjen nabor ukazov, kot jih sicer pozna M20T, tako da je bila potrebna precejšnja predelava tistih programskih modulov ALSMS-01, ki skrbijo za komunikacijo, da so postali univerzalni za obe terminalni napravi. Za povezavo mobilnika C45 z RS-232 vmesnikom je za razliko od M20T, ki ima RS-232 vmesnik že implementiran, potrebno kupiti ali izdelati tudi poseben adapterski kabel, kar je podrobneje opisano v naslednjem poglavju. Kasneje je bila programska koda ALSMS-01 dopolnjena še za podporo starejšemu modelu Siemensovega mobilnika C35 ter novejšemu GSM modulu Siemens TC35.
Upravljanje z mobilnim telefonom GSM prek RS-232 vmesnika poteka podobno kot upravljanje s klasičnim klicnim telefonskim modemom z AT ukazi. Nekateri iz nabora implementiranih AT ukazov so neposredno privzeti standardni AT Hayes ukazi in so enaki kot pri žičnem klicnem modemu, nekaj jih je dodatno opredeljenih znotraj GSM standardizacije in naj bi bili enaki pri vseh mobilnih telefonih GSM, preostali pa so specifični glede na proizvajalca naprave. Za pokušino v nadaljevanju navajam nekaj osnovnih AT ukazov, potrebnih za preprosto pošiljanje SMS sporočila. Ukaze lahko preskusi vsak, ki ima doma mobilnik GSM in možnost povezave le-tega z RS-232 vmesnikom PC računalnika. Ukazi, ki jih navajam, so preverjeni na Siemens C35, C45, M20T in CT35, verjetno pa delujejo tudi z ostalimi mobilnimi telefoni tega proizvajalca. Za uporabo s terminali drugih proizvajalcev bo morda potreben kakšen manjši popravek. Za upravljanje z mobilnim telefonom prek RS-232 vmesnika moramo imeti na PC računalniku nameščen terminalski program s pravilno nastavljenimi komunikacijskimi parametri. Zadošča preprosti HyperTerminal, ki je že sestavni del OS Windows. Sama nastavitev komunikacijskih parametrov je najverjetneje različna za GSM aparate različnih proizvajalcev. Pri "svežem" Siemens M20T, CT35 (tovarniško nastavljene privzete vrednosti) ter C35 in C45 je le-te treba nastaviti na hitrost komunikacije 19.200 bps, 1 start bit, 8 bitno podatkovno besedo in 1 stop bit. Nadzor komunikacije ni potreben (none). Kasneje je hitrost komunikacije z ustreznim AT ukazom možno spremeniti.
Za pošiljanje SMS sporočil poznamo dva osnovna načina. Prvi je tekstovni, drugi pa t.i. PDU, ki je opredeljen znotraj standardizacije GSM. Prednost tekstovnega načina je preprostost, saj vsebino SMS sporočila vnesemo v terminal kar v obliki besedila, medtem ko je najpomembnejša prednost PDU načina pošiljanja SMS neodvisnost od (ASCII) kodiranja posameznih črkovnih znakov.
Najbolje, da si pošiljanje sporočila SMS ogledamo na praktičnem primeru. Za večjo preglednost so ukazi, ki jih pošiljamo s PC računalnika na mobilni telefon, tiskani s pokončnimi znaki in obarvane zeleno, besedilo, ki ga mobilnik vrača, pa poševno ter temno modre barve. Verjetno ni potrebno posebej poudarjati, da moramo vsak ukaz zaključiti s kontrolnim znakom <CR>, kar storimo s pritiskom na tipko <ENTER>.
Mobilni telefon je pred pošiljanjem sporočila SMS potrebno najprej ustrezno inicializirati. Inicializacija je enaka za tekstovni in PDU način pošiljanja SMS sporočil.
at (začnemo s preverjanjem prisotnosti)
OK
at&f (povrnitev tovarniških nastavitev)
OK
at+cpin? (Potreben vnos PIN in/ali PUK kode?)
+CPIN: SIM PIN
OK
at+cpin="1234" (ako mobilnik zahteva samo PIN kodo)
OK
at+cpin="12345678","1234" (ako mobilnik zahteva PIN in PUK)
OK
at+cmgf=1 (preklop v tekstovni način pošiljanja SMS)
OK
Pošiljanje SMS z vsebino "Zdravo!" na št. +386 41 597 984 v tekstovnem načinu:
at+cmgs="+386 41 597 984"
> Zdravo! <CTRL-Z>
+cmgs: xyz ("xyz" je števec odposlanih SMS)
OK
Od GSM terminalov, ki sem jih preskusil, podpirata tekstovni način rokovanja z SMS samo M20T in TC35. Bolj univerzalni PDU način pošiljanja SMS, ki ga podpirajo vsi terminali, je bolj zapleten in zahteva pretvorbo vsebine SMS iz 7 bitnih ASCII znakov v 8 bitne oktete ter specifikacijo dodatnih parametrov. Osnovna inicializacija terminala po vklopu poteka enako kot pri pošiljanju v tekstovnem načinu, pošiljanje sporočila SMS pa se aktivira z ukazoma:
at+cmgf=0 (preklop v PDU način pošiljanja SMS)
OK
Pošljemo SMS z vsebino "Zdravo" na št. +386 41 597 984, SMS je sestavljen iz 21 oktetov (inicialni oktet "00" ne šteje):
at+cmgs=21
>0011000B918346517989F40000AA075AB23C6C7F8700<CTRL-Z>
+cmgs: xyz ("xyz" je števec odposlanih SMS)
OK
Na prvi pogled veliko manj pregledno kot pri tekstovnem načinu, zato si pobliže oglejmo pomen posameznih oktetov:
00 ... Dolžina SMSC informacije je 0, terminal uporabi SMSC št. shranjeno v telefonu
11 ... Prvi oktet glave sporočila, vsebuje različne parametre
00 ... Telefon sam pripravi identifikacijo pošiljatelja SMS sporočila
0B ... Dolžina št. prejemnika, v našem primeru 11 cifer
91 ... Tip zapisa št. prejemnika, 91 pomeni mednarodni format
83 46 51 79 89 F4 ... 11 mestna št. 386 41 597 984 zapisana v posebnem vrstnem redu, manjkajoča polovica šestega (zadnjega) okteta je zapolnjena z "F"
00 ... Oznaka protokola
00 ... Način kodiranja podatkov (vsebine SMS) - 00 pomeni 7 bitno kodiranje
AA ... Veljavnost sporočila, AA pomeni 4 dni
07 ... Dolžina vsebine SMS, v našem primeru sedem 7-bitnih ASCII znakov, prekodiranih v 8 bitne oktete (pri daljših sporočilih je št. oktetov seveda manjše od števila 7-bitnih znakov vsebine SMS).
5AB23C6C7F8700 ... Besedilo "Zdravo!" prekodirano iz 7 bit ASCII v oktete
Ker bi podrobnejši opis kodiranja SMS sporočila v PDU formatu v reviji zavzel več prostora kot preostali del prispevka, navajam na tem mestu le naslov spletne strani http://www.dreamfabric.com/sms . Tu bo zainteresirani bralec našel podrobno tolmačenje pomena posameznih parametrov ter algoritem prekodiranja 7 bitnih ASCII znakov vsebine sporočila v oktete.
Električno vezje
Načrt električnega vezja ALSMS-01 je prikazan na sliki 4. Sestavljajo ga štirje podsklopi:
1. Napajalnik s polnilnikom svinčevega akumulatorja rezervnega napajanja ter vezjem za izklop v primeru izpraznitve akumulatorja (T1).
2. Mikrokrmilnik (IC1) z reset vezjem (IC2), RS-232 vmesnikom (IC3) in temperaturnim senzorjem (IC6).
3. Električni (OC1 ... OC8) in optični (OR1, OR2) vhodi. Električne vhode je s kratkostičniki (JP11 ... JP18) možno konfigurirati tako, da se aktivirajo bodisi s sklenitvijo obeh priključnih sponk bodisi z enosmerno napetostjo 5V do 25V. V slednjem primeru so od preostalega vezja ALSMS-01 galvansko ločeni za napetosti do +/- 50V glede na maso ALSMS-01.
4. Relejski izhodi (Re1 ... Re3).
ALSMS-01 je predviden za neprekinjeno delovanje na oddaljeni lokaciji brez neposrednega nadzora, zato je v 230V omrežnem tokokrogu vezana temperaturna varovalka. Ta v primeru pregrevanja transformatorja zaradi npr. okvare katere od vgrajenih komponent pri temperaturi nad 100 C odklopi javljalnik ALSMS-01 od napajanja. Na tiskanini je nameščena v notranjosti toroidnega omrežnega transformatorja.
V primeru uporabe GSM modula Siemens M20T (ali TC35) je le tega možno priključiti na konektor KON10 neposredno, le napajalno napetost 12V peljemo z ločenim kablom do vtičnice za napajanje M20T. Napajalni vod je pred kratkim stikom varovan z 250mA PTCjem, ki zagotavlja do 100 ciklov omejitve toka ob preveliki porabi oz. kratkem stiku. Z nekoliko manjšim 35mA PTC je varovan tudi tokokrog napajanja električnih vhodov, kadar so ti konfigurirani za aktiviranje s sklenitvijo vhodnih sponk.
Pri uporabi mobilnega telefona Siemens C45 (enako velja za C35) se stvari bolj nerodne. Ta mobilnik ima na dnu ohišja vtičnico, v kateri so prisotni tako pini za serijsko komunikacijo, kot pin za priklop polnilca baterij. Za povrh signali serijske komunikacije na konektorju C45 niso RS-232 kompatibilni, temveč so to signali interne (CMOS?) logike, zato jih ni možno povezati neposredno z RS-232 vmesnikom ALSMS-01. Na voljo imamo dve možnosti. Še prej pa opozorilo. Vse, kar počnete na svojem GSM mobilniku, počnete na lastno odgovornost. če v svoje početje niste popolnoma prepričani, se raje obrnite po pomoč na izkušenega kolega. Avtor tega prispevka ne prevzema odgovornosti za morebitne uničene mobilne telefone.
Torej prva, manj simpatična možnost je, da v vezju ALSMS-01 izpustimo integrirano vezje IC3 (MAX-232) ter povežemo mikrokontroler ALSMS-01 z RXD/TXD pinoma vtičnice C45 prek enostavnega vezja za prilagoditev nivojev. čeprav signalna logika ni invertirana, pa preprosto prilagodilno vezje vseeno potrebujemo, ker sta RXD/TXD vhod/izhod PIC16F876 mikrokontrolerja CMOS 5V, medtem ko so napetostni nivoji in prag preklopa pri C45 nižji. Seveda moramo povezati tudi masi obeh naprav in pripeljati na vtičnico C45 elektriko za polnjenje baterije. Polnilna napetost ne sme biti 12V kot je to potrebno za napajanje M20T, biti mora tudi pravilno tokovno omejena. Najbolje je uporabiti kar originalno dobavljeni polnilnik za baterije iz kompleta s C45. Ustrezen konektor, ki je skladen z vtičnico C45, je možno kupiti pri LE Tehniki. Pomembno je vedeti, da smo pri uporabi C45 omejeni s temperaturo okolice. Proizvajalec v navodilih za uporabo navaja, da je polnjenje baterije možno le pri temperaturah okolice 5 st.C do 40 st.C
Druga, za moj okus bolj prava možnost je, da kupimo ali si naredimo adapterski kabel za povezavo mobilnega telefona C45 z RS-232 vmesnikom ALSMS-01. Tudi v tem primeru je še vedno potrebno na ustrezen pin vtičnice C45 poleg signalov serijske komunikacije pripeljati napetost za polnjenje baterije. Za rezervno napajanje GSM terminala služi pri uporabi C45 kar njegova lastna baterija. Kdor želi ustrezen adapterski kabel izdelati sam, bo napotke našel na spletni strani http://www.gsmdevice.com/schematic/siemens.htm .
Izdelava ALSMS-01
ALSMS-01 je izdelan na tiskanem vezju dimenzij 171mm x 128mm. Upori in blokirni keramični kondenzatorji ter diode, z izjemo zaščitne D8, so SMD izvedbe, montirani s spodnje strani vezja. Ostali elementi so klasični ožičeni, nameščeni na gornji strani. Prav vsi elemetni, vključno s transformatorjem, konektorji in priključnimi sponkami so prispajkani oz. pritrjeni neposredno na tiskanino, tako da odpade vsako dodatno ožičenje. Sestavni načrt je prikazan na sliki 5, izgled tiskanega vezja pa na sliki 6.
ALSMS-01 ne deluje brez ustreznega programa za mikrokrmilnik ter programa za konfiguracijo s PC računalnikom (glej povezave na začetku strani). Uporaba je brezplačna za amaterske oz. neprofitne zasebne namene, ni pa dovoljena uporaba v komercialne namene brez predhodne odobritve s strani avtorja. Za vsa morebitna vprašanja, na katera v tem prispevku ali na spletnih straneh bralec ne bi našel odgovora, sem dosegljiv prek e-pošte.
Back to S56AL page! |