Raspberry Pi i moduł Waveshare 13460. GSM i GPS w służbie jej królewskiej mości

Czas czytania: 10 min.

Pomysł na artykuł z wykorzystaniem jednego z naszych flagowych produktów, czyli Raspberry Pi, ale w parze z technologią GSM, spędzał nam sen z powiek. Na samym początku chcieliśmy nauczyć Was, jak przy pomocy maliny obsługiwać API służące do wysyłania wiadomości tekstowych. Problem jednak tkwił w ustawie RODO, która wymaga posiadania zarejestrowanej działalności gospodarczej oraz rejestracji zbioru RODO do korzystania z takich usług. 

Aby przedstawić ten niezwykle ciekawy i rozwojowy pomysł zdecydowaliśmy się na wykorzystanie jednego z dostępnych w naszym sklepie modułów obsługujących transmisję GSM – Waveshare 13460Sam shield jest o tyle ciekawy, że oprócz możliwości przesyłania i odbierania wiadomości tekstowych daje nam praktycznie pełną dowolność korzystania z możliwości standardów GSM, GPS oraz Bluetooth. Sprawdźmy zatem, co potrafi ta nakładka w połączeniu z Raspberry Pi Zero WH!

Możliwości modułu i podstawy wiedzy o danych telefonicznych i lokalizacyjnych

W poprzednim akapicie dowiedzieliśmy się, że Waveshare 13460 potrafi operować w standardach GPS, GSM oraz Bluetooth – ale co to tak naprawdę oznacza? Ilość funkcji jest spora, ale wymieńmy te najważniejsze:

  • wysyłanie i odbieranie wiadomości tekstowych,
  • nawiązywanie i odbieranie połączeń głosowych,
  • sprawdzanie lokalizacji za pomocą transmisji GPS, GLONASS i LBS,
  • łączenie się z urządzeniami i wymiana danych poprzez transmisję Bluetooth,
  • łączenie się ze stronami WWW oraz dyskami sieciowymi,
  • wysyłanie i odbieranie wiadomości mailowych.

Lista prezentuje się ciekawie, prawda? Gdy patrzę na ten zbiór zastosowań, to z miejsca mam kilka pomysłów. 

Fani agenta 007 z pewnością pamiętają moment w filmie Skyfall, gdzie Bond płynąc na wyspę opanowaną przez Silvę aktywuje urządzenie, które otrzymał od swojego kwatermistrza. Urządzenie żartobliwie nazywane przez agenta radiem przesłało informacje dotyczące położenia i umożliwiło schwytanie terrorysty. Co powiecie na zbudowanie podobnej konstrukcji? Co prawda nie będzie mieściła się ona w pudełku od zapałek, ale zachowa pełną funkcjonalność, a minimalizacja to już ostatni krok!

Zanim przystąpimy do budowy prototypu i zaprogramowania go, zapoznajmy się z działaniem standardów łączności lokalizacyjnych i transmisji danych komórkowych.

Standard GSM

 

GSM to obecnie najpopularniejszy standard telefonii komórkowej. Pozwala na korzystanie z czterech głównych usług: są to połączenia głosowe, transmisja danych, wiadomości tekstowe i multimedialne oraz usługi kryptoanalityczne – formy zabezpieczenia transmisji. Zasięg pojedynczej komórki łączącej się z stacją bazową określony jest w specyfikacji jako 35 km w terenie bez przeszkód, jednak zasięg ten odnosi się do zapomnianej już transmisji w standardzie GSM 400 (pracującej na częstotliwościach od 450,4 do 467,6 MHz). Przy pracy na najpopularniejszej obecnie częstotliwości standardu – GSM 1900 (pracującej na częstotliwościach od 1850 do 1990 MHz) zasięg pojedynczej komórki wynosi około 8 km. Ograniczenia te wynikają z tego, ile energii potrzeba do połączenia się komórki z punktem bazowym. Nasz moduł potrafi pracować w standardzie GSM 850 (tutaj częstotliwości od 824 do 849 MHz) oraz we wspomnianym wcześniej standardzie GSM 1900. Uzyskujemy dzięki temu możliwość pracy w sytuacji, gdy zasięg do stacji bazowej może być większy niż 8 km. Połączenie jest realizowane w sposób stosunkowo prosty, a co za tym idzie – bardziej niezawodny. Połączenie głosowe w przypadku, gdy komórka żądająca połączenia ma wykupiony abonament, przebiega w następujący sposób:

  1. Komórka GSM (na przykład telefon) łączy się ze stacją bazową (BTS) o najsilniejszym sygnale i przesyła żądanie połączenia z drugą komórką GSM.
  2. Żądanie przekazywane jest do kontrolera stacji bazowych, a kontroler ten przekazuje żądanie do cyfrowej centrali telefonicznej.
  3. Centrala poprzez połączenie się z bramką odpowiedzialną za przekazywanie żądania do centrali odbiorcy przesyła informacje o połączeniu.
  4. Centrala odbiorcy sprawdza, w jakim obszarze znajduje się odbiorca połączenia, i przesyła informacje o połączeniu do jego stacji bazowej.
  5. Stacja bazowa odbiorcy przekazuje mu informacje o połączeniu. Jeśli odbiorca odpowie na żądanie połączenia, rozpoczyna się przesyłanie sygnału i obie komórki mogą przesyłać między sobą informacje.
  6. Po zakończeniu połączenia wygenerowany zostanie plik nazywany Call Data Record. Zawiera on informacje o połączeniu, które zostało wykonane. W pliku zawarte są informacje takie jak dane obu komórek, czas połączenia, wybrane stacje bazowe oraz centrale i taryfa połączenia. Pliki te umożliwiają rozliczenia użytkownika na koniec miesiąca.

W przypadku, gdy dzwoniąca komórka korzysta z oferty prepaid (nazywanej także ofertą na kartę), podczas wykonywania połączenia przesyła informacje na temat możliwego czasu rozmowy dla różnych taryf, a jeśli dozwolony czas zostanie przekroczony, to połączenie jest zrywane.

Po omówieniu podstaw działania sieci komórkowych warto przejść do działania standardów łączności lokalizacyjnych. Tak jak wspomnieliśmy wcześniej, nasz moduł może pracować z wykorzystaniem standardów GPS, GLONASS i LBS. Ze względu na to, że mówiliśmy przed chwilą o standardach połączeń telefonicznych, zaczniemy od standardu LBS. Co ma wspólnego z telefonią komórkową…?

Cóż, praktycznie wszystko. Łączność LBS to określenie lokalizacji na podstawie sygnału GSM – tak w dużym skrócie. LBS wykorzystuje obecność i popularność stacji bazowych dla sieci komórkowej. Na podstawie wymiany danych na temat lokalizacji stacji bazowych i poziomu zasięgu do poszczególnych jednostek sieci możemy uzyskać informacje o położeniu komórki. Jak to jest możliwe? Wyobraźmy sobie, że rysujemy na mapie choćby trzy punkty, później rysujemy trzy okręgi i w centrum każdego z okręgów umieszczamy stację bazową.

 Promień wyznaczonego obszaru to zasięg nadajnika do komórki. Na tej podstawie możemy zobaczyć, gdzie przecinają lub stykają się wszystkie trzy okręgi – w tym miejscu będzie nasza komórka.

Obecnie na terenach miejskich rozmieszczonych jest tak dużo stacji bazowych, że dane lokalizacyjne są pobierane nie z trzech, a nawet z kilkudziesięciu BTS-ów. Dokładność tego standardu jest poprawna, ale jak na obecne możliwości już nieco archaiczna. W terenach miejskich wynosi ona około 20 metrów, na obszarach poza miastem może wynosić nawet 200 metrów. Z tego powodu LBS stanowi jedynie wsparcie dla pozostałych systemów lokalizacyjnych.

Po omówieniu standaryzacji LBS przejdziemy do GPS – jest to obecnie najpopularniejszy standard lokalizacyjny. GPS działa na zasadzie łączności z satelitami krążącymi na orbicie naszej planety. Został stworzony przez Departament Obrony USA i jest już z założenia darmowy, dzięki czemu zyskał tak dużą popularność. Obecnie łączność GPS opiera się na zasadzie połączenia z satelitami. Dzięki umieszczonym w nich zegarach kwantowych możemy z niezwykłą dokładnością pobierać informacje o czasie odpowiedzi na wysłane zapytanie. W łączności z satelitami wyróżniamy dwa główne typy połączenia, jest to zimny i ciepły start. Czym tak naprawdę one są?

Zimna wojna, zimny start

Zimny start to określenie początkowego nawiązania połączenia z satelitami. Wymaga ono wysłania zapytania do zestawu satelit, by po zatwierdzeniu połączenia przejść do trybu ciepłego startu. Tryb ciepłego startu utrzymywany jest tak długo, jak zasilanie dla modułu GPS w odbiorniku końcowym. Dla naszego urządzenia czas zimnego startu wynosi 28 sekund, za to czas dla każdego zapytania po nawiązaniu połączenia mieści się już w jednej sekundzie. Obecnie dokładność systemu GPS wynosi od 1 do 3 metrów, jednak pamiętajmy, że ze względu na obecne zakłócenia (zachmurzenie nieba, infrastruktura itd.) dokładność może słabnąć. Jednak w porównaniu do systemów LBS i dostępności sygnału nawet w miejscach pozbawionych sygnału telefonii komórkowej różnica jest ogromna.

Możemy teraz przejść do systemów GLONASS. To rosyjski system lokalizacyjny, który działa podobnie do GPS. Jego zaletą jest możliwość dokładniejszego określenia pozycji w wyższych szerokościach geograficznych. Sam standard przewiduje dokładność na poziomie 4 do 7 metrów. System GLONASS został oddany do użytku publicznego w 2011 roku, a wcześniej funkcjonował jako system przeznaczony tylko dla wojska. A dlaczego omawiamy aż trzy systemy lokalizacyjne, a nie skupiamy się tylko na jednym? 

Z jednego bardzo prostego powodu – korzystanie z jednego z nich nie daje nam tak dużych możliwości i dokładności pomiarowej jak korzystanie ze wszystkich standardów. Gdy wiemy już, jakie możliwości ma moduł i jakie są zasady funkcjonowania poszczególnych sieci, to nareszcie możemy przejść do korzystania z modułu.

Korzystanie z modułu

Zanim podejmiemy stanowisko kwatermistrza w służbach brytyjskiego kontrwywiadu, warto zapoznać się z podstawowymi komendami dla naszego modułu. Pomoże nam to tworzyć końcowe urządzenie. Do rozpoczęcia pracy nad projektem niezbędne będą nam elementy takie jak:

Gdy mamy już wszystkie elementy, możemy włożyć do modułu kartę SIM. Warto wybrać operatora, który będzie miał najniższe stawki za wiadomości SMS i połączenia, a w razie potrzeby kartę można doładować. Pamiętajmy też, że karta musi zostać zarejestrowana, i o ile nie będzie to karta przypisana do abonamentu, to warto zarejestrować ją po zakupie. Po włożeniu karty SIM do slotu w module musimy podłączyć antenę dla GPS. Jest ona dołączona do zestawu – wystarczy połączyć antenę z adapterem, a całość podłączyć do złącza anteny GPS w module. Jest on oznaczony, więc trudno tutaj o pomyłkę. Gdy podłączymy antenę GPS, możemy umieścić moduł na minikomputerze. Tutaj również trudno się pomylić – w przypadku Raspberry Pi Zero płytki muszą się pokrywać, są identycznych rozmiarów, a w przypadku połączenia z większą maliną musimy połączyć moduły tak, aby bok po stronie goldpinów pokrywał się w obu płytkach.

Połączenie modułu z Raspberry Pi Zero (po lewej stronie) i połączenie modułu z Raspberry Pi 3+ wraz z anteną GPS i anteną Bluetooth (po prawej stronie)

Po podłączeniu modułu z minikomputerem możemy przejść do wgrania systemu operacyjnego. Aby uniknąć instrukcji dla wgrywania go na kartę SD, odwołam się do poradnika dotyczącego tworzenia systemu dla inteligentnego domu – zostało tam bardzo dokładnie przedstawione jak wgrać system dla Raspberry Pi na kartę pamięci. Gdy system został wgrany, a karta umieszczona jest już w malinie, to możemy podłączyć ją do zasilania i połączyć się z naszym minikomputerem za pomocą programu Putty (metoda również została opisana w wymienionym wyżej poradniku). Gdy znajdziemy się przy tym kroku, to możemy przejść dalej.

Ekran terminala widoczny po zalogowaniu.

Pierwszą czynnością, jaką musimy wykonać, jest otworzenie portu szeregowego. Aby to zrobić, w konsoli wpisujemy:
sudo raspi-config

Widok po wejściu do panelu konfiguracyjnego.

Gdy znajdujemy się już w panelu konfiguracyjnym, przechodzimy kolejno do Interfacing Options, a następnie wybieramy Serial. Gdy zatwierdzimy całość przyciskiem Enter, to system zapyta nas, czy chcemy się zalogować do powłoki systemu korzystając z portu szeregowego. Nie chcemy, więc wybieramy odpowiedź “No”.

Po tym komunikacie wybieramy podświetlony wariant i zatwierdzamy Enterem.

Teraz system zapyta, czy chcemy, aby sprzętowy port szeregowy został włączony. Tutaj wybieramy “Yes”.

Również po tym komunikacie wybieramy podświetlony wariant i zatwierdzamy enterem.

Gdy włączymy sprzętowy port szeregowy, to możemy opuścić panel konfiguracyjny. Na samym końcu zostaniemy zapytani o to, czy chcemy zrestartować malinę. Tutaj również się zgadzamy.

Aby ustawienia zostały wdrożone musimy zrestartować minikomputer.

Po zrestartowaniu Raspberry Pi ponownie łączymy się z nim i logujemy przez Putty. Moduł komunikuje się z użytkownikiem przy pomocy komend AT. Jest to standard komunikacyjny, który pozwala na wygodne porozumiewanie się z różnymi układami. Znamy go chociażby z pracy z modułem ESP8266. Aby wygodnie porozumiewać się z układami przy pomocy komend AT, musimy zainstalować program, który będzie “mostem” pomiędzy naszym terminalem a informacjami przekazywanymi do układu. Program ten nazywa się minicom, i aby go zainstalować i przypisać do niego port szeregowy, musimy wprowadzić do terminala poniższe polecenia:

sudo apt-get install minicom
minicom -D /dev/ttyS0

Po wprowadzeniu powyższych poleceń ukaże się strona powitalna programu.

Ekran powitalny programu minicom.

Teraz, aby sprawdzić, czy połączenie z modułem funkcjonuje prawidłowo, musimy wpisać pierwszą komendę. Polecenie służące do testowania sprawności komunikacji przy pomocy poleceń AT to po prostu:
AT

Jeśli po wpisaniu polecenia ujrzymy napis “OK”, znaczy to, że komunikacja została nawiązana prawidłowo i że możemy przejść dalej.

Komunikat po prawidłowym nawiązaniu połączenia.

Gdy mamy pewność, że komunikacja funkcjonuje prawidłowo, spróbujmy wysłać przy pomocy modułu wiadomość SMS. Aby to zrobić, musimy wykonać kilka czynności. Pierwszą jest sprawdzenie, czy moduł może pracować w trybie wysyłania wiadomości tekstowych. Aby to sprawdzić wpisujemy w terminal:
AT+CMGS=?

Jeśli otrzymamy odpowiedź “OK”, to znaczy to, że możemy przejść dalej. Teraz musimy ustawić moduł w trybie wysyłania wiadomości. Wpisujemy polecenie:
AT+CMGF=1

Tradycyjnie pojawienie się w terminalu “OK” sygnalizuje sukces. W tym momencie należy przypisać numer telefonu, na który wysyłamy wiadomość. Należy też pamiętać aby numer posiadał przedrostek, który określa kraj w którym zarejestrowany jest numer. Dla Polski jest to +48. Komenda, którą wpisujemy, to:
AT+CMGS=”+48*********”

Oczywiście w miejscu gwiazdek wpisujemy numer telefonu, na który chcemy wysłać wiadomość – nie usuwając cudzysłowów! Po zatwierdzeniu komendy Enterem zobaczymy miejsce na wpisanie naszej wiadomości. W ramach testu wpiszemy “Test modulu Waveshare”. Tutaj wpisujemy już treść bez cudzysłowów. Po wpisaniu zawartości zatwierdzamy Enterem. Po zatwierdzeniu tekstu pokaże się nam kolejne pole. Jeśli nie chcemy wysyłać wiadomości w kolejnej linii, to kończymy wysyłanie skrótem klawiszowym Ctrl + Z. Po zakończeniu wysyłania powinniśmy zobaczyć potwierdzenie wysłania w formie dwóch wiadomości zwrotnych, tak jak na grafice poniżej.

Prawidłowo wysłana wiadomość tekstowa.

Na ekranie telefonu, na który wysłaliśmy SMS, powinna pojawić się wiadomość o wpisanej przez nas treści.

Wiadomość wysłana z modułu.

Jeśli potrafimy już wysłać wiadomość tekstową, to warto sprawdzić, jak określić nasze współrzędne. Aby to zrobić, nauczymy się, jak łączyć się z satelitami GPS i GLONASS. Możemy się teraz zastanowić, jak możliwe jest korzystanie z obu technologii w jednym momencie. System GNSS, z którego korzystamy, to sprawne połączenie technologii GPS i GLONASS, dzięki czemu możemy pobierać i uśredniać wyniki pomiarów lokalizacji bez dodatkowych obliczeń i linijek kodu. Wygodne, prawda? Na samym początku musimy włączyć moduł GNSS. Do tej czynności wykorzystamy komendę:
AT+CGNSPWR=1

Tradycyjnie po udanym połączeniu powinniśmy ujrzeć “OK”. Po aktywowaniu modułu GNSS możemy aktywować jeden z jego trybów, a posiada ich aż cztery:

  • GGA – czas, pozycja i dane do poprawki lokalizacyjnej,
  • RMC – czas, data, pozycja, kierunek oraz prędkość,
  • GSA – tryb pracy odbiornika GNSS, używane aktualnie satelity i wartości DOP (czyli wartości, które należy brać jako czynnik błędu przy obliczeniach),
  • GSV – liczba widocznych satelitów GNSS, ID widocznych satelitów, wysokość, azymut i wartości SNR (są to wartości zakłóceń, które również należy brać jako czynnik błędu przy obliczeniach).

Gdy wiemy, jakie tryby oferuje nam moduł, możemy wybrać jeden z nich. My skorzystamy z trybu GGA. Dane pozycyjne będą dla nas wystarczające. Aby skorzystać z tego trybu, wpisujemy poniższe polecenie. Oczywiście gdy będziemy chcieli zmienić tryb odbioru informacji, to wystarczy, że zmienimy GGA na oznaczenie innego trybu. Pamiętajmy tylko o zachowaniu cudzysłowów:
AT+CGNSSEQ=”GGA”

Po wybraniu prawidłowego trybu możemy spytać nasz moduł o lokalizację. Wpisujemy:
AT+CGNSINF

Po wpisaniu polecenia powinna ukazać się nasza lokalizacja wraz z innymi wyszczególnionymi w opisie trybu informacjami. Pierwsza liczba oznacza status układu w naszym module. Jeśli wynosi 1, to znaczy, że moduł działa prawidłowo, natomiast jeśli wyświetla się 0, to znaczy, że trzeba go włączyć jeszcze raz. Druga liczba oznacza określenie pozycji, jeśli wyświetla się 1 to znaczy, że określenie pozycji przebiegło prawidłowo, a jeśli wyświetla się 0, to znaczy, że musimy poczekać na dokładne określenie pozycji. Poniżej możemy zobaczyć, jak wygląda prawidłowo nawiązana komunikacja (część współrzędnych została zakryta).

Prawidłowo nawiązana komunikacja z satelitami i pobranie informacji.


Jeśli marzyliście kiedyś o połączeniu się z rosyjskim lub amerykańskim satelitą, to możecie uznać to marzenie za spełnione! Na samym początku określiliśmy, że chcemy zbudować urządzenie, które po wciśnięciu przycisku prześle na wybrany numer telefonu naszą lokalizację. Co powiecie na usprawnienie tego projektu i zmodyfikowanie go tak, aby lokalizacja przesyłała się po przesłaniu wiadomości tekstowej o określonej treści? Do dzieła!

Budowa prototypu "Radia"

Do stworzenia opisywanego przez nas projektu musimy nauczyć się jeszcze korzystania z funkcji odbierania wiadomości tekstowych. Procedura nie jest trudna, jednak pamiętajmy, że moduł domyślnie zapisuje wiadomości tekstowe w pamięci karty SIM, tak więc przed wysłaniem wiadomości najlepiej będzie usunąć wszystkie, które już istnieją. Do usunięcia wszystkich wiadomości służy polecenie pisane razem z cudzysłowami:
AT+CMGDA=”DEL ALL”

Po usunięciu wszystkich wiadomości powinniśmy ujrzeć potwierdzenie wykonania zadania, czyli “OK”. Aby mieć możliwość odczytania przychodzących wiadomości, wprowadzamy komendę która ustala tryb odczytu jako tekstowy:
AT+CMGF=1

Teraz na numer, od którego dostaliśmy wcześniej wiadomość o treści “Test modulu Waveshare”, wyślijmy SMS o treści “Test odbierania wiadomosci” i uważnie obserwujmy, co dzieje się w terminalu. Otrzymaliśmy powiadomienie, które zawiera ważną dla nas informację – jest to index naszej wiadomości, dzięki któremu łatwo odnajdziemy wiadomość w pamięci. Ze względu na to, że przed chwilą usunęliśmy wszystkie wiadomości, ta uzyskała numer 1.

Teraz, aby odczytać wiadomość, musimy wywołać polecenie:
AT+CMGR=1,1

Odczytanie treści wiadomości.

Wiemy już jak odczytać wiadomość przy pomocy modułu Waveshare 13460 i Raspberry Pi. Przechodzimy dalej. Na malinie musimy wprowadzić komendę, która utworzy nam plik pythona. Wpisujemy:
cd /home/pi
sudo nano radio.py

Gdy otworzy się edytor, wklejamy poniższy kod:

import serial
import os, time, sys
modul = "/dev/ttyS0"
serial1 = serial.Serial(modul, baudrate = 9600, timeout = 1)
#Sprawdzenie pracy modulu
tresc1=('AT' + '\r\n')
serial1.write(tresc1.encode())
tresc2=('\x0D\x0A')
serial1.write(tresc2.encode())
odczyt = serial1.read(10)
print(odczyt)
time.sleep(3)
#Ustawienie formatu wiadomosci jako tekst
tresc4=('AT+CMGF=1' + '\r\n')
serial1.write(tresc4.encode())
odczyt = serial1.read(10)
print(odczyt)
time.sleep(3)
#Wlaczenie modulu GNSS
tresc5=('AT+CGNSPWR=1' + '\r\n')
serial1.write(tresc5.encode())
odczyt = serial1.read(10)
print(odczyt)
time.sleep(10)
#Ustawienie trybu przekazywania informacji
tresc6=('AT+CGNSSEQ="GGA"' + '\r\n')
serial1.write(tresc6.encode())
odczyt = serial1.read(10)
print(odczyt)
time.sleep(3)
#Usuniecie wszystkich wiadomosci
tresc7=('AT+CMGDA="DEL ALL"'+'\r\n')
serial1.write(tresc7.encode())
time.sleep(3)
wiadomosc = serial1.read(serial1.inWaiting())
print ("Oczekiwanie na wiadomosc...")
#Oczekiwanie na wiadomosc
while True:
	wiadomosc = serial1.read(serial1.inWaiting())
	if wiadomosc != "":
		tresc8=('AT+CMGR=1' + '\r\n')
		serial1.write(tresc8.encode())
		time.sleep(3)
		wiadomosc = str(serial1.read(serial1.inWaiting()))
		#Odczytanie wiadomosci
		print ("Wiadomosc odebrana: ")
		print (wiadomosc)
		tresc=("Podaj lokalizacje")
		#Sprawdzenie tresci wiadomosci
		if tresc in wiadomosc:
			#Pobranie lokalizacji
			tresc9=('AT+CGNSINF' + '\r\n')
			serial1.write(tresc9.encode())
			time.sleep(3)
			pozycja = serial1.read(serial1.inWaiting())
			print(pozycja)
			#Formatowanie tekstu
			wspolrzedne = pozycja[46:65]
			print(wspolrzedne)
			#Rozpoczęcie procedury wysylanie wiadomosci
			tresc10=('AT+CMGS="+48XXXXXXXXX"'+'\r\n')
			serial1.write(tresc10.encode())
			time.sleep(3)
			#Wyslanie wiadomosci
			print("Wysylanie lokalizacji")
			serial1.write(wspolrzedne)
			tresc12=('\r\n')
			serial1.write(tresc12.encode())
			tresc13=('\x1A')
			serial1.write(tresc13.encode())
		#Wyczyszczenie zmiennej	
		wiadomosc = ''
		time.sleep(3)
		#Usuniecie wiadomosci
		tresc14=('AT+CMGDA="DEL ALL"' + '\r\n')
		serial1.write(tresc14.encode())
		time.sleep(3)
		serial1.read(serial1.inWaiting())
	time.sleep(5)

Gdy wkleimy kod do edytora, to zatwierdzamy całość skrótem Ctrl + X, a później potwierdzamy zapis wpisując literę “y” i zatwierdzając Enterem. Program został zbudowany tak, że widzimy, co się w nim dzieje. Aby go uruchomić wpisujemy w terminal:
python3 radio.py

Po chwili możemy wysłać SMS o treści “Podaj lokalizacje” na numer przypisany do karty SIM umieszczonej w module.

Działający kod
Odpowiedź na naszą wiadomość.

W ten prosty sposób nauczyliśmy się co nieco o łącznościach bezprzewodowych i działaniu systemów lokalizacyjnych. Zbudowaliśmy także projekt lokalizatora. Jeśli poradnik Wam się podobał, macie uwagi lub pomysły na inne gadżety z filmów szpiegowskich, to koniecznie dajcie nam znać w komentarzu!

Jak oceniasz ten wpis blogowy?

Kliknij gwiazdkę, aby go ocenić!

Średnia ocena: 5 / 5. Liczba głosów: 5

Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.

Podziel się:

Picture of Marcin Lesiński

Marcin Lesiński

Miłośnik elektroniki, druku 3D i nauk stosowanych, swoją wiedzę gromadzi od 14-tego roku życia. W Botlandzie tworzy projekty i poradniki dla klientów, a w wolnym czasie zajmuje się automatycznymi uprawami i prototypowaniem. Fan muzyki rockowej i brytyjskiego kina.

Zobacz więcej:

Jedna odpowiedź

  1. Wydłuż czas oczekiwania po kasowaniu sms-ów.
    W dokumentacji masz podane szacowane czasy operacji, zależne od ilości sms.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Ze względów bezpieczeństwa wymagane jest korzystanie z usługi Google reCAPTCHA, która podlega Polityce prywatności i Warunkom użytkowania.