Protokoły komunikacji urządzeń dla Internet of Things
Internet Rzeczy (IoT) jest uważany za jeden z najgorętszych tematów i nowinek wśród ludzi interesującymi się nowymi technologiami związanymi z IT. Wiele osób uważa, że jest to jedna z największych zmian jaka spotka człowieka w czasach nowożytnych. Komunikujące się ze sobą i z komputerem różnego rodzaju mierniki i sterowniki mogą znacząco wpłynąć na styl naszego życia. Głównym celem jest automatyczne sterowanie pomieszczeniami, budynkami, halami. Automatyczne regulowanie oświetlenia, wydzielania ciepła, wentylacji, ale też wszelkiego rodzaju pomiary jak np. zużycie energii, wody, które pozwalają nie tylko ułatwić zarządzanie, ale też przyczynić się do oszczędności finansowych. Wszystko to już dawno używane jest w wielu zakładach przemysłowych i biurowcach. Jednak teraz dzięki niższym kosztom budowy takich urządzeń oraz montowaniu minikomputerów w lodówkach, piekarnikach itp. pojawia się szansa, że rozwiązania te pojawią się w każdym zwykłym domu. Jednym z kluczowych elementów niezbędnych do realizacji tego typu projektów jest wygodny, bezpieczny i skuteczny system komunikacji bezprzewodowej pozwalający na łączenie się urządzeń tworzących naszą sieć IoT z centralnym komputerem.
Wydawałoby się, że IoT jest już w fazie intensywnego wdrażania, a technologie z tym związane stabilne i dojrzałe. Można by również spodziewać się dużej konkurencji w tej dziedzinie. Można, ale niestety nic z tego…
W tej chwili istnieje jeden niekwestionowany lider jeśli chodzi o protokół komunikacji dla urządzeń IoT oraz chipy i same gotowe urządzenia, które można połączyć z tego typu siecią. Jest nim zamknięty standard Z‑Wave, którego twórcą i właścicielem jest duńska firma Zensys. Utworzono też Z‑Wave Alliance, stowarzyszenie ok. 300 firm zajmujących się produkcją urządzeń automatyki domowej i przemysłowej, którzy wykorzystują ten protokół w swoich produktach. Produktów ułatwiających dodawanie "inteligencji" swojemu mieszkaniu jest całkiem sporo. Każdy hotzlotowicz dobrze zna jedną firmę z Poznania, która jest liderem na tym rynku.
Problem jednak w tym, że dla hobbysty, który chce zrobić coś więcej niż wykorzystać gotowe rozwiązania, sytuacja nie jest taka idealna. Aby korzystać z Z‑Wave należy zakupić development kit składający się z elektroniki i SDK (na jednej ze stron widać cenę $2700 za base kit + $300 za elementy regionalne [każdy region używa innej częstotliwości], a do tego jeszcze samo SDK, którego ceny nie udało mi się ustalić [jest tylko kontakt do sprzedawcy]). Sytuacje ratuje na szczęście OpenZWave, projekt otwartej biblioteki do obsługi szeregu kontrolerów podłączanych do komputerów, służących do nadzorowania naszej sieci urządzeń. Można zatem korzystać z gotowych urządzeń sterując i monitorując ich pracę, jednak niektórzy chcieliby czegoś więcej, możliwości tworzenia własnych urządzeń w oparciu o Arduino (bądź innego mikrokontrolera jak np. ARM Cortex-M). Takie chipy istnieją, jednak ich ceny są trudne do zaakceptowania (wychodzi już taniej kupić gotowca). Najtańszy moduł jaki udało mi się znaleźć: http://www.zwaveproducts.com/Zwave-Lighting/Zwave-Wall-Switches/Remote... Wysokie ceny wynikają z zamkniętej technologii i opłatą jakie ponoszą producenci urządzeń wykorzystujących ZWave. Moim zdaniem nie jest to technologia, która mogłaby znaleźć się pod strzechami przeciętnego Kowalskiego. Potrzebna jest solidna konkurencja, która spowodowałaby obniżenie cen. Jeszcze lepiej gdyby pojawiła się otwarta specyfikacja, dostępna dla każdego bez opłaty. No i w zasadzie coś takiego jest, ale ...
Okazuje się, że większość firm zaspała nieco i nie zauważyła możliwości wprowadzenia automatyki w zwykłych domach. Istniały co prawda od dość długiego czasu różne protokoły służące do tego typu rozwiązań, jak choćby protokół X10 (lata 70‑te XXw), jednak był on lepiej dostosowany do urządzeń automatyki przemysłowej. Pojawił się również standard ZigBee, który obecnie jest największym konkurentem dla ZWave. Jednak urządzenia korzystające z niego mają złą opinię, ponieważ okazuje się, że bardzo często urządzenia różnych producentów korzystających z protokołu ZigBee nie są ze sobą kompatybilne. Chcąc temu zaradzić utworzono ZigBee Alliance, grupę łączącą wiele znanych firm jak: Philips, Texas Instrument czy FreeScale (lista: http://www.zigbee.org/zigbeealliance/our-members/ ). Większość chyba dużych potentatów branży elektronicznej wspiera prace nad ZigBee, zatem wydają się skazani na sukces. I to pomimo tego, że można odnieść mocne wrażenie, że są bardzo spóźnieni. ZigBee Alliance pracuje nad specyfikacją wersji 3.0 protokołu, który ma usunąć wszelkie niekompatybilności i inne problemy z dotychczasowych implementacji. Pełna specyfikacja zostanie zatwierdzona ... w czwartym kwartale br. Rewolucja w automatyce domowej tymczasem już trwa, ale na działający dobrze ZigBee jeszcze poczekamy.
Niektórzy uważają jednak, że czarnym koniem w tym wyścigu może stać się standard 6LoWPAN. Wykorzystuje on zwykłe połączenia wewnętrznej sieci IPv6, które nie zużywają dużo energii i tak samo jak w wyżej wymienionych technologiach każdy węzeł potrafi pośredniczyć w komunikacji między innymi węzłami, a serwerem. Jest on o tyle lepszy, że korzysta ze sprawdzonej już struktury i znacznie łatwiej zaimplementować go w systemie operacyjnym. Druga sprawa, że ZigBee wymaga, aby osoby, które chcą mieć dostęp do niezatwierdzonych jeszcze specyfikacji i móc wykorzystywać je w swoim oprogramowaniu muszą zgodzić się na specyficzną licencję, która ponoć stoi w sprzeczności z GPL. Utrudnia to implementacje tego protokołu w jądrze Linuksa. Może się okazać, że szybkie pojawienie się dobrego wsparcia dla protokołu 6LoWPAN w Linuksie da mu przewagę.
Cóż pozostaje zatem hobbystom, albo bawić się póki co z ZWave, kosztem niemałych wydatków. Tymczasem czekać na rozwój wypadków i pojawienie się nowych urządzeń z ZibBee lub 6LoWPAN po przystępnych cenach oraz dobrego wsparcia w jądrze Linuksa wraz z odpowiednimi bibliotekami. Dopiero pojawienie się tych urządzeń i wsparcia spowoduje, że Internet Rzeczy na serio nabierze rozpędu.