Dzisiaj chcemy kontynuować dla Was temat IOT. Opowiemy Wam dzisiaj o bardziej technicznych aspektach działania urządzeń internetu rzeczy, stosach protokolarnych i wyzwaniach którym sprostać mają inżynierowie. Jeśli jesteście ciekawi, to zapraszamy do lektury!

 

Stos sieciowy

Sieci komputerowe budowane są w sposób warstwowy i przedstawiane w oparciu o pewien model sieciowy np. OSI. Podzielenie poszczególnych odpowiedzialności jak np. identyfikator IP czy numer portu na inne warstwy sprawia, że protokoły mogą być rozwijane niezależnie od siebie i tym samym pozwala różnym organizacjom skupić się na różnych problemach na poszczególnych warstwach. Dwa najbardziej znane modele to referencyjny model OSI, który dokładnie dzieli poszczególne protokoły na warstwy oraz model TCP/IP funkcjonujący w dzisiejszym Internecie, który jest uproszczeniem modelu OSI.

Rysunek 1 - Porównanie modelów OSI i TCP/IP, źródło: geeksforgeeks.com

Jak IOT ma się do stosu sieciowego?

Odpowiadając na to pytanie należy wskazać na to, że urządzenia IOT działają w sieciach i muszą transportować dane do systemów je agregujących. Dodatkowo w poprzednim wpisie wskazaliśmy choćby na różnorodność technologii które używane są do dostarczenia danych w pierwszym etapie komunikacji (np. komunikacji sensora z jakimś lokalnym systemem agregującym te dane). Najważniejszymi elementami, które odróżniają standardową komunikację naszego komputera z Internetem od komunikacji urządzeń IOT są protokoły znajdujące się w warstwie aplikacji oraz w warstwie łącza danych.

Rysunek 2: Protokoły używane w IOT, model TCP/IP, źródło: fb.com/IoTResearch

 

Możemy zauważyć, że oprócz standardowego znanego wszystkim protokoły HTTP używanego między innymi w aplikacjach webowych mamy także specyficzne protokoły jak CoAP, MQTT, XMPP, DDS czy AMQP. W warstwie łącza danych znajdują się natomiast protokoły specyficzne do danego typu komunikacji np. Ethernet czy WiFi może być używane jeśli dane urządzenie końcowe ma dostęp do Internetu z użyciem przewodu czy fal. Jeśli nie ma zawsze zostaje możliwość użycia dostępu komórkowego (cellular) czy choćby WiMax.


Rysunek 3: Diagram przedstawiający komunikację urządzenia IOT z siecią komórkową., źródło: EMnify

 

Modele komunikacji

Zanim jednak zagłębimy się w konkretne protokoły, należałoby powiedzieć o tym jak generalnie wygląda model komunikacji samego serwera z klientami oraz czym właściwie jest serwer. Serwer może być dowolnym urządzeniem działającym w sieci oferującym pewne usługi. W kontekście IOT serwer zwykle oznacza to samo co broker czy pewne urządzenie z oprogramowaniem agregującym dane od klientów (urządzeń IOT z sensorami).  Wyróżniamy następujące modele komunikacji w IOT:

 

  • Request-Response - Przykładem może być inteligentny termostat, który wysyła żądanie do serwera w chmurze, aby pobrać dane pogodowe i dostosować optymalne ustawienia temperatury w domu użytkownika. Inteligentny termostat pełni rolę klienta, a serwer chmury dostarcza dane pogodowe w odpowiedzi na żądanie. Tutaj zastosowanie mogą mieć takie protokoły jak HTTP oraz REST API, które jest z tym związane.

Rysunek 4: Model komunikacji request response, źródło InterviewBit


  • Publish-Subscribe - Przykładem mogą być czujniki środowiskowe (temperaturowe, wilgotności, zanieczyszczenia powietrza) zainstalowane w systemie transportu publicznego miasta. Te czujniki publikują dane w czasie rzeczywistym na temat poszczególnych parametrów. Różne aplikacje i usługi, takie jak aplikacje pogodowe, systemy zarządzania ruchem i systemy monitorowania zanieczyszczeń, subskrybują te dane, aby dostarczać informacje użytkownikom i podejmować świadome decyzje. Ten model ma związek z wzorcem projektowym często używanym przez programistów (Publish-Subscribe/Observer).

Rysunek 5: Model komunikacji Publish/Subscribe, źródło: geeksforgeeks.com


  • Push-Pull - Przykładem może być rolniczy system IOT w którym czujniki wilgotności gleby wysyłają dane dotyczące warunków gleby do centralnego repozytorium danych. Rolnicy za pomocą swoich smartfonów pobierają te dane w celu monitorowania poziomów wilgotności w swoich polach. Czujniki wypychają dane w miarę ich dostępności, a rolnicy pobierają dane w razie potrzeby. Stosowanie osobnych kolejek zapewnia decoupling pomiędzy publikującym i konsumującym wiadomości.

Rysunek 6 - model komunikacji push-pull, źródło geeksforgeeks.com


  • Exclusive Pair - Przykładem może być tutaj system zabezpieczeń domowych, który wykorzystuje komunikację opartą na WebSocket (polecamy jeszcze raz spojrzeć na Rysunek 2). Panel sterowania systemem zabezpieczeń utrzymuje ciągłe połączenie z serwerem umieszczonym w chmurze, umożliwiając aktualizacje w czasie rzeczywistym i zdalne sterowanie. Serwer śledzi otwarte połączenie, zapewniając natychmiastową komunikację między systemem IOT domu a serwerem centralnym. Ten model pozwala na natychmiastowe powiadomienia i zdalne sterowanie systemem zabezpieczeń za pomocą aplikacji mobilnej.

Rysunek 7 - Model komunikacji Exclusive Pair, źródło geeksforgeeks.com

 

Jak można zauważyć po powyższych przykładach zastosowanie określonego protokołu w warstwie aplikacyjnej popycha nas w kierunku określonego modelu komunikacji np. wybranie protokołu MQTT sprawia, że używamy modelu publish-subscribe, HTTP to client-server, a WebSockets to Exclusive Pair. 

 

Zastosowanie IOT

Ze względu na obniżenie kosztów produkcji podzespołów oraz rozwój technologiczny, w tym rozwój sztucznej inteligencji (polecamy poprzednie artykuły na ten temat) niedługo sensory będą umieszczane w każdym aspekcie przemysłu. Jeśli dana firma w swojej dziedzinie nie zastosuje nowoczesnych rozwiązań może stać się mało konkurencyjna na rynku. Najważniejsze rynki, w których obecnie stosuje się rozwiązania IOT to między innymi:

  • Smart ekologia - polega na zajmowaniu się kontrolą i monitorowaniem czynników środowiskowych, takich jak zanieczyszczenie, katastrofy naturalne, gospodarka odpadami i planowanie obszarów zielonych. Przykładowe zastosowania IOT obejmują monitorowanie pogody, zanieczyszczenia powietrza, hałasu, wykrywanie pożarów lasów oraz rozpoznawanie powodzi rzecznych.
  • Smart energia - system IOT w tej dziedzinie może polegać na zarządzaniu dostawą energii elektrycznej, z użyciem inteligentnych liczników, sprzętu elektrycznego sterowany zdalnie. Wśród potencjalnych zastosowań takich systemów IOT można także wymienić aktywną reakcję na zapotrzebowanie energetyczne raportowanie o zużyciu energii oraz prognozowanie emisji dwutlenku węgla (CO2).
  • Smart Sklepy - Systemy IOT w tej dziedzinie obejmują zarządzanie zapasami (np. inteligentne półki), wygodne płatności, oraz optymalizację czy automatyzację zarządzania łańcuchem dostaw.
  • Smart rolnictwo - Z tą dziedziną wiąże się wykorzystanie technologii, takich jak czujniki, aplikacje monitorujące pogodę, automatyzacja w nawożeniu i efektywne zarządzanie zasobami naturalnymi stają się kluczowe dla przemysłu rolniczego. Dzięki nowym technologiom, takim jak drony, sieci czujników i chmurowe platformy do zarządzania danymi IoT wspiera rolników w podejmowaniu lepszych decyzji, co zwiększenia efektywności.
  • Smart medycyna - Systemy IOT w medycynie mogą składać się z noszonych przez pacjentów czujników, czujników obszaru ciała oraz systemów do analizy dużych zbiorów danych. Potencjalne zastosowania smart medycyny obejmują zdalne monitorowanie zdrowia pacjenta czy monitorowanie jego kondycji fizycznej

Podsumowanie

Udało nam się dzisiaj przedstawić wam podstawowe informacje z zakresu technicznego systemów IOT, modele komunikacji oraz realne zastosowanie w różnych dziedzinach rynku. Za tydzień kontynuujemy temat IOT, więc jeśli jesteście zainteresowani, to zapraszamy!

 

Źródła: