Moduł LoRa dla RPi Pico

Moduł LoRa dla RPi Pico

Zaprezentowany moduł rozszerza funkcjonalność Raspberry Pi Pico o możliwość komunikacji w paśmie ISM 868 MHz przy zastosowaniu modulacji LoRA. Dzięki temu, że realizuje bezprzewodową transmisję szeregowego interfejsu UART, jego aplikacja i konfiguracja są bardzo proste. Umożliwia to wprowadzenie własnych rozwiązań do świata IoT w dosłownie kilka minut.

Podstawowe parametry:
  • komunikacja w paśmie ISM 868 MHz przy zastosowaniu modulacji LoRA,
  • wyposażony jest w gniazdo antenowe do bezpośredniego podłączenia anteny o impedancji 50 Ω z wtykiem żeńskim uFL,
  • realizuje bezprzewodową transmisję szeregowego interfejsu UART,
  • możliwa praca w trybie adresacji – tylko modem ze zgodnym kanałem i adresacją będzie odbierał transmitowane dane,
  • możliwa praca w trybie rozgłoszeniowym (broadcast) – wszystkie moduły ze zgodnym kanałem będą odbierały dane,
  • 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 muszą być wykonane w aplikacji sterującej.

W urządzeniu zastosowano moduł radiowy typu E32-868T20S firmy Ebyte, którego wygląd pokazano na fotografii 1. Odpowiada on za realizację transmisji szeregowej UART w paśmie ISM 866 MHz z modulacją LoRa. Wybór modemu został podyktowany prostotą aplikacji i konfiguracji.

Fotografia 1. Moduł radiowy E32-868T20S (za notą Ebyte)

Budowa i działanie

Schemat urządzenia został pokazany na rysunku 1. Moduł RM typu E32-868T20S zasilany jest napięciem systemowym Pico VSYS lub stabilizowanym 3,3 V z wewnętrznego stabilizatora Pico V33. Wybór napięcia zasilania modemu VRM umożliwia zwora VS. Do komunikacji z Pico używany jest interfejs UART dostępny na wyprowadzeniach GPIO0/1 (UART0) lub GPIO4/5 (UART1). Wyboru używanego UART dokonujemy przez zalutowanie odpowiednich pól zwór PCB RX/TX.

Rysunek 1. Schemat modułu dla RPi Pico

Dioda AUX sterowana sygnałem aktywności modemu AUX wskazuje aktywną komunikację. Układ U1 buforuje wyjście AUX modemu. 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 sterujące M0 i M1 podłączone do GPIO2, GPIO3. Znaczenie sygnałów M0, M1 opisano w tabeli 1. Dodatkowo do złącza I²C doprowadzono magistralę I²C0, która umożliwia podłączenie zewnętrznych czujników, gdy modem zajmuje UART0.

Montaż i uruchomienie

Układ zmontowany jest na dwustronnej płytce drukowanej zgodnej rozmiarami z Raspberry Pi Pico, której schemat został pokazany na rysunku 2. Montaż nie wymaga opisu, zmontowane urządzenie pokazuje fotografia tytułowa.

Rysunek 2. Schemat płytki PCB

Dla sprawdzenia modułu konieczne jest przygotowanie Raspberry Pi Pico oraz drugiego modemu E32, czy to w formie Xbee, czy nakładki na Raspberry Pi. Domyślnie port szeregowy modemu jest skonfigurowany do transmisji z parametrami 9600, 8N1 i taką należy ustawić podczas testów. W przypadku nakładki XbeeUSB (AVT5513) podłączonej do PC, wybieramy port, pod którym zgłosi się konwerter UART/USB. Fabryczna konfiguracja przewiduje pracę modemów jako jednokanałowy link radiowy dla portu szeregowego.

Listing 1. Skrypt serialTX.py

from machine import UART, Pin
import time

M0 = Pin(2, Pin.OUT)
M1 = Pin(3, Pin.OUT)
M0.value(0)
M1.value(0)

uart0 = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))

txData = b’Test E32Lora TX Hello IoTworld\n\r’
uart0.write(txData)
time.sleep(1)

Dla sprawdzenia działania nakładki uruchamiamy środowisko Thonny, dla którego przygotowałem dwa proste skrypty: serialTX.py (listing 1) nadający sekwencję testową i serialRX.py (listing 2) odbierający znaki z modemu. Uruchamiamy terminal szeregowy w PC oraz środowisko Thonny i uruchamiamy skrypt serialTX.py. Po uruchomieniu skryptu, w terminalu PC powinien pojawić się ciąg znaków testowych, a transmisja powinna być sygnalizowana diodą AUX. Dla sprawdzenia transmisji w odwrotnym kierunku uruchamiamy skrypt serialRX.py. W tym przypadku znaki wpisywane w terminalu PC powinny pojawiać się w konsoli Thonny, a transmisja powinna być sygnalizowana świeceniem LED AUX.

Listing 2. Skrypt serialRX.py

from machine import UART, Pin
import time
from time import sleep

M0 = Pin(2, Pin.OUT)
M1 = Pin(3, Pin.OUT)
M0.value(0)
M1.value(0)

uart0 = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))
b = None

while True:
sleep(1)
if uart0.any():
b = uart0.read()
print(b)

Jeżeli modemy działają prawidłowo w konfiguracji fabrycznej, można przejść do utworzenia 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 (GPIO2, GPIO3) i parametry portu szeregowego 9600, 8N1. Obsługiwane są instrukcje konfiguracyjne, zestawione w tabeli 2.

Znaczenie poszczególnych parametrów konfiguracyjnych przedstawiono 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ły 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 muszą być wykonane w aplikacji sterującej.

Adam Tatuś, EP

Wykaz elementów:
Rezystory: (SMD0603) 5%
  • R1: 47 kΩ
  • R2: 1 kΩ
Kondensatory:
  • C1: 10 μF 10 V (SMD0603)
  • CE1: 22 μF/10 V tantalowy (SMD3216)
  • C2, C3: 0,1 μF (SMD0603)
Półprzewodniki:
  • LD: LED czerwona (SMD0603)
  • U1: 74V1G04 (SC70-5)
Pozostałe:
  • I²C: złącze JST 1 mm
  • M1: złącza Pi Pico żeńskie 2, 8 pinów, 2 kpl
  • RM: radiomodem Ebyte E32-868T20S
Artykuł ukazał się w
Elektronika Praktyczna
wrzesień 2022
DO POBRANIA
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik maj 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio maj - czerwiec 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje kwiecień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna maj 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich maj 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów