- zawiera moduł radiowy Wireless-Tag WT51822-S4AT z mikrokontrolerem Nordic nRF51822,
- nie jest wymagana antena, ponieważ tę funkcję pełni odpowiednio zaprojektowana ścieżka na płytce,
- działa jak radiowy tor UART,
- łatwa konfiguracja,
- przystosowany do płytki Raspberry Pi Pico.
Mikrokontroler nRF51822 wraz z niezbędnymi elementami znajduje się na małej płytce o wymiarach 18,5×9,1×2 mm, którą należy zamontować w docelowym urządzeniu. W naszym przypadku będzie to płytka modułu rozszerzającego dopasowania do Pi Pico. Nie jest wymagana nawet dodatkowa antena, ponieważ tę rolę pełni odpowiednio zaprojektowana ścieżka na płytce mikrokontrolera. Niewątpliwą zaletą rozwiązania jest też łatwa i szybka konfiguracja. Takie rozwiązanie to dobra alternatywa dla tanich, słabo udokumentowanych rozwiązań lub rozbudowanych modułów renomowanych producentów, które w prostszych aplikacjach nie zawierają nawet części swoich możliwości.
Budowa i działanie
Moduł radiowy WT51822-S4AT, którego wygląd został pokazany na fotografii 1, odpowiada za realizację transmisji szeregowej UART z zastosowaniem BLE4.1. Można śmiało nazwać go „radiowym” odpowiednikiem konwerterów UART/USB od FTDI. Dzięki jego zastosowaniu, można w łatwy sposób zwiększyć funkcjonalność istniejącego projektu, bazującego na procesorze RP2040 o monitorowanie lub sterowanie poprzez Bluetooth, wprowadzając aplikację w świat IoT i to dosłownie w ciągu kilku minut.
Schemat modułu dla RPi Pico został pokazany na rysunku 1. Moduł radiowy WT51822-S4AT oznaczony jako RM, jest zasilany napięciem 3,3 V ze stabilizatora wbudowanego w Pico. Komunikacja odbywa się przez UART dostępny na wyprowadzeniach GPIO8 i 9. Dodatkowo do modemu podłączone są sygnały sterujące RES (RESET) GPIO22 restartujący modem, EN (ENABLE) GPIO21 aktywujący UART oraz sygnał generowanego przerwania po odebraniu znaku INT GPIO20. Zwora TEST służy do szybkiego przetestowania modułu, który w trybie tym niezwłocznie odsyła odebrane dane do sparowanego urządzenia, czyli realizuje funkcję loop-back, ale korzystając z interfejsu radiowego BLE – bez konieczności sterowania przez UART.
Montaż i uruchomienie
Układ zmontowany jest na dwustronnej płytce drukowanej, której schemat został pokazany na rysunku 2. Montaż nie wymaga szczegółowego opisu, finalnie urządzenie wygląda jak na fotografii tytułowej.
Do sprawdzenia modułu przydatny będzie telefon z zainstalowanym programem Serial Bluetooth Terminal dostępnym w sklepie Google Play, którego autorem jest Kai Morich. Skrypt testowy został pokazany na listingu 1.
from machine import UART, Pin
import time
from time import sleep
RES = Pin(22, Pin.OUT)
EN = Pin(21, Pin.OUT)
INT = Pin(20, Pin.IN)
RES.value(1)
EN.value(1)
uart0 = UART(1, baudrate=9600, tx=Pin(8), rx=Pin(9))
b = None
while True:
sleep(1)
if uart0.any():
txData = b’PicoBleUART_TX\n\r’
uart0.write(txData)
b = uart0.readline()
print(b)
Po podłączeniu płytki do Pi Pico i uruchomieniu środowiska Thonny w terminalu musimy sparować modem WT51822, korzystając z jego fabrycznych ustawień. Pierwszą czynnością jest włączenie interfejsu Bluetooth w smartfonie, następnie w aplikacji terminala należy zeskanować dostępne urządzenia, co zostało pokazany na rysunku 3.
W liście dostępnych modułów powinien znaleźć się WT-0001 dla którego należy zdefiniować profile usług. Konfiguracji dokonujemy poprzez wybór i przytrzymanie nazwy modułu WT-0001, co wywoła opcje Connect i Edit. Należy zdefiniować profile (Edit) zgodnie z rysunkiem 4. Następnie łączymy się z modułem (Connect), prawidłowe połączenie prezentuje rysunek 5, potwierdzone zostaje ono także w okienku terminala. W środowisku Thonny uruchamiamy skrypt BLEconf.py, który po odebraniu każdego znaku z terminala potwierdzi to odesłaniem tekstu PicoBleUART_TX, co potwierdza poprawne działanie modułu.
Modem może zostać skonfigurowany przy użyciu komend AT, Domyślnie WT51822-S4AT ma ustawione parametry transmisji 9600, 8, N, 1 i tak należy skonfigurować UART. Podstawową komendą jest odczyt parametrów modułu AT+RX, który zwraca nazwę, prędkość transmisji oraz adres MAC, komenda AT+VERSION zwraca wersję modułu.
Każda komenda AT wysłana do modułu wymaga zakończenia znakiem końca linii CR, często pisanym jako \r. Aby zmienić nazwę wydajemy komendę AT+NAME=NowaNazwaModułu, jeżeli operacja przebiegnie poprawnie otrzymamy potwierdzenie OK. Komendą AT+BAUD=xxxx można ustawić wymaganą prędkość transmisji. Jeżeli nie jest wymagana pełna moc nadajnika możemy dostosować ją do wymogów aplikacji (zasięgu) komendą AT+RFPM=x gdzie x = 0...8 ustawia moc +4 dBm do –40 dBm. Komenda AT+RESET restartuje moduł, a AT+DEFAULT przywraca ustawienia domyślne. Szczegółowy opis komend znajduje się w dokumentacji modułu.
Adam Tatuś, EP
- R1, R2, R3: 47 kΩ
- C1: 10 μF ceramiczny
- C2: 0,1 μF ceramiczny
- RM: WT51822-S4AT (WT51822-S4AT) Moduł BLE
- M1: PiPico (PIPICO) złącze żeńskie 1×20
- TEST: listwa SIP2 2 mm + zwora