Moduł LoRa dla Raspberry Pi Zero

Moduł LoRa dla Raspberry Pi Zero

Zaprezentowany moduł rozszerza funkcjonalność komputerka Raspberry Pi Zero (i nie tylko) o możliwość komunikacji w paśmie ISM 868 MHz przy użyciu modulacji LoRa. Tor radiowy został zrealizowany z zastosowaniem gotowego, wyspecjalizowanego modułu radiowego co umożliwia wprowadzenie własnych aplikacji do świata IoT w ciągu dosłownie kilku minut…

Podstawowe parametry:
  • realizuje transmisję szeregową UART w paśmie ISM 868 MHz z modulacją LoRa,
  • zawiera gotowy, wyspecjalizowany moduł radiowy,
  • płytka drukowana zgodna rozmiarami z Raspberry Pi Zero,
  • wyposażony jest w gniazdo antenowe do anteny o impedancji 50 Ω pracującej w paśmie 868 MHz, zakończonej wtykiem żeńskim uFL.

W urządzeniu zastosowano moduł radiowy E32-868T20S firmy Ebyte, który został pokazany na fotografii 1. Odpowiada on za realizację transmisji szeregowej UART w paśmie ISM 868 MHz z modulacją LoRa. Wybór modemu został podyktowany jego prostą aplikacją i konfiguracją.

Fotografia 1. Moduł E32-868T20S

Budowa i działanie

Schemat modułu rozszerzającego został pokazany na rysunku 1. Modem radiowy oznaczony jako RM jest zasilany napięciem 5 V ze złącza GPIO. Do konfiguracji i wymiany danych służy interfejs UART dostępny na wyprowadzeniach GPIO14 i 15 Raspberry Pi. Dioda AUX sterowana sygnałem AUX modemu wskazuje aktywną komunikację, sygnał AUX doprowadzony jest także do GPIO16, gdzie może być użyty do kontroli stanu modemu.

Rysunek 1. Schemat modułu LoRa dla Raspberry Pi Zero

Modem wyposażony jest w gniazdo antenowe do bezpośredniego podłączenia anteny o impedancji 50 Ω pracującej w paśmie 868 MHz, zakończonej wtykiem żeńskim uFL. Do sterowania trybem pracy modemu wymagane są dwa sygnały: M0 i M1, których znaczenie opisano w tabeli 1. Do zmiany stanów sygnałów M0 i M1 służą wyprowadzenia GPIO5 i 6, które zawierają separację w postaci buforów U1 i U2. Dodatkowo do złącza I2C doprowadzono magistralę I2C przydatną do podłączenia zewnętrznych czujników.

Montaż i uruchomienie

Układ jest zmontowany na dwustronnej płytce drukowanej zgodnej rozmiarami z Raspberry Pi Zero, której schemat został pokazany na rysunku 2. Dla sprawdzenia modułu konieczne jest przygotowanie dwóch komputerków Raspberry Pi z aktywowanym portem szeregowym, czy to poprzez konfigurator raspi-config, czy bezpośrednio w pliku config.txt, poprzez dodanie linii enable_uart=1. Należy pamiętać o wyłączeniu w pliku cmdline.sys funkcji SSH, jeżeli korzysta z portu szeregowego.

Rysunek 2. Schemat płytki PCB

Po restarcie systemu instalujemy, w zależności od preferencji, terminal portu szeregowego minicom lub picocom. Konfigurujemy piny GPIO5 i 6 sterujące sygnałami M0, M1 oraz ustawiamy je w domyślny stan 1 (listing 1), co zapewnia pracę modemów w konfiguracji fabrycznej.

Listing 1. Ustawienie wejść konfigurujących GPIO5 i 6 w stan wysoki

echo 5 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio5/direction
cd /sys/class/gpio/gpio5
echo 1 > value

echo 6 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio6/direction
cd /sys/class/gpio/gpio6
echo 1 > value

Fabrycznie port szeregowy modemu jest skonfigurowany do transmisji z ustawieniami 9600, 8N1 i taką konfigurację należy ustawić w uruchamianych terminalach. Wybieramy port odpowiadający sprzętowemu UART na wyprowadzeniach GPIO14 i 15, czyli ttyAMA0 dla Pi4 lub ttyS0 dla Pi3 oraz brak emulacji terminala, czyli transmisję znakową ANSI. Fabryczna konfiguracja przewiduje pracę modemów jako jednokanałowy link radiowy dla portu szeregowego. Uruchamiamy dwa terminale szeregowe, z opisanymi ustawieniami. Znaki wpisywane w jednym z terminali powinny pojawiać się w drugim i odwrotnie, transmisja powinna być sygnalizowana mignięciem diody AUX.

Jeżeli modemy działają prawidłowo w konfiguracji fabrycznej, można przejść do opracowania własnej aplikacji. W pierwszej kolejności należy pamiętać o wprowadzeniu modemów w tryb konfiguracji ustawiając stany M0 = 1, M1 = 1 (GPIO5 i 6 = 0) i parametry portu szeregowego 9600, 8, N, 1. Obsługiwane są instrukcje konfiguracyjne, zestawione w tabeli 2.

Znaczenie poszczególnych parametrów konfiguracyjnych opisano w tabeli 3. Jeżeli modemy ustawione zostaną w tryb adresacji, tylko modem ze zgodnym kanałem i adresacją będzie odbierał transmitowane dane. Jeżeli adres zostanie ustawiony na 65535, modem będzie pracował w trybie rozgłoszeniowym Broadcast i wszystkie moduły ze zgodnym kanałem będą odbierać dane.

W przypadku użycia modemu E32 należy pamiętać, że oprócz sprawdzania FEC, nie jest zapewniona żadna inna metoda zabezpieczania transmisji. Transmisja jest „otwarta” i możliwa do podsłuchania dowolnym innym modemem E32 pracującym z taką samą konfiguracją. Autoryzacja urządzeń i szyfrowanie przesyłanych danych, musi być wykonane w aplikacji sterującej.

Adam Tatuś, EP

Wykaz elementów:
Rezystory: (SMD0603, 5%)
  • R1: 47 kΩ
  • R2, R3: 330 Ω
  • R4, R5: 4,7 kΩ
Kondensatory:
  • C1: 10 μF (SMD0603)
  • CE1: 47 μF/10 V (SMD3528) tantalowy
  • C2, C3, C4, C5: 0,1 μF (SMD0603)
Półprzewodniki:
  • LD: LED czerwona (SMD0603)
  • U1, U2, U3: 74LVC04DCK (SC70-5)
  • RM: radiomodem Ebyte E32-868T20S
Pozostałe:
  • GPIO: złącze IDC żeńskie 2×20
Artykuł ukazał się w
Elektronika Praktyczna
czerwiec 2022
DO POBRANIA
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 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 kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich kwiecień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów