W pierwszej części artykułu zaprezentowany został projekt modułu BBMobile z interfejsem BLE (Bluetooth Low Energy). Przyjmuje on przez port szeregowy UART kod JSON (JavaScript Object Notation) i na jego podstawie buduje aplikację działającą na urządzeniu mobilnym – tablecie, smartfonie. Wspomnieliśmy też o składni samego JSON-a, tworząc dwa proste, przykładowe interfejsy użytkownika.
Pora na szczegółowe przedstawienie kontrolek oraz omówienie procesu projektowania i testowania aplikacji mobilnych budowanych poprzez UART. Zrobimy to, przechodząc pełny proces tworzenia projektu o roboczej nazwie REMOTE SWITCH. Finalnie będzie on umożliwiał bezprzewodowe sterowanie dowolnym urządzeniem elektrycznym z dowolnego urządzenia mobilnego, korzystając z technologii BLE.
Wybór i przygotowanie urządzenia mobilnego
Z modułem BBMobile współpracują wszystkie urządzenia mobilne z systemem Android wyposażone w Bluetooth od wersji 4.0. Jest to najnowsza odsłona dobrze znanego interfejsu radiowego, używanego niegdyś głównie w bezprzewodowych systemach audio. Rewolucyjne wręcz zmiany, które rozpoczęły się z chwilą wprowadzenia w 2010 roku Bluetooth Low Energy, z każdą nową wersją rozszerzają możliwości standardu.
Po pobraniu, zainstalowaniu i uruchomieniu aplikacji BBMobile wszystko jest gotowe do zestawienia połączenia z modułem. Dotknięcie guzika START rozpocznie skanowanie w poszukiwaniu dostępnych kompatybilnych urządzeń BLE. W systemach Android od wersji 6.0 wzwyż konieczne jest uprzednie włączenie systemowej usługi lokalizacji, aby możliwe było korzystanie z Bluetooth LE. W przeciwnym wypadku podczas skanowania nie będą widoczne żadne urządzenia, z którymi można by zestawić połączenie. Wyniki skanowania przedstawiane są w postaci listy, z której wybieramy interesujące nas urządzenie.
Mały zestaw dewelopera
Do portu szeregowego modułu BBMobile (piny 18 – TxD, 19 – RxD, 20 – Gnd) podłączamy konwerter USB ↔ UART. Na komputerze PC instalujemy niezbędne dla niego sterowniki. Po tej operacji w systemie pojawią się wirtualne porty COM, których numery można sprawdzić, otwierając menadżera urządzeń, jak pokazuje rysunek 1.
Następnie instalujemy i uruchamiamy dowolny program terminalu. Dobrym wyborem jest niezwykle funkcjonalny TeraTerm, który można pobrać z witryny Tera Term Open Source Project.
W menu Setup → Serial Port ustawiamy parametry transmisji, jak pokazuje rysunek 2, a w Setup → Terminal parametry samego terminalu jak na rysunku 3.
Oczywiście wybrany numer portu COM musi odpowiadać istniejącemu w systemie i skojarzonemu z konwerterem USB ↔ UART. Teraz włączamy zasilanie modułu i na ekranie spodziewamy się powitania, dzięki któremu już wiemy, że kolejne komunikaty wysyłane przez moduł będą do nas docierać bez zakłóceń. Pozostaje jeszcze sprawdzić komunikację od terminalu do modułu. Wpisujemy zatem komendę: <hello i naciskamy Enter. Jeśli ekran terminalu wygląda teraz tak, jak ten z rysunku 4, to mamy pewność, że komunikacja z modułem działa prawidłowo w obie strony.
Teraz, gdy połączenie BLE nie jest jeszcze zestawione, możemy skonfigurować kilka funkcji modułu. Komendy dostępne w trybie bezpołączeniowym zawiera tabela 1.
Komenda <name pozwala zmienić domyślną nazwę modułu na dowolną inną o maksymalnej długości 25 znaków. Wpisując <name,EP_BLE_device, sprawimy, że od tej chwili podczas skanowania na liście dostępnych urządzeń pojawi się nasza nazwa: EP_BLE_device. Bardzo przydatną funkcją jest możliwość ustawienia kodu dostępu do modułu. PIN może zawierać od jednej do dziesięciu cyfr, których wpisanie będzie wymagane do otwarcia połączenia. Po wpisaniu do UART-a komendy <pin,123 i naciśnięciu Enter moduł jest zabezpieczony kodem ‘123’. Rysunek 5 pokazuje przebieg komunikacji podczas przeprowadzanej zmiany powyższych parametrów. Ostatnia komenda <pin,0 usuwa zabezpieczenie kodem pin (każdy numer zaczynający się od zera wyłącza ochronę).
Zestawianie połączenia BLE
Gdy w aplikacji BBMobile dotkniemy guzika START znajdującego się w prawym górnym rogu ekranu, rozpocznie się proces skanowania w poszukiwaniu kompatybilnych urządzeń Bluetooth Low Energy. Rysunek 6 pokazuje zrzut ekranu smartfona z wynikiem skanowania.
Na liście pojawił się również nasz moduł EP_BLE_device. Jeśli nie jest on zabezpieczony kodem PIN, to po jego wybraniu z listy połączenie BLE zostaje zestawione i możliwe jest przesłanie kodu JSON budującego interfejs aplikacji. Jak pokazuje rysunek 7, jeśli kod zabezpieczający został ustawiony, to na ekranie urządzenia mobilnego zobaczymy prośbę o jego podanie.
Po wpisaniu błędnego PIN-u otwarcie połączenia z modułem BBMobile nie będzie możliwe, a ekran wypełni komunikat jak ten, pokazany na rysunku 8. W tym przypadku pozostaje naciśnięcie guzika STOP w prawym górnym rogu ekranu aplikacji. Po wprowadzeniu poprawnego kodu zabezpieczającego połączenie jest zestawiane i moduł BBMobile oczekuje na przesłanie przez UART struktury aplikacji w postaci kodu JSON.
Kolejny etap
Mamy uruchomioną komunikację z modułem. Kolejnym etapem będzie poznanie kontrolek, które są podstawowym budulcem aplikacji. Po wyświetleniu na ekranie interfejsu przesłanego w postaci kodu JSON pozwalają prezentować informacje przesłane do portu UART oraz przyjmować i przekazywać do mikrokontrolera dane wprowadzane przez użytkownika, ale o tym w kolejnej części artykułu.
Mariusz Żądło
iram@poczta.onet.pl