RaspbPI_GSM. Płytka z modemem GSM dla Raspberry PI

RaspbPI_GSM. Płytka z modemem GSM dla Raspberry PI
Pobierz PDF Download icon
Przedstawiona płytka umożliwia rozszerzenie funkcjonalności Raspberry PI o odbieranie, wysyłanie wiadomości SMS oraz o transmisję danych poprzez sieć GSM. Rekomendacje: płytka przyda się do budowy dostępnych zdalnie serwerów, układów zarządzających urządzeniami automatyki itp.

Rysunek 1. Schemat płytki GSM

Moduł rozszerzenia do poprawnej pracy musi być połączony z Raspberry Pi rev. 2 o przyporządkowaniu sygnałów GPIO-P1 umieszczonym w tabeli 1. Jako pierwszorzędny kanał transmisyjny jest wykorzystywany interfejs UART.

Płytka rozszerzenia jest oparta o popularny moduł GSM typu SIM900. Moduł jest kontrolowany i dane są przesyłane za pomocą UART komputera Raspberry PI.

Schemat ideowy płytki rozszerzającej pokazano na rysunku 1. Moduł GSM (oznaczony na schemacie U1) pracuje w typowej konfiguracji zalecanej przez producenta.

Ze względu na znikomą użyteczność zrezygnowałem z elementów odpowiedzialnych za transmisję głosową, tj. interfejsu mikrofonu i głośnika, gdyż z założenia moduł będzie transmitował dane przez sieć GSM.

Zasilenie modemu U1 jest uzyskiwane za pomocą układu stabilizatora LDO (U3) typu MIC29302 odpowiedzialny za dostarczenie zasilania ok. 4 V przy szczytowej wydajności prądowej do 2 A.

Płytka GSM wymaga zewnętrznego źródła zasilania +5 V o wydajności minimum 2,5 A, gdyż z gniazda PWR jest zasilane także Raspberry PI, aby uniknąć konieczności stosowania dwóch zasilaczy.

Obecność zasilania sygnalizuje dioda świecąca LD1. Podane na schemacie wartości pojemności CE1 oraz CE2 są wartościami minimalnymi, zapewniającymi poprawną pracę modułu U1 i stabilizatora U3. Można je zwiększyć, ale wymagane są kondensatory o niskim ESR.

Rysunek 2. Rozmieszczenie elementów modułu GSM

Ze względu na konieczność dopasowania poziomów napięciowych, pomiędzy UART Raspberry PI a modem GSM jest włączony konwerter poziomów U2. Aplikację modemu uzupełniają dwie diody LED wraz z buforami Q1 i Q2 sygnalizujące stan pracy modemu.

Sygnał antenowy jest doprowadzony do złącza SMA, a stąd do typowej, zewnętrznej anteny GSM. Moduł współpracuje z kartą SIM pełnego wymiaru, umieszczaną w gnieździe SIM_Card. Układ uzupełnia opcjonalny kondensator C2 "SuperCap" o pojemności 0,22 F służący do podtrzymania zegara RTC.

Płytkę wyposażono również w dwa przyciski umożliwiające zerowanie (RES) i sterowanie zasilaniem modemu (PWK). Ich funkcje mogą być sterowane opcjonalnymi kluczami tranzystorowymi Q3 i Q4 poprzez GPIO Raspberry.

Układ zmontowano na niewielkiej, dwustronnej płytce drukowanej. Rozmieszczenie elementów przedstawia rysunek 2. Montaż nie wymaga opisu, należy tylko zwrócić uwagę na prawidłowe przylutowanie dość drogiego modemu.

Tabela 1. Przyporządkowanie sygnałów GPIO1 - P1 (żółtym tłem zaznaczono wyprowadzenia używane przez moduł RaspbPI_GSM)

Stabilność mocowania płytki zapewnia kołek M3×8 pomiędzy płytkami Raspberry, a GSM. Aby w praktyce najszybciej sprawdzić działanie modułu konieczne są drobne zmiany konfiguracji PI. W pierwszej kolejności musimy uzyskać dostęp do portu szeregowego, który jest domyślnie zablokowany przez terminal SSH. W tym celu należy poddać edycji plik cmdline.txt:
$sudo nano /boot/cmdline.txt
i usunąć wpisy dotyczące konsoli
console=ttyAMA0,115200
kgdboc=ttyAMA0,115200
Następnie trzeba zmienić zawartość pliku initab.txt:
$ sudo nano /etc/initab
Umieszczając znak komentarza "#" w linii
T0:23respawn:/sbin/getty -L ttyAMA0 115200 vt100.
Po edycji powinna ona wyglądać następująco:
#T0:23respawn:/sbin/ getty -L ttyAMA0 115200 vt100.

Po wprowadzeniu zmian, należy zrestartować Raspberry.

Po tej operacji port szeregowy jest dostępny dla innych aplikacji. Aby użyć modemu GSM, konieczna jest jeszcze instalacja programu terminala, ponieważ najłatwiej sprawdzić jego działanie poprzez komendy AT. Najbardziej popularnym programem terminalowym jest minicom. Instalacja przebiega w sposób typowy. Do połączeniu się z Internetem należy wydać komendę:
$ sudo apt-get install minicom.

Minicom jest uruchamiany jest z linii poleceń, podobnie jak komendy służące do jego skonfigurowania. W celu poprawnej współpracy Raspberry PI z modemem należy wydać komendę:
$ sudo minicom -b 19200 -o -D /dev/ttyAMA0.

Po uruchomieniu możliwa jest też zmiana konfiguracji przy pomocy klawiszy CTRL+A oraz odpowiednich klawiszy funkcyjnych. Konfigurację używaną do sprawdzenia modemu przedstawia rysunek 4 i rysunek 5. Warto sprawdzić ustawienia oraz wyłączyć ECHO terminala. Aby sprawdzić funkcjonowanie modemu (nie należy zapominać o aktywnej karcie SIM, włożonej do gniazda SIM_Card, koniecznie przed włączeniem Raspberry PI!) należy załączyć zasilanie poprzez naciśnięcie na sekundę klawisza PWK. Po włączeniu zasilania i zalogowaniu się modemu do sieci, co jest sygnalizowanie krótkim zaświeceniem się diody NET - raz na 3 sekundy - modem jest gotowy do pracy.

Wykaz elementów

Rezystory: (SMD 0805)
R1...R3: 22 Ω
R4, R5, R12, R13: 4,7 kΩ
R6, R7, R10, R11: 47 kΩ
R8, R9: 1 k Ω
R14: 100 k Ω
R15: 43 k Ω
R16: 100 Ω

Kondensatory:
C1, C4...C8: 100 nF (SMD 0805)
C2: 0,22 F (kondensator elektrolit. super-cap)
C3: 22 pF (SMD 0805)
CE1: 100 µF (SMD "C")
CE2: 220 µF (SMD "C")

Półprzewodniki:
NET, STAT, VB: dioda LED SMD
Q1...Q4: BC847 (SOT-23)
U2: TXS0102DCUR (MSOP8)
U3: MIC29302WU (TO-263-5)

Inne:
U1: SIM900 (moduł GSM)
GPIO: złącze IDC26
PWK, RES: mikroprzełącznik SMD
PWR: złącze zasilania NZZ
SCKT: ATTEND 3345 (złącze karty SIM)
SMA: złącze SMA kątowe, do druku

Pierwszym poleceniem jest AT+GSV czyli odczyt wersji modemu SIM900. Następnie na numer karty należy wysłać SMSa testowego z innego telefonu. Warto przełączyć modem w tryb TEXT, w którym można kontrolować wysyłanie i odbieranie SMSów za pomocą czytelnych i łatwych do zrozumienia komend. Przełączenie modemu w tryb tekstowy następuje za pomocą komendy AT+CMGF=1.

W tym trybie SMSy są odczytywane poprzez komendę AT+CMGR=nr SMS w pamięci. Na przykład, odczyt z pamięci o adresie 2 jest wykonywany po odebraniu przez modem komendy AT+CMGR=2. Aby wysłać SMS, należy wykorzystać komendę AT+CMGS="+48 numer telefonu odbierającego".

Rysunek 3. Konfiguracja minicom - parametry transmisji

Rysunek 4. Konfiguracja minicom - wyłączenie ECHA

Rysunek 5. Test modemu

Po naciśnięciu ENTER jest wyświetlany znak zachęty ">", po którym należy wpisać do 160 znaków treści wiadomości (bez polskich liter, tylko znaki ASCII) i zakończyć kombinację CTRL+Z. Prawidłowo wydana komenda jest potwierdzona komunikatem OK. Po kilku sekundach SMS powinien zostać dostarczony na wpisany wcześniej numer. Na rysunku 5 pokazano przebieg testu modemu.

Jeżeli wszystko funkcjonuje poprawnie - modem może zostać użyty we własnej aplikacji, sterowanie w zależności od upodobań, może być wykonane w Pythonie lub C.

Adam Tatuś, EP

Artykuł ukazał się w
Elektronika Praktyczna
lipiec 2014
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe
Zobacz też
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik czerwiec 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio lipiec 2020

Świat Radio

Magazyn użytkowników eteru

APA - Automatyka Podzespoły Aplikacje czerwiec 2020

APA - Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna czerwiec 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich czerwiec 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów