- 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ą.
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.
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.
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.
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
- R1: 47 kΩ
- R2, R3: 330 Ω
- R4, R5: 4,7 kΩ
- C1: 10 μF (SMD0603)
- CE1: 47 μF/10 V (SMD3528) tantalowy
- C2, C3, C4, C5: 0,1 μF (SMD0603)
- LD: LED czerwona (SMD0603)
- U1, U2, U3: 74LVC04DCK (SC70-5)
- RM: radiomodem Ebyte E32-868T20S
- GPIO: złącze IDC żeńskie 2×20