Systemy dla Internetu Rzeczy (2). Użytkowanie zestawu CC2650 SensorTag

Systemy dla Internetu Rzeczy (2). Użytkowanie zestawu CC2650 SensorTag
Pobierz PDF Download icon
Zestaw CC2650 SensorTag jest dostarczany z fabrycznie zaprogramowanym programem o wdzięcznej nazwie "Demo". Niestety, opisu jego działania prawie nie ma. Sposób działania programu jest ściśle związany z organizacją pracy komunikacji bezprzewodowej z protokołem Bluetooth LE ver.4.2. W ostatnich czasach protokół ten bardzo silnie się rozwijał. Dało to sporo nowych możliwości, ale też wprowadziło wiele zmian.

W poprzednim artykule tej serii omówiono budowę zestawu CC2650 SensorTag [1] – teraz zostanie opisany sposób jego użytkowania.

Produkcję zestawu CC2650 SensorTag uruchomiono w połowie roku 2015, lecz dopiero na jesieni ustabilizowało się jego środowisko programowe. Gorzej było ze sprzętem. Dopiero tegoroczne wersje Rev1.3 pracują zupełnie poprawnie. Obecnie zestaw przeżywa „drugą młodość”, a to być może za sprawą młodszego „brata” – zestawu CC1350 SensorTag.

Na stronie produktu „SimpleLink Bluetooth low energy/Multi-standard SensorTag CC2650STK” [3] znajdziemy odnośnik do krótkiego opisu „CC2650 SensorTag Quick Start Guide” [6]. Jest on też w postaci papierowej dołączony do zestawu. Wewnątrz opisu znajdziemy wskazówkę, że więcej informacji można znaleźć na stronie „IoT made easy” pod adresem [7]. Na stronie TI WIKI „SensorTag2015” [8] jest link do strony „CC2650 SensorTag User’s Guide” [9] – to jedyny, dokładny opis zestawu CC2650 SensorTag, dosyć często aktualizowany. Na portalu społecznościowym TI E2E Community jest bardzo przydatna strona CC2640/CC2650 Getting Started and FAQ [5]. Jest ona często aktualizowana i zawiera odpowiedzi na najczęściej zadawane pytania.

Po włączeniu zasilania zestawu CC2650 SensorTag (np. po włożeniu baterii) jest wykonywany test sprawdzający poprawność funkcjonowania czujników i pamięci Flash [9]. Jeśli rezultat jest poprawny, to 5-krotnie miga zielona dioda LED. W wypadku błędu miga czerwona dioda LED.

Na zakładce Teardown strony „IoT made easy” są informacje dotyczące obsługi zestawu CC2650 SensorTag (rysunek 1).

Stan rozgłaszania

Po zakończeniu inicjalizacji układ przechodzi do stanu rozgłaszania (advertisement) protokołu BLE. Informacja jest wysyłana co 100 ms i co 1 sekundę błyska zielona dioda LED. Rozgłaszanie można wystartować/zatrzymać poprzez przyciśnięcie prawego przycisku (Power). Przyciśnięcie przycisku „Power” (prawy) wyłącza działanie urządzenia (rys. 1). To znaczy, ze układ CC2650 przechodzi w stan uśpienia. Pojedyncze przyciśnięcie tego przycisku wybudza układ z uśpienia.

Zestaw SensorTag musi wykonywać rozgłaszanie aby, mógł być rozpoznany przez urządzenie centralne standardu BLE, np. urządzenie mobilne. Urządzenie centralne może zestawić połączenie do zestawu SensorTag tylko wtedy, gdy on jest w stanie rozgłaszania. Jeśli zestaw SensorTag jest w stanie rozgłaszania to urządzenie centralne może odczytać informację o nazwie urządzenia „CC2650 SensorTag” lub zestawić połączenie.

Zestaw SensorTag, w celu oszczędzania baterii, ogranicza czas rozgłaszania do maksymalnie 120 sekund (Limited Advertising) od naciśnięcia prawego przycisku. Wtedy czujniki zestawu są wprowadzone w stan niskiego poboru energii.

Stan połączenia

Połączenie jest zestawiane przez urządzenie centralne i wtedy zestaw SensorTag może być skonfigurowany do dostarczania danych pomiarowych. Urządzenie centralne może wtedy rozpoznać serwisy, pracować jako klient GATT lub zakończyć połączenie.

W stanie połączenia diody LED nie są używane przez oprogramowanie. Można je za to zaświecić/zgasić poprzez bezpośrednie polecenia użytkownika.

W stanie połączenia przyciski zestawu SensorTag działają inaczej. Krótkie ich przyciśnięcie nie ma specjalnego znaczenia, jest tylko odczytywane (i pokazywane np. przez dołączone urządzenie centralne). Przyciśnięcie przycisku „Power” (prawy) przez 3 sekundy kończy połączenie i zestaw SensorTag powraca do stanu rozgłaszania. Przyciśnięcie obu przycisków przez 6 sekund przywraca ustawienia fabryczne, tzn. fabryczny obraz kodu dla obsługi BLE jest ładowany z zewnętrznej pamięci Flash i uruchamiany. Takie postępowanie jest rekomendowane tylko w przypadku używania obrazu kodu obsługującego standard ZigBee i konieczności powrotu do obsługi BLE.

Pierwsze kroki

Zestaw CC2650 SensorTag może zostać dołączony poprzez łącze radiowe standardu Bluetooth LE do urządzenia mobilnego (smartfon/iPad) lub innego z obsługą tego standardu. Na zakładce Getting Started strony „IoT made easy” [7] mamy informację o postępowaniu przy uruchamianiu komunikacji z urządzeniem mobilnym (trzy kroki):

Pobierz darmową aplikację SensorTag dla swojego urządzenia mobilnego (smartfon/iPad), obsługującego transmisję bezprzewodową Bluetooth LE ver.4.0 (lub nowszą):
- Z Apple App Store (ver 4.91, 27 września 2016) dla urządzeń z systemem operacyjnym iOS 8.0 i nowszym (iPhone i iPad) [12].
- Z Google Play (ver 3.6, 23 września 2016) dla urządzeń z systemem operacyjnym Android 5.0 i nowszym [13].

Na stronie TI można spotkać oprogramowanie SimpleLink SensorTag Software będące bardzo wczesnymi wersjami (z końca roku 2015). Na zakładce Teardown strony „IoT made easy” [7] są odnośniki do pobrania aktualnej wersji obu wersji aplikacji a także do ich kodów źródłowych.

Włącz zasilanie zestawu CC2650 SensorTag . Usuń plastikowe zabezpieczenie baterii. Jeśli posiadamy moduł rozszerzeń Debug DevPack to nie należy usuwać plastikowego zabezpieczenia baterii. Należy dołączyć moduł Debug DevPack do zestawu CC2650 SensorTag i połączyć komplet kablem USB z komputerem. Zasilanie całości będzie pobierane z łącza USB [1].

Od tego momentu program firmowy „Demo” wpisany do procesora zestawu CC2650 SensorTag powinien zacząć pracować, co jest sygnalizowane błyskaniem zielonej diody LED na płytce. Jest to konieczne do nawiązania połączenia (connection) z urządzeniem centralnym (tutaj urządzeniem mobilnym). Jeśli przez czas ok. 3min nie nastąpi połączenie to układ CC2650 przechodzi w stan uśpienia. Można go wybudzić i ponownie wprowadzić w stan rozgłaszania poprzez przyciśnięcie przycisku Power.

Uruchom aplikację SensorTag na swoim urządzeniu mobilnym. Może to także wymagać włączenia na urządzeniu radia Bluetooth. Aplikacja SensorTag najlepiej działa na iPadzie. W wypadku Androida można spotkać się z kłopotami i ograniczeniami funkcjonalności.

Aplikacja SensorTag

W głównym oknie aplikacji SensorTag jest odnośnik „Make IoT Easy” (rysunek 2). Otwiera on okno About SensorTag z grupą odnośników do różnych przydatnych stron oraz daje możliwość skonfigurowania chmury. Na dole okna są informacje o wersji aplikacji (rysunek 3). W głównym oknie aplikacji SensorTag wyszukaj na liście „Bluetooth Smart Devices” swój zestaw SensorTag. Po kliknięciu na niego pojawia się okienko wyboru (rys. 2). Kliknij na „Sensor View”. Pojawia się okno prezentujące bieżące wartości odczytu z czujników. Zielona dioda LED zestawu CC2650 SensorTag przestaje błyskać. Oznacza to, że zestaw jest w stanie komunikacyjnym „połączony”. Niestety wygląda to tak samo jak w stanie uśpienia urządzenia.

I co teraz robić? Dokumentacja firmowa oraz witryna Texas Instruments nie daje bezpośredniej odpowiedzi na to pytanie. Najlepiej najpierw zobaczyć krótką prezentację firmową„IoT SensorTag – What can you design?” (03:10) dostępną na stronie produktu [3] oraz pod adresem [4]. Na pierwszej stronie prezentacji pojawiają się napisy: „Next-Generation Multi-Standard SimpleLink SensorTag, IoT Cloud Connectivity In Under Three Minutes”. Zgodnie z obietnicą już po minucie prezentacji można zobaczyć jak się łączyć z chmurą obliczeniową. Na stronie społeczności „element14” [2] można zapoznać się z praktycznym opisem postępowania przy pracy z aplikacją SensorTag. Tam też jest zamieszczona praktyczna prezentacja.

Przy pierwszym skomunikowaniu się aplikacji SensorTag z nowym zestawem CC2650 SensorTag najczęściej pojawia się okienko z informacją, że oprogramowanie firmware na CC2650 SensorTag jest zbyt stare i proponowana jest jego aktualizacja przeprowadzana bezprzewodowo (Over-the-air). To jest bardzo doby pomysł. Należy wybrać opcję „Upgrade”. Typowo aktualizacja przebiega szybko i bezproblemowo (przy zasilaniu z baterii).

Okno Sensor View

W oknie SensorView pokazywane są w postaci wykresów bieżące wartości odczytu z czujników (rysunek 4):
- Ambient Temperature – temperatura wewnętrzna (odniesienia) mierzona przez czujnik TMP007.
- IR Temperature – temperatura zmierzona bezdotykowo (TMP007).
- Humidity – wigotność zmierzona przez czujnik HDC1000.
- Barometer – ciśnienie atmosferyczne [mbar] (czujnik BMP280). Po przyciśnięciu Calibrate jest dodatkowo pokazywana wysokość względna.
- Movement – czujniki położenia (9-osi), pomiar wykonuje układ MPU-9250:
  - Accelerometer – przyspieszenie w trzech osiach.
  - Magnetometer – kompas w trzech osiach.
  - Gyroscope – żyroskop, obroty w trzech osiach.
  - Light Sensor – poziom oświetlenia otoczenia [Lux], pomiar wykonuje układ OPT3001 (rysunek 5).

Długie dotknięcie pola sensora powoduje wyświetlenie okienka wyboru:
- Graph – pokazuje nowe okno z dokładnym wykresem wartości pomiarowych.
- Configure Sensor – pozwala na wybór interwału czasowego pomiędzy kolejnymi odczytami wartości z czujnika. Początkowo wszystkie czujniki są odczytywane co 1 sekundę.

3D Visualization – dla czujników położenia jest dodatkowo możliwość wizualizacji trójwymiarowej danych pomiarowych. Wymagane jest na początku wykonanie zestawem pętli o kształcie ósemki a następnie położenie zestawu poziomu. Pozwala to programowi na wykonanie kalibracji.

Udostępniony jest także przełącznik „Wake On Shake”. Gdy jest on aktywny transmisja danych jest przerywana, gdy zmiany położenia nie przekraczają wartości progowej. Dodatkowo w oknie SensorView pokazywany jest stan przycisków:

TI Simple Keys Service – przyciśnięcie przycisku jest pokazywane jako poziom wysoki:
- Wysoki prostokąt – przycisk użytkownika (User Button – lewy).
- Niski prostokąt – przycisk zasilania (Power Button – prawy).

W poprzednich wersjach aplikacji pokazywany był stan przełącznika magnetycznego, ale zrezygnowano z tego wskazania (?).

W oknie SensorView można też sterować włączaniem/wyłączaniem:

- I/O Service:
  - Red LED ON/OFF – włączanie/wyłączanie świecenia diody czerwonej (górnej).
  - Green LED ON/OFF – włączanie/wyłączanie świecenia diody zielonej (dolnej).
  - Buzzer ON/OFF – włączanie/wyłączanie brzęczyka.

Mikrofon cyfrowy nie jest obsługiwany przez program „DEMO”. Na dole okna SensorView pokazywane są dodatkowe informacje (rysunek 6):

- RSSI – poziom odbieranego sygnału radiowego [dBm], bardzo przydatne do określenia zasięgu pracy.
- Device Information – różne informacje odczytanie z urządzenia, szczególnie przydatny jest System ID.

Obok jest pole poleceń:

- Connection Control Service – ustawianie parametrów czasowych fazy skomunikowania pracy protokołu Bluetooth LE.

Przyciśnięcie przycisku Edit w prawym górnym rogu okna SensorView powoduje przejście do trybu edycji, gdzie każdą pozycję można usunąć z okna (znak minus). Można też zmieniać kolejność pokazywania czujników poprzez przeciąganie pola na odpowiednią pozycję. Potem trzeba kliknąć Done.

Po opuszczeniu okna SensorView (strzałka w lewym górnym rogu) połączenie komunikacyjne zostanie zakończone. Zestaw CC2650 SensorTag przechodzi w tryb rozgłaszania (advertisement) protokołu BLE, co jest sygnalizowane błyskaniem zielonej diody LED na płytce.

Aktualizowanie oprogramowania firmowego

Zestaw CC2650 SensorTag jest dostarczany z zaprogramowanym oprogramowaniem w wersji raczej starszej. Dlatego należy go zaktualizować do nowszej (lub najnowszej wersji). Można to wykonać na dwa sposoby [9]:

Bezpośrednie wpisanie obrazu kodu do wewnętrznej pamięci Flash układu scalonego CC2650 poprzez port JTAG tego układu. W tym celu należy do zestawu CC2650 SensorTag dołączyć moduł Debug DevPack [14]. Moduł trzeba dołączyć do komputera PC kablem USB. Do programowania najłatwiej użyć darmowego programu SmartRF Flash Programmer 2 (Texas Instruments).

Zastosowanie serwisu Over the Air Download (OAD) łącza radiowego standardu Bluetooth LE obsługiwanego przez oprogramowanie pracujące na Zestaw CC2650 SensorTag (tylko przy zasilaniu z baterii).

Aplikacja SensorTag udostępnia operację Over the Air Download (OAD) – ładowania obrazu binarnego oprogramowania firmware do zestawu SensorTag [9]. Obraz jest najpierw wpisywany do pamięci Flash na płytce zestawu (external flash). Po zakończeniu ładowania obraz jest weryfikowany (suma kontrolna) i poprawny obraz jest ładowany do wewnętrznej pamięci Flash układu scalonego CC2650. Wymuszana jest operacja reset i układ startuje z oprogramowaniem w nowej wersji.

Na dole okna SensorView jest pole polecenia FW Download – możliwość aktualizowania oprogramowania firmware w oknie „TI OAD profile”. Po wybraniu polecenia „Select FW File” wyświetlana jest lista z plikami obrazu kodu dla obsługi różnych urządzeń. Pliki z kodem programu firmowego „DEMO” z wersjami kompatybilnymi dla wykrytego zestawu CC2650 SensorTag (pokazywane z nazwą Sensor Tag 2) są dodatkowo oznaczone. Obrazy kodu są dostępne dla protokołu komunikacyjnego BLE (v1.30) oraz ZigBee (v1.12). Lista zawiera również pliki obrazu kodu przykładowego dla obsługi modułów rozszerzeń LED Devpack oraz LCD screen Devpack.

Polecenie Give Alias

Po kliknięciu w głównym oknie aplikacji SensorTag na swój zestaw SensorTag można w okienku wyboru wybrać polecenie Give Alias. Otwiera się okno z klawiaturą. Pozwala to na wprowadzenie aliasa nazwy dla wybranego urządzenia. Nie zmienia to sposobu pracy z tym urządzeniem, ponieważ jest ono rozpoznawane poprzez unikalny System ID.

Polecenie Service Explorer

Po kliknięciu w głównym oknie aplikacji SensorTag na swój zestaw SensorTag można w okienku wyboru wybrać polecenie Service Explorer. Kolejne okna umożliwiają konfigurowanie komunikacji z protokołem BLE.

Polecenie Advertisement data

Po kliknięciu w głównym oknie aplikacji SensorTag na swój zestaw CC2650 SensorTag można w okienku wyboru wybrać polecenie Advertisement data. Okno Adv data pokazuje podstawowe dane udostępniane przez wybrany zestaw CC2650 SensorTag podczas rozgłaszania.

Dołączanie zestawu CC2650 SensorTag do chmury obliczeniowej

Aplikacja SensorTag umożliwia, aby urządzenie mobilne (np. iPad) dołączone do sieci Internet umożliwiało pracę z chmurą obliczeniową. W sieci wykorzystywany jest „IBM Watson IoT Platform Quickstart Service” [11. Łączenie jest darmowe, łatwe i szybkie [10].

Cloud View

Na górze okna SensorView znajduje się pole Cloud View które pozwala na pracę z chmurą obliczeniową (rysunek 7). Kliknięcie na przełącznik „Push to cloud” powoduje włączenie pracy z chmurą obliczeniową. Jeśli połączenie zostało poprawnie wykonane to przełącznik pozostaje w prawej pozycji. Za każdym razem jak dane są wysyłane do chmury poniżej ikonki chmury to pojawia się strzałka.

Kliknięcie na ikonę chmury otwiera okno „Config Summary” (rys. 7). Jako identyfikator urządzenia jest brany unikalny adres MAC zestawu CC2650 SensorTag. W oknie jest podany adres dostępu do strony Internetowej Quickstart z danymi pomiarowymi pobieranymi z zestawu CC2650 SensorTag i wyświetlanymi na bieżąco (w czasie rzeczywistym) [11].

Po kliknięciu w głównym oknie aplikacji SensorTag na swój zestaw SensorTag można w okienku wyboru wybrać polecenie Cloud Configuration. Zagadnienie komunikacji z chmurą obliczeniową jest bardziej obszerne i zostanie dokładniej omówione później.

Aplikacja SensorTag Rev 1.30

Aktualizowanie aplikacji SensorTag do wersji 1.30 przebiega w trzech krokach. W oknie “Sensor View” pojawia się nowa informacja o stanie baterii (rysunek 9). Dalej nie ma informacji o stanie czujnika magnetycznego. Jednak obsługa modułów rozszerzeń Watch DevPack i LED Audio DevPack jest dostępna dalej w wersji SensorTag Rev 1.20.

Dostępne są opisy dołączenia zestawu CC2650 SensorTag do jednopłytkowych komputerów Raspberry Pi [15], Intel Edison [16] oraz do komputera PC z wtyczką CC2540USB Dongle [9]. Sposoby programowania zestawu CC2650 SensorTag (łącznie z programem startowym Demo) zostaną pokazane w następnych odcinkach kursu.

Henryk A. Kowalski
kowalski@ii.pw.edu.pl

Bibliografia:

- Systemy dla Internetu Rzeczy (1): Zestaw CC2650STK SensorTag, Elektronika Praktyczna, 12/2016
- TI CC2650STK SimpleLink™ IoT SensorTag – Review, https://goo.gl/gNPDQK
- SimpleLink Bluetooth low energy/Multi-standard SensorTag CC2650STK, https://goo.gl/ldPnzC
- „IoT SensorTag - What can you design?”,Wideo, TI https://goo.gl/UiPFav
- CC2640/CC2650 Getting Started and FAQ, 2016 Oct 31 https://goo.gl/Z2uFYN
- CC2650 SensorTag Quick Start Guide (Rev. A) 16 Feb 2016 SWRU410, https://goo.gl/hZx4GI
- IoT made easy https://goo.gl/ZY2tvj
- SensorTag2015 (TI WIKI) https://goo.gl/o8hL4R
- CC2650 SensorTag User’s Guide (TI WIKI), https://goo.gl/w13Gtd
- Texas Instruments CC2650 SimpleLink Bluetooth Smart BLE SensorTag, IBM, 2016, https://goo.gl/8UNX36
- Quickstart, IBM Watson IoT Platform https://goo.gl/x7e2VR
- iTunes, TI SensorTag By Texas Instruments https://goo.gl/OFIOfi
- Google Play, Simplelink SensorTag, Texas Instruments Inc., https://goo.gl/7kt80S
- SimpleLink SensorTag Debugger DevPack CC-DEVPACK-DEBUG, https://goo.gl/eLq9i6
- IOT made real – Using TI SensorTag data with Logentries and NodeRed, David Tracey, 18.02.2016, https://goo.gl/h4ITQ3
- Indoor Positioning with Bluetooth Low Energy (BLE), https://goo.gl/kzXJrb

Artykuł ukazał się w
Elektronika Praktyczna
styczeń 2017
DO POBRANIA
Pobierz PDF Download icon
Zobacz też
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik czerwiec 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio lipiec 2020

Świat Radio

Magazyn użytkowników eteru

APA - Automatyka Podzespoły Aplikacje czerwiec 2020

APA - Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna czerwiec 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich czerwiec 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów