Sterownik z modułem komunikacyjnym GSM

Sterownik z modułem komunikacyjnym GSM
Pobierz PDF Download icon

Nieskomplikowane w obsłudze urządzenie, którym można sterować wysyłając wiadomości SMS. Do dyspozycji są dwa wyjścia z możliwością załączenia czasowego oraz dwa wejścia z funkcją alarmu. Rekomendacje: urządzenie może być szczególnie przydatne w okresie wakacyjnym. Umożliwi symulowanie obecności domowników oraz może powiadamiać np. o wejściu do mieszkania.

Sterownik reaguje na komendy w postaci wiadomości SMS – ich wykaz umieszczono w tabeli 1. Ogólna postać komendy jest następująca:

„Polecenie1 wartość1 akcja1. Polecenie2 wartość2 akcja2”.

Ogólne zasady dla tworzenia komend:

− Każde polecenie musi zaczynać się od dużej litery.
− Wartość zwykle dotyczy sterowanego kanału i wtedy może przyjąć 1 lub 2.
− Elementy komendy muszą być oddzielone spacjami.
− Komendy muszą być zakończone kropkami (tylko ostatnia komenda w danej wiadomości nie musi być zakończona kropką).
− Niektóre komendy mogą nie zawierać wartości lub akcji.
− Komendy i akcje mają kilka równoważnych treści np. Out == Wyj.
− W jednej wiadomości sms może być umieszczonych kilka komend.
− Maksymalna długość wiadomości to 128 znaków.

Ważna uwaga – cudzysłowie używane w artykule nie należy do treści komendy. Użyto ich jedynie do ograniczenia zakresu przykładowych komend.

Przykładowe komendy:

− „Out 1 on. Time 15.” – załącza wyjście pierwsze i ustawia wyłączenie po 15 sekundach. Jeśli po poleceniu „Time” i wartości czasu nie zostanie wstawiona żadna akcja („on” lub „off”), to urządzenie przyjmuje, że tym stanem będzie stan przeciwny do aktualnego, czyli przeciwny do stanu z chwili odebrania komendy. W przedstawionym przykładzie wyjście najpierw zostaje załączone, więc wymuszany jest jego stan. Aby ustawić funkcję czasowego wyłączenia bez zmiany aktualnego stanu wyjścia, należy wysłać komendę podobną do takiej: „Out 1. Time 15 off.”. Wartość czasu domyślnie liczona jest w sekundach. Dla lepszej czytelności dopuszczalne jest umieszczenie litery „s” tuż po wartości czasu (bez spacji) np. „Time 100s”. Parametr czasu liczonego w sekundach może mieć wartość z zakresu 1…9999. Urządzenie pozwala na wprowadzenie czasu liczonego w minutach poprzez umieszczenie litery „m” zamiast „s”. Wtedy zakres wartości zostaje ograniczony do 999. Analogicznie, można podać czas liczony w godzinach. Wtedy należy umieścić literę „g” lub „h” za wartością liczbową, a zakres zostaje ograniczony do 12, np. „Out 1. Time 1h off.”. Aby wyłączyć funkcję czasową w trakcie odmierzania czasu należy wysłać komendę „Out 1. Time off.”. Po każdej komendzie zawierającej polecenie „Out” urządzenie odpowie wiadomością SMS wysyłaną na numer nadawcy o treści zawierającej stan obu wyjść i jeśli uruchomiona jest funkcja czasowa ­ aktualny czas. Przykładowe odpowiedzi urządzenia: “Out 1 on. Out 2” lub “Out 1 on. Time 20s off. Out 2 off.”

− „Input ?. Alarm ?.” – pierwsze polecenie to zapytanie o stan wejść. W odpowiedzi urządzenie wyśle wiadomość SMS o treści podobnej do następującej „Input 1 on. Input 2 off.”. Drugie polecenie tej komendy to zapytanie o stan funkcji alarmowych. W odpowiedzi na nie urządzenie poda stan funkcji, a jeśli na którymś z wejść funkcja alarmu jest włączona, to dodatkowo zostanie podany numer, na który będą wysyłane powiadomienia. Przykładowa odpowiedź może być następująca „Alarm 1 off. Alarm 2 num:123456789.”.

− „Pass 1234 on. Alarm 1 set. Alarm 2 reset” – pierwsze polecenie powoduje ustawienie przykładowego hasła dostępu. Może ono mieć długość do 4 znaków i musi składać się cyfr. Po takiej operacji urządzenie będzie reagowało na komendy tylko, jeśli będą rozpoczęte hasłem tj. poleceniem „Pass 1234.”. Aby sprawdzić czy urządzenie ma włączone żądanie hasła, należy wysłać komendę: “Pass ?.” Jest to jedyna komenda, na którą urządzenie zareaguje bez podania hasła dostępu. Treść odpowiedzi będzie miała postać „Password on.” lub „Password off.”. Jeśli hasło ma zostać wyłączone to w tym przypadku należy wysłać komendę: “Pass 1234 off.”. Drugie polecenie, komendy z przykładu włącza funkcję alarmu dla wejścia pierwszego. Urządzenie zapamiętuje numer nadawcy tego polecenia, jako ten, pod który zostanie wysłana wiadomość powiadamiająca o alarmie. Ważne, aby nadawca wiadomości miał wyłączone ukrywanie numeru. Ostatnie polecenie wyłącza funkcje powiadamiania alarmowego na wejściu drugim. Zmiany w ustawieniach alarmów urządzenie podsumuje komunikatem podobnym do „Alarm 1 num:123456789. Alarm 2 off”. Od tej pory wyzwolenie pierwszego wejścia alarmowego spowoduje wysłanie wiadomości o treści „ALARM 1 !!!”.

− „Pass 5678. Out 1 on. Time 3”. Jeśli urządzenie będzie pracowało np. jako restarter do routera lub innego podobnego urządzenia, to taką wiadomość powinno otrzymać, aby wykonać swe zadanie. Pierwsze polecenie to podanie przykładowego hasła dostępu – warto zabezpieczyć urządzenie przed dostępem osób nieuprawnionych. Drugie i trzecie to załączenie wyjścia na czas 3 sekund. W takim zastosowaniu zasilanie routera powinno przechodzić przez styki przekaźnika normalnie zwarte (NC i NN). Dzięki temu, po włączeniu zasilania urządzeń, router zostanie automatycznie załączony. Natomiast załączenie wyjścia poleceniem „Out 1 on” odetnie zasilanie od routera, a 3 sekundy powinny wystarczyć do wymuszenia jego restartu.

Budowa i obsługa.

Schemat ideowy sterownika z modułem GSM pokazano na rysunku 1. Można go podzielić na kilka bloków funkcjonalnych. Pierwszym z nich jest blok zasilania z układem L5973, który dostarcza napięcie 4,3 V. Drugim jest blok GSM, w którego skład wchodzi moduł SIM800, gniazdo antenowe typu SMA oraz gniazdo karty SIM. Kolejnym jest blok układów wykonawczych, zawierający elementy sterujące pracą przekaźników oraz elementy formujące sygnały ze złącz wejściowych. Ostatnim blokiem jest blok sterujący z mikrokontrolerem oraz diodami LED informującymi o stanie pracy układu. Jednak najważniejszego elementu urządzenia nie widać na schemacie – jest to program sterujący pracą mikrokontrolera.

Rozmieszczenie elementów na płytce przedstawiono na rysunku 2. Złącze CON1 służy do dołączenia zasilania +12 V/0,4 A DC. Złącza SW1 oraz SW2 pozwalają na dołączenie przycisków, dzięki którym jest możliwe przełączanie stanu wyjść. Złącza AL1 oraz AL2 to wejścia, których stan można sprawdzić poprzez komendy SMS. Również powiadomienia alarmowe (o ile są włączone) są wyzwalane stanem aktywnym na tych wejściach.

Poziomem aktywnym dla wszystkich wejść jest zwarcie do masy, który utrzyma się przez co najmniej 0,2 sekundy. Złącze CON8 to wyjście przekaźnikowe kanału pierwszego natomiast CON7 drugiego. Na złączach wyjściowych wyprowadzone są styki przekaźników, ich oznaczenia znajdują się na płytce po stronie lutowania ­ normalnie otwarte (NO), normalnie zwarte (NC) oraz styki wspólne (NN).

Na płytce przewidziano również złącza serwisowe, niewykorzystywane w czasie normalnego użytkowania. Złącze CON6, w standardzie ATMEL ISP, umożliwia programowanie mikrokontrolera oraz ma dodatkową funkcję – pozwala na wyłączenie hasła dostępu. Aby tego dokonać, należy odłączyć zasilanie urządzenia, założyć zworkę na szpilki oznaczone „O” oraz „G” i wtedy włączyć zasilanie. Jest to jedyny ratunek w sytuacji, gdy zapomnimy hasła. Po tej czynności zostanie ono wyłączone. Złącza CON4 i CON5 pozwalają na podglądanie komunikacji pomiędzy procesorem a modułem GSM, co może być przydatne w czasie uruchamiania lub modyfikowania układu.

Trzy diody LED informują o stanie pracy urządzenia:

− Dioda D6 informuje o działaniu ogólnych funkcji systemu.
− Dioda D7 sygnalizuje komunikację pomiędzy mikrokontrolerem a modułem GSM.
− Dioda D8 określa status połączenia do sieci GSM.

W czasie normalnej pracy diody świecące migają co kilka sekund. Dioda D8 świeci dłuższy czas w trakcie uruchamiania, gdy urządzenie próbuje zalogować się do sieci GSM lub gdy nie ma zasięgu sieci oraz przez chwilę w trakcie wysyłania wiadomości. Dioda D7 świeci ciągle sygnalizując problem z komunikacją z modułem SIM800 lub z kartą SIM. Jeśli przez dłuższy czas (ok 1-2 minut) występuje problem z komunikacją lub zasięgiem, to sterownik automatycznie wymusza restart modułu GSM. Przycisk SW służy do zrestartowania całego systemu.

Kartę SIM należy instalować i usuwać tylko przy odłączonym zasilaniu urządzenia, a zainstalowana karta SIM musi mieć wyłączone żądanie kodu PIN.

 

Program sterujący

Mikrokontroler komunikuje się z modułem GSM poprzez interfejs UART za pomocą komend AT. Zasób dostępnych komend jest ogromny, ale w projekcie wykorzystywano tylko kilka z nich. Po uruchomieniu modułu poprzez odpowiednie wysterowanie linii PWR_KEY, inicjalizacja modułu wykonywana jest komendami, kolejno: „ATE0”, „AT+CREG=1”, „AT+CMGF=1”. Następnie jest usuwana pierwsza wiadomość przechowywana w pamięci wiadomości SMS poleceniem „AT+CMGD=1”.

W pętli głównej jest sprawdzany stan zalogowania do sieci GSM za pomocą polecenia „AT+CREG?” i jeśli urządzenie jest zalogowane do sieci, to jest sprawdzane pierwsze miejsce w pamięci SMS. Jeśli uda się odczytać wiadomość, to są wykonywane zawarte w niej polecenia, a następnie wiadomość zostaje usunięta. Jeśli polecenia były prawidłowe, to jest odsyłana odpowiedź za pomocą komendy „AT+CMGS”. Pełne źródło programu dostępne jest w materiałach dodatkowych do projektu.

KS

Artykuł ukazał się w
Elektronika Praktyczna
sierpień 2016
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe
KIT do tego projektu
Sterownik GSM, AVT5555
Sterownik GSM, AVT5555
Jest to proste w obsłudze urządzenie, którym można sterować wysyłając do niego wiadomości sms. Do dyspozycji są dwa wyjścia z możliwością czasowego...
Zobacz w sklepie

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik marzec 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje marzec 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna marzec 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich kwiecień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów