Bluetooth Mesh – wymagania urządzeń

| Technika

Bluetooth Mesh to popularny interfejs komunikacyjny dla urządzeń i systemów IoT. Zapewnia wiele możliwości, lecz w celu poprawnej implementacji wymaga od projektanta urządzenia pewnego nakładu pracy oraz poziomu wiedzy, jak również starannego doboru komponentów wchodzących w skład projektowanego układu.

Bluetooth Mesh – wymagania urządzeń

Implementacja pełnego stosu protokołów Bluetooth Mesh jest zadaniem dość złożonym. Samodzielne opracowanie wszystkich wymaganych elementów kodu byłoby ogromnie czasochłonne, zajmując zapewne wiele setek roboczogodzin pracy doświadczonego zespołu programistów. Na szczęście znakomita większość niezbędnego oprogramowania dostępna jest w formie gotowych bibliotek, wymagających jedynie dostosowania (przeportowania) do potrzeb konkretnej aplikacji.

Urządzenia IoT cechuje ogromny poziom zróżnicowania. Każdy typ produktu wymaga nieco innego zestawu układów peryferyjnych oraz minimalnej wartości mocy obliczeniowej. Przykładowo, w obrębie jednego systemu zarządzania budynkiem znaleźć można zarówno układy zasilane bateryjnie (zazwyczaj o obniżonym zapotrzebowaniu na energię elektryczną), jak i podłączone do sieci elektrycznej. Część z nich korzysta intensywnie z obwodów analogowych, podczas gdy inne mogą wymagać przeprowadzania zaawansowanych obliczeń pochłaniających znaczną część mocy procesora.

Przygotowanie firmware jest często największą pozycją w budżecie nowo opracowywanego projektu. Tym bardziej należy dążyć do tego, aby otrzymane oprogramowanie było jak najbardziej uniwersalne oraz modułowe, umożliwiając jego ponowne użycie (w części lub w całości) w innych urządzeniach w obrębie tej samej rodziny produktów. Bardzo ważne jest zatem staranne dokonanie odpowiedniego wyboru platformy dla pierwszego z projektowanych układów, co pozwoli na maksymalne wykorzystanie już opracowanych rozwiązań w przyszłości. Poniżej opisane zostaną kluczowe aspekty, które powinny zostać uwzględnione w procesie wyboru takiego urządzenia.

Na najwyższym poziomie ogólności każdy system IoT podzielić można na trzy elementy:

  • hardware
  • software/firmware
  • aplikacja mobilna.

Hardware

Podczas wybierania platformy odpowiedniej do skonstruowania rodziny produktów korzystających z Bluetooth Mesh pierwszym i najważniejszym krokiem jest dokładne zbadanie potrzeb oraz wymagań projektowanych urządzeń. Następnie należy znaleźć wśród rozwiązań dostępnych na rynku te, które będą w stanie spełnić te wymagania. Szukając komponentów dla całej rodziny produktów, warto zwrócić uwagę na układy charakteryzujące się dużą elastycznością, pozwalającą dostosowywać ich parametry pracy do poszczególnych zastosowań.

Na rysunku 1 pokazano przykład prostego systemu do zarządzania budynkiem. Nawet ten podstawowy schemat składa się z kilku różnych typów urządzeń – żarówki, wentylatora, termostatu oraz sterownika żaluzji. System może być oczywiście rozbudowywany o dodatkowe układy – przełączniki, ściemniacze, czujniki ruchu, zraszacze oraz wiele innych. Każda z tych aplikacji ma inne wymagania projektowe, dobrze więc do ich konstrukcji wykorzystywać takie komponenty, które będą w stanie te zróżnicowane wymagania zaspokoić, bez konieczności całkowitego przeprojektowania układu lub dużych modyfikacji firmware.

Poniżej omówione zostaną podstawowe parametry wymagające rozważenia podczas projektowania urządzeń będących węzłami sieci Bluetooth Mesh.

 
Rys. 1. Przykład prostego systemu Smart Home opartego na technologii Bluetooth Mesh

Moc nadajnika oraz czułość odbiornika

Jednymi z najważniejszych parametrów każdego urządzenia bezprzewodowego są moc nadajnika oraz czułość odbiornika. Wartości te określają budżet łącza oraz maksymalny zasięg komunikacji. Ponieważ sieć Bluetooth Mesh oparta jest na topologii kraty, budżet łącza wyznacza maksymalny zasięg bezpośredniej komunikacji pomiędzy dwoma węzłami, nie zaś rozmiar całej sieci, która może być znacznie rozleglejsza.

Wyższa moc transmisji wiąże się z większym zużyciem energii elektrycznej, przez co w urządzeniach zasilanych bateryjnie bardzo często konstruktor stara się dość mocno ograniczyć ten parametr, wydłużając w ten sposób żywotność produktu. Do typowych rodzajów urządzeń zasilanych bateryjne zaliczyć można czujniki temperatury oraz wilgotności, przełączniki oraz detektory ruchu. W przypadku produktów zasilanych z sieci konsumpcja energii elektrycznej nie jest tak istotnym aspektem, zatem mogą one pozwolić sobie na większą moc nadawania, wydłużając tym samym zasięg całej sieci. Chcąc zaprojektować urządzenia zasilane sieciowo, warto zatem skorzystać z modułów komunikacyjnych wspierających większe wartości mocy nadawania, np. do 10 dBm.

Z drugiej strony urządzenia bateryjne będą raczej wyposażane w układy energooszczędne, o obniżonej mocy transmisji. Dobrym rozwiązaniem może być zatem znalezienie rodziny układów komunikacyjnych o kompatybilnym układzie wyjść oraz typie obudowy. W ten sposób, nie zmieniając projektu płytki drukowanej, w zależności od potrzeb skorzystać można z układu o innych parametrach pracy.

Zużycie energii elektrycznej

Jak już wspomniano, kolejnym ważnym parametrem, szczególnie w przypadku układów zasilanych bateryjnie, jest zużycie energii elektrycznej. W dodatku wielkość ta staje się także coraz bardziej istotna dla produktów zasilanych sieciowo w związku z coraz większymi oczekiwaniami użytkowników związanymi m.in. z rosnącą świadomością ekologiczną, jak również wymaganiami narzucanymi przez niektóre instytucje regulujące. Brak spełnienia określonych wymagań co do maksymalnego poziomu użycia energii elektrycznej może skutkować niedopuszczeniem urządzenia do sprzedaży.

Pierwszym z elementów wpływających na całkowite zużycie energii przez urządzenie jest budżet energetyczny związany z komunikacją radiową, czyli moc pobierana podczas nadawania oraz odbierania sygnału. Większość z węzłów sieci Bluetooth Mesh w sposób ciągły nasłuchuje w poszukiwaniu nowych pakietów, przez co ich układ odbiornika niemal przez cały czas pracuje z pełną mocą, czyniąc energię pokierowaną przez odbiornik najistotniejszym elementem budżetu energetycznego całego urządzenia. Moc pobierana podczas transmisji sygnału może być natomiast szczególnie ważna dla węzłów często przekazujących wiadomości do dalszych obszarów sieci.

Moc obliczeniowa

Do terminowej realizacji swoich zadań urządzenie musi dysponować odpowiednią mocą obliczeniową. Większa moc pozwala wykonywać pewne zadania szybciej, co w przypadku urządzeń niewymagających pracy ciągłej pozwala na dłuższe przebywanie w stanach uśpienia. Większość współczesnych procesorów ma przynajmniej kilka trybów pracy, charakteryzujących się zróżnicowaną wydajnością oraz zużyciem energii. Wykorzystując ten fakt, jeden typ mikroprocesora powinien być zatem w stanie skutecznie obsłużyć urządzenia o całkiem zróżnicowanych potrzebach.

Pamięć

Wymagana ilość pamięci może być zapewne jednym z parametrów o największym zróżnicowaniu w obrębie jednej rodziny produktów. Prosty naścienny przełącznik będzie prawdopodobnie wymagał znacznie mniej pamięci niż sterownik oświetlenia mający kilkadziesiąt edytowalnych programów i trybów pracy. Dobrze zatem wybrać taki typ układu pamięci, który dla tej samej obudowy oraz footprintu produkowany jest w przynajmniej kilku wersjach o różnej pojemności.

Układy peryferyjne

Tak jak w przypadku pamięci, również liczba oraz typ wykorzystywanych układów peryferyjnych znacząco zależy od przeznaczenia urządzenia. Przykładowo, inteligentna żarówka może wymagać trzech lub czterech układów PWM (do sterowania diodą LED typu RGB lub RGBW), układu ADC do pomiaru temperatury oraz kontrolera I²C do obsługi czujnika PIR. Prosty termostat może zaś potrzebować jedynie konwertera ADC. Większość typów układów peryferyjnych jest współcześnie integrowana w strukturze mikrokontrolera – warto zatem przed wyborem tego układu sformułować kompletną listę wymaganych peryferiów i do tego dostosować model lub rodzinę wykorzystywanych w projekcie mikrokontrolerów.

Rozszerzony zakres temperatur pracy

Niektóre produkty, jak np. źródła światła, mogą wymagać rozszerzonego zakresu temperatur pracy, związanego z dużą wartością mocy rozpraszanej na wybranych komponentach, takich jak diody LED lub zasilacze. Z tego powodu dobrym rozwiązaniem może być znalezienie takiej rodziny produktów, w której ofercie znajdują się zarówno układy o normalnym, jak i rozszerzonym zakresie temperatur pracy.

Oprogramowanie

Określenie „oprogramowanie” odnosi się nie tylko do kodu wykonywanego na urządzeniu, ale również do całego środowiska pracy wykorzystywanego w procesie projektowania, czyli m.in. IDE oraz kompilatora. Całość musi być prosta w użyciu oraz pozwalać na wygodne debugowanie aplikacji.

Specjalnej uwagi wymagają biblioteki implementujące stos protokołów Bluetooth Mesh. Standard ten definiuje wiele różnych typów oraz modeli węzłów. Nie każda z bibliotek implementuje wszystkie definiowane w protokole funkcjonalności, zatem ważne jest wybranie takiego rozwiązania, które zapewni obsługę wymaganych w projekcie funkcji. Biblioteki zawierają zazwyczaj również przykładowy kod, który może być świetnym punktem wyjścia do tworzenia własnego oprogramowania.

Aplikacja mobilna

Jedną z głównych idei Bluetooth Mesh jest łatwość obsługi systemu przez użytkownika. Główny interfejs sterowania systemem, podobnie jak w przypadku niemal wszystkich rozwiązań IoT, zawarty jest w aplikacji mobilnej. Producenci układów i modułów komunikacyjnych często udostępniają własne darmowe oprogramowanie, dostępne dla systemów Android oraz iOS. Brak takiej aplikacji może drastycznie podnieść koszt całego projektu – opracowanie własnego oprogramowania dla urządzeń mobilnych może wymagać nakładów rzędu setek tysięcy dolarów, jak również wydłużyć czas do wprowadzenia produktu na rynek.

 
Rys. 2. Przyjazna oraz intuicyjna aplikacja mobilna jest kluczowym elementem każdego systemu Bluetooth Mesh

Podsumowanie

Wybierając elementy do konstrukcji własnego urządzenia-węzła sieci Bluetooth Mesh, warto poświęcić sporo czasu oraz uwagi na podjęcie odpowiednich decyzji. Roztropny dobór komponentów może znacząco skrócić czas projektowania urządzenia, umożliwić wielokrotne wykorzystanie tych samych układów oraz fragmentów kodu dla różnych typów produktów, w efekcie zaś zmniejszyć końcowy koszt projektu.

 

Damian Tomaszewski