Wszystko Co Musisz Wiedzieć o Komunikatach IoT Hub (…aby zostać ekspertem IoT)
Jednym z podstawowych elementów wspierających IoT wyprodukowanych przez Microsoft jest element o nazwie Azure IoT Hub. Jest to zaawansowane narzędzie, które pozwala nam na:
- zarządzanie urządzeniami
- autoryzację
- transmisję danych telemetrycznych, plików
- konfigurację urządzenia za pomocą mechanizmu zwanego Device Twin
Dodatkowo zapewnia funkcjonalność Azure IoT Edge, o której opowiemy w kolejnych wpisach.
Cztery podstawowe formy wymiany danych które udostępnia nam IoT Hub to:
- Standard messages
- Device Twin
- Direct Methods
- Upload plików
Dane Telemetryczne – Standard Messages
Przesyłanie danych telemetrycznych odbywa się za pomocą standardowych wiadomości. Są one klasycznymi JSON-ami podzielonymi na trzy części: propercje systemowe, propercje użytkownika oraz główną wiadomość – body, w którym znajdują się dane telemetryczne przesyłane do chmury.
Dodatkowo umożliwia przesyłanie komunikatów chmura – urządzenie. Jest to asynchroniczna metoda transportu danych. W momencie gdy urządzenie jest online, następuje synchronizacja wiadomości pomiędzy hubem i devicem.
Device Twin
Metoda pozwalająca na przechowywanie informacji w postaci JSON-a, które są synchronizowane z urządzeniem w trakcie jego cyklu życia. Pozwala ona na wymianę drobnej konfiguracji, ustawień, lub statusów procesów wolnozmiennych.
Struktura JSON-a jest podzielona na dwie części:
- Tagi – które możemy ustawiać sami.
- Properties – służą one do wymiany danych pomiędzy urządzeniem a chmurą.
Direct Methods
Metody bezpośrednie pozwalają zachować nam pozory synchroniczności w komunikacji z urządzeniami. Wywołując daną metodę, backend chmurowy oczekuje na odpowiedź od urządzenia. W momencie braku odpowiedzi urządzenia zostaje zwrócony błąd timeoutu.
Jest to dobra forma komunikacji do obsłużenia krytycznych poleceń dla urządzeń np.
- przeprowadzenia restartu aplikacji
- zatrzymania lub włączenia jakiejś funkcjonalności z cyklu praca wentylatora
Komunikacja z backend do IoT Hub realizowana jest po http, natomiast z IoT Hub do urządzenia po AMQP lub MQTT w zależności od ustawień komunikacyjnych urządzenia.
Scenariusze Użycia Poszczególnych Komunikatów
Standardowe zbieranie danych telemetrycznych
Dzięki wykorzystaniu stadard messages, jesteśmy w stanie zbudować systemu zaawansowane monitoringu różnego rodzaju urządzeń, począwszy od klasycznych urządzeń pomiarowych, robotyki aż po zwykłe komputery klasy PC.
Dobrą praktyką mocno rozpowszechnianą przy tworzeniu architektury takich systemów jest podział na dwie ścieżki procesowania danych:
- hot path
- cold path.
Pierwsza z nich służy głównie procesowaniu danych w czasie rzeczywistym, co pozwala na różnego rodzaju obliczenia fast data lub konstrukcję systemów zdarzeniowych.
Druga ścieżka – chłodna pozwala na gromadzenie danych do przyszłych analiz typu Big Data, szkolenia modeli ML i tym podobnych rzeczy.
Restart aplikacji na urządzeniach
W procesie życia urządzeń dochodzi do sytuacji, gdzie chcemy wymusić restart działania aplikacji. Dobrym wzorcem, który możemy wykorzystać do tego typu operacji jest poniższy schemat.
Operacja rozpoczyna się od wywołania metody bezpośredniej, która w orkiestratorze (lub aplikacji kontrolerze) wymusza akcję restartu wskazanej aplikacji. Po operacji w Device Twin jest rejestrowany czas, kiedy aplikacja została zrestartowana.
Update oprogramowania w podejściu klasycznym
W przypadku urządzeń nie wykorzystujących IoT Edga, implementacja procesu update’u oprogramowania może wyglądać w następujący sposób.
Za pomocą direct method wywołujemy metodę pozwalającą na rozpoczęcie procesu aktualizacji poszczególnych aplikacji na urządzeniu. Następnie proces update’u rejestrowany jest w Device Twin.
Po zakończeniu procesu następuje restart urządzenia i reconnect.
Monitoring otoczenia połączony z cognitive services (file upload)
Ciekawym scenariusze z pogranicza IoT i AI jest system monitoringu, który pozwoli nam na kategoryzowanie obiektów za pomocą zdjęć.
W przypadku wyst ąpienia odpowiedniego eventu (np. czujnik ruchu wykryje aktywność) w monitorowanym środowisku, urządzenie wykonuje zdjęcie, po czym przesyła je do Azure Storage, po czym zostaje uruchomiona funkcja, który prześle zdjęcie do klasyfikacji i na jej podstawie przeniesie go do innego kontenera, uzupełniając jego metadane.
Po przeniesieniu uruchomi funkcję odpowiedzialną za obsługę danego kontenera i podejmie dalsze działania.
Zaawansowane scenariusze
Jeśli chcielibyśmy przyjrzeć się kilku ciekawym predefiniowanym rozwiązaniom end to end z zakresu IoT, to w ramach Azure IoT Suite, Microsoft udostępnia nam trzy przykładowe scenariusze, z kompletną już architekturą oraz gotowymi komponentami, które możemy umieścić w naszej subksrypcji:
Co Dalej?
Jeżeli ciekawią Cię inne usługi dookoła chmury publicznej, nie zapomnij pobrać zestawienia usług Microsoft Azure, Amazon Web Services i Google Cloud Platform.
Zdrówko!
Już 21 czerwca dowiesz się, jak możesz wykorzystać AI w Twojej firmie. Damian Mazurek i Piotr Kalinowski wprowadzą Cię w świat sztucznej inteligencji i LLM.
Przed nami nowy rozdział! Chmurowisko dokonało połączenia z polskim Software Mind – firmą, która od 20 lat tworzy rozwiązania przyczyniające się do sukcesu organizacji z całego świata…
Grupa Dynamic Precision podjęła decyzję o unowocześnieniu swojej infrastruktury. Razem z Oracle Polska prowadzimy migrację aplikacji firmy do chmury OCI.
Już 21 czerwca dowiesz się, jak możesz wykorzystać AI w Twojej firmie. Damian Mazurek i Piotr Kalinowski wprowadzą Cię w świat sztucznej inteligencji i LLM.
Zapisz się do naszego newslettera i
bądź z chmurami na bieżąco!
z chmur Azure, AWS i GCP, z krótkimi opisami i linkami.