W poniższym artykule opowiemy, jak można wykorzystać komputer jednopłytkowy z serii Raspberry Pi z dołączonym modemem GSM do wysyłania krótkich wiadomości tekstowych – popularnych SMS-ów. Do tego popularnego minikomputera można dołączyć, na wiele sposobów, modem GSM, pozwalający na komunikowanie się z siecią telefonii komórkowej. W artykule opisany jest sposób podłączania popularnych modemów na USB do minikomputera Raspberry Pi oraz przedstawiona jest biblioteka, dedykowana do wysyłania i odbierania SMS-ów za pomocą tego minikomputera z modemem GSM.
Tego rodzaju system może mieć wiele zastosowań – samodzielnie, bądź w połączeniu z innymi urządzeniami, czy systemami, takimi jak na przykład centralka alarmowa czy system automatyki domowej. W podsumowaniu artykułu przedstawimy kilka potencjalnych zastosowań takiego systemu.
Modemy GSM
Aby dodać funkcjonalność GSM do komputera jednopłytkowego, takiego jak Raspberry Pi, musimy go wyposażyć w modem GSM. Na rynku dostępnych jest wiele urządzeń tego rodzaju – przyjrzyjmy się im, aby wiedzieć jaki mamy wybór, projektując naszą bramkę SMS. Modemy GSM podłączane są do minikomputerów na kilka sposobów. Typowo, poprzez interfejs szeregowy (UART), który jest wyprowadzony na 40 pinowym złączu GPIO, ale także modem może być podłączony poprzez mostek UART-USB lub jako ‘dongle’ – zintegrowany modem w postaci urządzenia podpinanego bezpośrednio do portu USB komputera.
Jeśli chodzi o modemy GSM podłączane do sprzętowego interfejsu UART na rynku dostępnych jest wiele zintegrowanych modułów – w postaci modułów HAT oraz samodzielnych elementów, do zabudowania w swoich projektach. Moduły typu HAT, czyli dołączane do złącza GPIO minikomputera Raspberry Pi, są najprostsze do użycia w projektach hobbystycznych – wystarczy zamontować moduł na płytkę komputera. Przykład takiego rozwiązania pokazano na fotografii 1. Wszystkie elementy niezbędne dla działania modemu GSM znajdują się w takim module. Także antena lub gniazdo do podłączenia zewnętrznej anteny. Jeśli nie chcemy korzystać z modułu tego rodzaju, możemy zbudować własny w oparciu o zintegrowany modem GSM o odpowiadających nam parametrach (2G, 3G, 4G) i z potrzebnymi nam dodatkowymi funkcjami. Modem wymaga zainstalowania karty SIM lub tzw. embedded SIM (eSIM), czyli karty w postaci układu scalonego, lutowanego na płytce.
Osobną klasę sprzętów stanowią popularne modemy GSM na USB. Ich podłączanie do komputera z systemem operacyjnym Windows jest bardzo proste, niestety w przypadku Linuksa, który standardowo instalowany jest na komputerach jednopłytkowych, nie jest to już takie trywialne. Istnieje wiele przewodników dostępnych w sieci, wykorzystujących np. skrypt sakis3g, ale uruchomienie niektórych modemów wymaga większego nakładu pracy. Poniżej przedstawimy uniwersalny sposób na podłączenie tego rodzaju modemu do Raspberry Pi pracującego z systemem operacyjnym Raspbian.
Główny problem z podłączaniem tego rodzaju dongla do Raspberry Pi polega na tym, że większość modemów USB zgłasza się jako dwa urządzenia – urządzenie pamięci masowej USB oraz modem USB. Po podłączeniu do Raspberry PI urządzenie zwykle znajduje się w trybie pamięci USB. Istnieje specjalny program o nazwie usb_modeswitch, który może zostać wykorzystany do przełączania trybów zgłaszania się dongla USB. Druga brakująca część to sposób na połączenie się z siecią komórkową za pomocą modemu USB z poziomu minikomputera Raspberry Pi. W tym celu wykorzystane zostanie klasyczne oprogramowanie ppp i wvdial.