wersja mobilna | kontakt z nami

Restarter do routera sterowany za pomocą SMS

Numer: Czerwiec/2016

Nikogo nie trzeba przekonywać o tym, jak bardzo jesteśmy uzależnieni od Internetu. Nie trzeba też przekonywać, jak irytujące mogą być niespodziewane przerwy w dostępie. Wiele z takich awarii można łatwo usunąć poprzez zrestartowanie routera lub modemu. Oczywiście, o ile mamy do niego łatwy dostęp. Jeśli nie, to idealnym rozwiązaniem będzie prezentowane urządzenie. Może służyć do zdalnego włączania, wyłączania lub restartowania takich urządzeń jak np. routery. Jedyne, co musimy zrobić, to wysłać SMS.

Pobierz PDFMateriały dodatkowe

Fotografia 1. Moduł z układem SIM900A

Głównym elementem urządzenia jest płytka Arduino Mega. Wersja "Mega" ma tę ważną cechę, że wyposażono ją w 4 sprzętowe interfejsy szeregowe UART (wersja Uno ma tylko 1).

Pierwszy interfejs zarezerwowano dla komunikacji poprzez USB, dzięki czemu jest możliwe śledzenie pracy układu oraz programowanie płytki Arduino. Drugi UART służy do komunikacji z modułem GSM, pozostałe są nieużywane.

Do płytki Arduino dołączono moduły rozszerzające AVT1633 oraz AVT1615 udostępniające szereg złączy śrubowych na wyprowadzeniach Arduino oraz nieskomplikowany interfejs użytkownika w postaci wyświetlacza 2×16 i 4 przycisków.

Drugim ważnym elementem urządzenia jest moduł GSM. Na płytce znajduje się układ SIM900A oraz peryferia niezbędne do jego prawidłowej pracy. Należy tylko dołączyć zasilanie oraz interfejs szeregowy UART, jak pokazano na fotografii 1.

Pozostałe elementy urządzenia to regulowany stabilizator napięcia AVT1066 z dodatkowym zasilaczem 12 V oraz moduł wykonawczy z przekaźnikiem AVT1656 z mała modyfikacją - wykorzystuje styki NO przekaźnika a nie NC, dzięki czemu sterowany obwód jest załączony nawet gdy urządzenie nie działa.

SIM900 a SIM900A

Rysunek 2. Schemat ideowy połączeń

W zastosowanym module GSM zamontowany jest układ SIM900A - jedna z wersji popularnego układu SIM900. Różnica pozornie niewielka, ale można stracić wiele godzin, próbując zmusić wersję z literka "A" do zalogowania się do naszych sieci GSM. Jest to wersja przygotowana na rynek azjatycki i przystosowana do tamtejszych sieci. Aby układ działał z sieciami europejskich operatorów, należy zmienić oprogramowanie układu, tzw. firmware.

Do przeprowadzenia tej operacji potrzebne będą: aplikacja do zmiany firmware'u układu SIM900, plik firmware'u, konwerter USB-UART np. AVTMOD09 oraz źródło zasilania dla modułu. Aplikację można pobrać ze strony http://goo.gl/JaG5iZ.

Zbiór różnych wersji firmware do układów SIM900 znajduje się na tej stronie http://goo.gl/0nMQEZ. Należy wybrać najnowszą wersję dla układu SIM900 (bez żadnej literki na końcu), na tę chwilę jest to: 137B15SIM900M64_ST.

Po pierwsze należy połączyć konwerter do komputera i sprawdzić, który port COM został mu przydzielony. Następnie należy połączyć konwerter z modułem (RX, TX oraz GND zgodnie z oznaczeniami) oraz przygotować źródło zasilania, jak na rysunku 2.

W tym przypadku jest to regulowany stabilizator AVT1066 z ustawionym napięciem na wyjściu 5,0 V. Na razie nie należy dołączać zasilania do modułu. W drugim etapie należy uruchomić pobraną aplikację Simcom - sim900 Customer flash loader V1.01.exe.

Zostanie wyświetlone okno, jak na rysunku 3. Należy wskazać plik firmware z rozszerzeniem .cla, wskazać port COM konwertera USB-UART i kliknąć przycisk START. Teraz należy dołączyć zasilanie modułu, rozpocznie się wtedy aktualizacja, może potrwać kilka-kilkanaście minut. Po zakończeniu należy odłączyć na chwilę zasilanie modułu i gotowe.

Zasilanie SIM900

Rysunek 3. Aplikacja do zmiany fi rmware układu SIM900

Bardzo ważnym czynnikiem, który wpływa na poprawną pracę modułu jest jego zasilanie. Sam układ SIM900 wymaga zasilania napięciem z przedziału 3,4...4,5 V, na płytce modułu dodatnia linia zasilania poprowadzona jest poprzez diodę prostowniczą na której następuje spadek napięcia ok 0,7 V, zatem moduł można bezpiecznie zasilać napięciem 5 V.

Moduł w stanie czuwania pobiera niewielki prąd, kilkanaście...kilkadziesiąt mA ale w trakcie komunikacji z siecią GSM może pobierać chwilowo nawet 2...3 A. Dlatego nie ma sensu zasilanie modułu ze złącza USB czy z płytki ARDUINO, czy nawet z ładowarki USB.

Musi być zasilacz o napięciu 5 V i wydajności ok 1,5 A a dodatkowo, blisko modułu, na szynach zasilania musi być zamontowany kondensator typu LOW ESR (do pracy impulsowej) o pojemności min 1500 µF.

Prezentowane urządzenie było zasilanie zasilaczem 12 V/1,5 A z dołączonym regulowanym stabilizatorem AVT1066 z ustawionym nap na wyjściu 5,0 V i dodatkowym kondensatorem 1500 µF/6,3 V low esr.

Komunikacja z SIM900

Komunikacja z modułem odbywa się poprzez dwu-przewodowy interfejs UART (RX i TX). Domyślne ustawienia komunikacji to: 19200, 8, n, 1. Za pomocą konwertera USB-UART i programu typu terminal można w sterować modułem GSM. Sterowanie odbywa się komendami AT.

Aby przetestować komunikację można wysłać komendę AT<CR> (symbol <CR> oznacza znak końca linii, zwykle odpowiada mu przyciśnięcie klawisza Enter). Moduł w odpowiedzi wyśle <CR><LF>OK<CR><LF>. Symbol <LF> oznacza początek nowej linii).

Listing 1. Inicjacjowanie zasobów sprzętowych

Listing 2. Konfigurowanie modułu GSM

Listing 3. Sprawdzanie poziomu sygnału i odczyt wiadomości tekstowej z pozycji 1

Treść odpowiedzi modułu zwykle ma właśnie taką strukturę: <CR><LF>odpowiedź modułu<CR><LF>. W dalszej części artykułu, dla lepszej czytelności pomijane będą <CR> i <LF>. Inną pomocną komendą jest AT+GSV w odpowiedzi moduł wyśle informacje o typie zastosowanego układu SIM900 oraz o wersji firmware.

Po zainstalowaniu karty sim, można sprawdzić czy moduł zalogował się do sieci GSM. Uwaga - kartę SIM należy instalować tylko przy wyłączonym zasilaniu modułu. Ponadto, karta musi być aktywna (aktywowana wcześniej w telefonie) i dla ułatwienia powinna mieć wyłączone żądanie kodu PIN. Najpierw należy wysłać komendę A T + C R E G = 1 , a następnie, gdy po wysłaniu AT+- CREG=? otrzymamy odpowiedź +CREG= 1,1 to znaczy, że moduł jest zalogowany.

Działanie programu

Program wykonano za pomocą środowiska Arduino. Pierwsze zadania, które wykonuje, to inicjowanie zasobów sprzętowych - ustawienie kierunku wyprowadzeń, rozruch wyświetlacza, uruchomienie portów szeregowych i na koniec wyświetlenie komunikatu Hello (listing 1).

Następny etap polega na skonfigurowaniu modułu GSM, a gdy moduł zaloguje się do sieci, to z kary sim odczytywana zostaje nazwa operatora i wyświetlona na wyświetlaczu (listing 2). Potem program w pętli sprawdza na zmianę dwie rzeczy: poziom sygnału GSM czyli tzw. zasięg, który również jest prezentowany na wyświetlaczu oraz próbuje odczytać SMS (listing 3).

Listing 4. Sprawdzanie komend zawartych w wiadomości tekstowej

Listing 5. Wysyłanie wiadomości potwierdzającej

Wiadomości tekstowe zapisywane są w pamięci kary sim, pod na pierwszej wolnej pozycji. Program zawsze odczytuje wiadomość na pozycji 1, jeśli zawiera jakąś treść to sprawdza i ewentualnie wykonuje komendy a na koniec kasuje tę wiadomość. W ten sposób kolejna wiadomość zostanie zapisana na tej pozycji (listing 4).

Urządzenie akceptuje 3 komendy (smsy o takich treściach): Out off - powoduje wyłączenie wyjścia, Out on - powoduje załączenie wyjścia oraz Out res - powoduje rozłączenie wyjścia na ok 2 s a następnie automatyczne załączenie, czyli restart odbiornika dołączonego poprzez moduł wykonawczy. Jeżeli SMS zawiera poprawną komendę to urządzenie wykonuje zadanie a następnie wysyła potwierdzenie - smsa o treści OK, pod numer nadawcy (listing 5).

Pełne źródło programu jest dostępne w materiałach dodatkowych do projektu.

KS

Pozostałe artykuły

Podwieszany ploter z Raspberry PI

Numer: Lipiec/2016

Wydruk dużych schematów i grafik wektorowych nierzadko stanowi problem. Zazwyczaj stosuje się w tym celu plotery, których koszt zakupu wcale nie jest mały. Ploter można też zbudować samodzielnie, względnie niedużym kosztem, np. w oparciu o Raspberry PI. Co prawda nie będzie on miał precyzji urządzeń profesjonalnych, a tempo pracy będzie raczej powolne, ale po udoskonaleniu może okazać się przydatnym narzędziem. W artykule prezentujemy ...

Automat do gier z Raspberry Pi

Numer: Czerwiec/2016

Miniaturowe komputery mają obecnie moce obliczeniowe znacznie przewyższające możliwości pełnowymiarowych komputerów z przed kilku-kilkunastu lat. Dotyczy to także specjalizowanych komputerów do gier wideo. Z całą pewnością wielu starszych czytelników EP miło wspomina czas spędzony w salonach gier, gdy królowały Pacman i Galaxians. Takie zamiłowanie do starych gier sprawiło, że na świecie opracowano bardzo wiele projektów, ...

Raspberry TOR Router

Numer: Czerwiec/2017

Korzystanie z sieci TOR nie jest specjalnie trudne, ale wymaga nieco zachodu. W praktyce każde urządzenie, na którym chcemy puścić ruch sieciowy poprzez szereg anonimowych routerów musi mieć zainstalowane odpowiednie oprogramowanie. Da się to jednak obejść w całkiem łatwy sposób - wystarczy tylko posiadać taki komputerek, jak Raspberry Pi.

Kot z dostępem do Internetu

Numer: Maj/2017

Choć prima aprilis już minął, publikujemy opis projektu, który na pierwszy rzut oka będzie wydawał się żartem. I fakt ? opisywany w nim projekt powstał jako żart, ale mamy wrażenie, że sama idea jest godna zastanowienia i może być podstawą do opracowania bardziej sensownych i przydanych rozwiązań. Dlatego prezentujemy "Kota IoT", na którego pomysł wpadł Jeremy Wall z Kalifornii.

Raspberry PI jako koparka bitcoinów

Numer: Maj/2016

Kryptowaluty coraz odważniej wkraczają do naszego życia. Bitcoin - najbardziej popularna z nich nie tylko została niedawno oficjalnie uznana w Europie za walutę, a nie towar, co ułatwia transakcje, ale też bywa akceptowana przez rosnącą liczbę firm. Pod pewnymi względami przypomina też złoto - jego zasoby są ograniczone i trzeba je wydobywać. Tyle, że zamiast przesiewać grunt na Alasce czy kopać kilofem pod ziemią, można to ...

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

Sierpień 2017

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym