Konrad Cwynar V rok Koło Techniki Cyfrowej dr inż. Wojciech Mysiński opiekun naukowy CONTROL SYSTEM USING GSM TECHNOLOGY SYSTEM STEROWANIA WYKORZYSTUJĄCY TECHNOLOGIĘ GSM Keywords: AT commands, AVR, controller, GSM, mobile phone, wireless Słowa kluczowe: AVR, bezprzewodowy, GSM, komendy AT, sterownik, telefon komórkowy Nowadays it is possible to see huge increase of use the GSM (Global System for Mobile Communications) technology everywhere in the World. Mobile phones are widely popular with people and as a result of it there is easy way to communicate between users by sending text messages or initialize voice connections. This article summarizes additional ways of using GSM technology to build systems which can improve people s life. 1. Wstęp Obecnie coraz częściej w nowych dziedzinach przemysłu, jak i w amatorskich zastosowaniach domowych rodzi się potrzeba sterowania i monitorowania procesów rozproszonych. Do tego celu najlepiej nadają się urządzenia współpracujące z siecią Internet oraz urządzenia pracujące w technologii GSM pozwalające na kontrolę urządzeń w zakresie obejmującym całą Ziemię. Od kilkunastu lat technologia GSM sukcesywnie wprowadzana na Polski rynek, dzisiaj stała się wszechobecna w każdym elemencie naszego życia. Korzystanie z dobrodziejstw tego wynalazku jest obecnie szeroko powszechne, wiec warto zastanowić się w jaki jeszcze sposób oprócz oczywistej komunikacji międzyludzkiej można go wykorzystać w celu poprawienia jakości życia? Odpowiedzią na to pytanie jest zaprezentowana w artykule konstrukcja sterownika wykorzystującego technologię GSM. 2. Budowa i możliwości sterownika Prezentowany system pozwala kontrolować stan podłączonych do niego urządzeń poprzez komunikację drogą wiadomości tekstowych. Sterownik zbudowany został w oparciu o płytę ewaluacyjną, wyposażoną w 8-bitowy mikrokontroler jednoukładowy ATMEGA32 komunikujący się z modemem GSM, zaimplementowanym w telefonie komórkowym Sony Ericsson T68i. Koszt zamówienia takiej płyty sięga od kilkudziesięciu do kilkuset złotych, a wykonanie płyty obsługującej mikrokontroler ATMEGA własnoręcznie jest zdecydowanie tańszym rozwiązaniem. Całkowity koszt wykonania urządzenia łącznie z zakupem telefonu komórkowego starszego typu wynosi kilkadziesiąt złotych. Od strony sprzętowej komunikacja pomiędzy mikrokontrolerem i modemem GSM zrealizowana jest za pomocą interfejsu RS-232, a programowa jej realizacja opiera się o ustandaryzowany zestaw komend AT. Dla poprawności działania telefon komórkowy musi być wyposażony w aktywną kartę SIM.
Rys. 1. Prezentacja sterownika na Festiwalu Nauki w Krakowie dnia 13-05-2010 Fig. 1. The presentation of controller on Festival of Science In Cracow on 13-05-2010 Urządzenie wyposażone jest w: wyświetlacz graficzny LCD (Toshiba T6963C) o rozdzielczości 128x64 pikseli termometr elektroniczny DS18B20 zestaw 16 wejść dyskretnych, izolowanych optycznie o napięciu maksymalnym 55V zestaw 17 wyjść dyskretnych o obciążalności 4A zestaw 4 przetworników analogowych o napięciu wejściowym od 0 do 5 V moduł transmisji szeregowej zbudowany w oparciu o układ MAX232 telefon komórkowy Sony Ericsson T68i wyposażony w modem GSM Sterownik dzięki swojej uniwersalności pozwala na zastosowanie go w szerokim zakresie użytku codziennego. Zastosowany wyświetlacz informuje użytkownika o mierzonej temperaturze, pokazuje wartość mierzoną przez przetworniki analogowo - cyfrowe, stan wejść i wyjść dyskretnych oraz wyświetla informacje o stanie modemu. Termometr podłączony poprzez interfejs 1-wire umożliwia pomiar temperatur w zakresie od -55 do 125 C z rozdzielczością 11-bitowego słowa. Wejścia dyskretne pozwalają podłączyć urządzenia, których stan może być sprawdzony poprzez wysłanie odpowiednich komend SMS na numer zapisany na karcie SIM. Przetworniki analogowe rozszerzają działanie systemu o możliwości badania i raportowania wielkości analogowych zmieniających się w czasie w zakresie napięć od 0 do 5V. Główną zaletą sterownika jest możliwość zadawania stanów przekaźników dwustanowych poprzez wysyłane na jego numer komendy w postaci wiadomości SMS.
LCD 128x64 Zasilacz 24V Układ zasilania 1-Wire DS18B20-55 - 125 C Sieć 230V Rezonator kwarcowy 16MHz ATMEGA32 Kontroler transmisji RS-232 RS-232 Modem GSM (SE T68i) Wejścia dyskretne (16) Wejścia analogowe (4) Wyjścia dyskretne (17) Przyciski (2) Rys. 2. Architektura sterownika GSM. Fig. 2. GSM controller architecture. 3. Zestaw komend AT Komendy AT są ujednoliconym standardem pozwalającym na łatwą kontrolę modemu GSM (SE T68i) za pośrednictwem interfejsu RS-232. Komendy mają postać komunikatów tekstowych rozpoczynających się od sekwencji znaków: AT, po której następuje treść właściwa komunikatu. Podstawowe komendy AT zastosowane w sterowniku mają następującą postać: AT komenda, po której prawidłowo podłączony modem odpowiada komunikatem OK ATE0 wyłączenie funkcji generującej sygnał echa przez modem GSM AT+CPMS wybór lokalizacji zapisu odebranych komunikatów SMS, np. AT+CPMS= ME oznacza aktywowanie pamięci telefonu AT+CNMI wybór trybu przekazywania informacji o odebraniu wiadomości SMS przez modem GSM do mikrokontrolera, np. AT+CNMI=3,3,2 oznacza, że po odebraniu wiadomości telefon przekaże ją bezpośrednio do mikrokontrolera z użyciem kodu: +CMT: <zakodowana treść wiadomości> AT+CMGS=<ilość bajtów SMS> komenda inicjująca wysyłanie wiadomości SMS powodująca odesłanie przez modem znaku zachęty: >, po którym należy wpisać zakodowaną wiadomość SMS zakończoną złożeniem bajtów: 0x1A (Ctrl+z)
AT+CMGD=<indeks> kasowanie wiadomości tekstowej zapisanej w pamięci na pozycji: indeks Po każdej poprawnie odczytanej komendzie modem GSM zwraca komunikat OK, a w przypadku komendy nie rozpoznanej ERROR. Po wysłaniu komendy AT+CMGS modem czeka na zakodowaną wiadomość SMS wysyłając znak zachęty >. 4. Kodowanie wiadomości SMS Aparat telefoniczny Sony Ericsson T68i wyposażony jest w modem GSM starszego typu, który obsługuje wysyłanie wiadomości wyłącznie w trybie PDU. Nowsze modele telefonów komórkowych umożliwiają kodowanie wiadomości w formacie tekstowym, co znacząco upraszcza obsługę procedury wysyłania wiadomości SMS za pomocą mikrokontrolera, ponieważ nie ma potrzeby kodowania wiadomości. Wiadomość tekstowa o treści 101 wysłana z numeru 605430333, odebrana przez modem GSM i przesłana za pomocą interfejsu RS-232 do mikrokontrolera ATMEGA zakodowana jest w postaci ciągu bajtów wyrażonych heksadecymalnie (jednemu bajtowi odpowiadają dwa znaki) i prezentuje się następująco: 1 2 3 4 5 6 7 8 9 10 11 07 91 8406010013F0 04 0B 91 8406450333F3 0000 90013122112380 03 31580C Rys. 3. Ramka wiadomości SMS Fig. 3. SMS frame gdzie: 1. 07 określa ilość bajtów, przy pomocy których zapisany jest numer Centrum Usług wraz z informacją o typie numeru ( międzynarodowy lub krajowy) 2. 91 wyznacza typ numeru Centrum Usług (91 określa numer międzynarodowy z przedrostkiem 48, 81 określa numer w notacji krajowej bez przedrostka 48) 3. 84 06 01 00 13 F0 zakodowany poprzez przestawianie cyfr w kolejnych bajtach numer Centrum Usług (numer 84 zamienia się na 48, numer 06 na 60 itd. aż do uzyskania numeru: 48 60 10 00 31 0F, gdzie F jest znakiem wstawionym w celu uzyskania parzystej liczby znaków opisujących numer. Uzyskany numer Centrum Usług jest numerem odpowiadającym sieci Plus GSM) 4. 04 pierwszy oktet wiadomości SMS (standardowo 04 HEX dla wiadomości odbieranych) 5. 0B ilość cyfr numery nadawcy (OB HEX = 11 DEC ) zakodowana tak samo jak numer Centrum Usług 6. 91 wyznacza typ numeru nadawcy (wg punktu 2) 7. 84 06 45 03 33 F3 numer nadawcy wiadomości tekstowej, który po konwersji (wg punktu 3) ma postać: 48605430333 8. 00 00 konfiguracja SMS (SMS normalny, w alfabecie domyślnym w 7 bitowych znakach ASCII)
9. 90 01 31 22 11 23 80 zakodowana informacja o dacie nadania wiadomości dodana automatycznie przez Centrum Usług 10. 03 ilość bajtów zakodowanej treści wiadomości SMS 11. 31 58 0C zakodowana treść wiadomości SMS Rozkodowanie wiadomości odebranej przez modem GSM polega na wyselekcjonowaniu fragmentu zawierającego istotną wiadomość na podstawie powyższych informacji i dokonaniu operacji bitowych w celu odczytania jej treści. Najistotniejszy fragment analizowanej wiadomości ma postać bajtów: 31 58 0C, którą w celu zdekodowania należy zapisać jako bajty w notacji binarnej, czyli 31 HEX = 00110001 BIN, 58 HEX = 01011000 BIN, 0C HEX = 00001100 BIN. Konwersja polega na wyciąganiu najbardziej znaczących bitów z kolejnych bajtów i wstawianiu ich na pozycję najmniej znaczących bitów w bajtach następnych. Przykładowo, z pierwszego bajtu wyciąga się jeden bit najbardziej znaczący (wyciąga się 0 z bajtu 00110001 i w rezultacie otrzymuje się 0110001) i wstawia się na pozycję najmniej znaczącego bitu w bajcie drugim, który ma teraz postać 010110000. Z tak powstałego bajtu wyciąga się dwa najbardziej znaczące bity (wyciąga się 01 z bajtu 010110000 i w rezultacie otrzymuje się 0110000 ) i wstawia się je na pozycję najmniej znaczących bitów w trzecim bajcie, otrzymując słowo 0000110001. Z tak powstałego słowa wyciąga się trzy najbardziej znaczące bity, które nie wnoszą żadnej informacji ponieważ z poprzednich operacji uzyskano trzy słowa 7-bitowe, których liczbę określa fragment 10 z ramki SMS (Rys. 3.) Po konwersji powstałych słów 7-bitowych na postać dziesiętną otrzymuje się wyniki: 0110001 BIN = 49 DEC, 0110000 BIN = 48 DEC, 0110001 BIN = 49 DEC, które są kodami ASCII znaków 1, 0 oraz 1, czyli treści zakodowanej wiadomości tekstowej. W przypadku większej ilości bajtów zakodowanej treści operację powtarza się aż do rozkodowania wszystkich znaków. Należy zauważyć że podczas rozkodowywania informacji w każdym kroku z 8-bitowego słowa tworzy się 7-bitowe słowo przez co po 8 krokach uzyskuje się 1 bajt dodatkowy. 5. Komunikacja użytkownika ze sterownikiem Interakcja użytkownika ze sterownikiem GSM opiera się o wiadomości tekstowe, które użytkownik wysyła na numer karty SIM zastosowanej w sterowniku i odbiera od niego.
Temp? Pytanie o aktualną mierzoną temperaturę. Do=x1x2 x15 Sterowanie stykami wyjść dyskretnych. xn = {0,1} Ai? Pytanie o stan wejść analogowych. Sterownik GSM Do.n=x Sterowanie n-tym stykiem wyjściowym. x = {0,1} Di? Pytanie o stan wejść dyskretnych. Do? Pytanie o stan wyjść dyskretnych. Rys. 4. Komunikacja ze sterownikiem poprzez SMS. Fig. 4. Communication with the controller by SMS. 6. Zastosowanie sterownika Dzięki wielu możliwościom mikrokontrolera ATMEGA zakres stosowalności urządzenia jest bardzo szeroki. Jako przykłady zastosowań można wymienić: Alarm domowy z funkcją zdalnego uzbrajania i rozbrajania oraz powiadamiania o aktywacji czujników ruchu Sterownik inteligentnego domu, pozwalający na zdalną regulację temperatury, wysterowanie pieca C.O., otwieranie i zamykaniem rolet, symulację obecności domowników, załączanie oraz wyłączanie poszczególnych obwodów instalacji elektrycznej i monitorowanie obecności niepowołanych osób. Monitor stanu warunków pogodowych (temperatury powietrza, prędkości i kierunku wiatru, wilgotności powietrza) pozwalający na bezprzewodowe przesyłanie danych w obszarze dostępu do sieci GSM. Monitor temperatury w serwerowni wraz możliwością zdalnego restartowania grup routerów. Alarm samochodowy wyposażony w monitor stanu samochodu (otwieranie i zamykanie drzwi, stan silnika, obecność kierowcy) 7. Bibliografia [1] Jacek Bogusz Moduły GSM w systemach mikroprocesorowych Warszawa 2007