Czym jest MQTT? Praktyczne wprowadzenie

MQTT – Message Queuing Telemetry Transport (Komunikacja Telemetrii Kolejkowania Wiadomości)

MQTT (Message Queuing Telemetry Transport) to protokół przesyłania wiadomości dla ograniczonych sieci o niskiej przepustowości oraz urządzeń IoT o ekstremalnie wysokich opóźnieniach. Ponieważ MQTT specjalizuje się w środowiskach o niskiej przepustowości i wysokich opóźnieniach, jest idealnym protokołem do komunikacji maszyna-maszyna (M2M).

MQTT jest obsługiwany za pośrednictwem centralnego brokera i działa na zasadzie wydawcy/subskrybenta. Oznacza to, że nadawca i odbiorca nie mają bezpośredniego połączenia. Źródła danych raportują swoje dane za pośrednictwem publikacji, a wszyscy odbiorcy zainteresowani określonymi wiadomościami („oznaczeni tematem (topic)”) otrzymują dostarczone dane, ponieważ zarejestrowali się jako subskrybenci.

MQTT w IoT i IIoT jest używany do łączenia środowisk chmurowych. Dowiedz się wszystkiego, co chcesz wiedzieć o korzystaniu z MQTT w naszym praktycznym wyjaśnieniu i przykładzie, skupionym na przemyśle oraz wyjaśnieniach przemysłowych .

 

1. Co oznacza MQTT?

MQTT to skrót od Message Queuing Telemetry Transport (Komunikacja Telemetrii Kolejkowania Wiadomości). Jest to niezwykle prosty i lekki protokół przesyłania wiadomości (subskrybuj i publikuj) przeznaczony dla ograniczonych urządzeń oraz sieci o dużym opóźnieniu, niskiej przepustowości lub niestabilnych sieciach. Jego założenia konstrukcyjne mają na celu zmniejszenie wykorzystania sieci i wymagań dotyczących zasobów urządzeń oraz zapewnienie bezpieczeństwa dostarczania danych. Ponadto zasady te są korzystne dla urządzeń M2M (machine-to-machine) lub IoT, ponieważ wydajność baterii i przepustowość są bardzo ważne.

2. Co to jest temat (topic) MQTT?

Dzięki MQTT urządzenia IoT o ograniczonych zasobach mogą wysyłać lub publikować informacje na określony temat (topic) na serwerze, który działa jako broker wiadomości MQTT. Następnie broker przesyła informacje do klientów, którzy wcześniej zasubskrybowali temat (topic) klienta. Dla człowieka temat (topic) wygląda jak hierarchiczna ścieżka pliku. Klienci mogą subskrybować określony poziom hierarchii tematu (topic) lub używać symbolu wieloznacznego, aby subskrybować wiele
poziomów.

Protokół MQTT jest dobrym wyborem dla sieci bezprzewodowych, które mają różne opóźnienia z powodu sporadycznych ograniczeń przepustowości lub niestabilnych połączeń. Jeśli połączenie od subskrybującego klienta do brokera zostanie przerwane, broker buforuje wiadomości i wysyła je do subskrybenta, gdy subskrybent będzie ponownie online. Natomiast gdy połączenie od klienta publikującego do brokera zostanie rozłączone bez powiadomienia, broker może się rozłączyć i wysłać subskrybentowi buforowaną wiadomość z instrukcjami od wydawcy.

3. Co to jest broker MQTT?

Struktura brokera MQTT / klienta MQTT

Broker MQTT jest centrum każdego protokołu publikującego/subskrybującego. W zależności od implementacji, broker może nawet zarządzać jednocześnie tysiącami podłączonych klientów MQTT. Broker jest odpowiedzialny za filtrowanie, odbieranie wszystkich wiadomości, określanie, kto
zasubskrybował każdą wiadomość i wysyłanie wiadomości do tych subskrybowanych klientów. Broker obsługuje również sesje wszystkich stałych klientów, w tym subskrypcje i pominięte wiadomości. Innym zadaniem brokera jest uwierzytelnianie i autoryzacja klientów. Zazwyczaj broker jest rozszerzalny, co ułatwia niestandardowe uwierzytelnianie, autoryzację i integrację z systemami backendowymi. Integracja jest szczególnie ważna, ponieważ broker często jest komponentem bezpośrednio wystawionym w Internecie, obsługuje wielu klientów i musi przekazywać wiadomości do analizy niższego szczebla oraz systemów przetwarzania. Krótko mówiąc, broker jest centralnym hubem, przez który musi być kierowana każda wiadomość. Dlatego ważne jest, aby twój broker był wysoce skalowalny, mógł być zintegrowany z systemami backendowymi, był łatwy do monitorowania i oczywiście był odporny na awarie. Brokerzy MQTT wykorzystywani w branży to na przykład HiveMQ MQTT Broker i mosquitto od cedalo. Dostawcy chmury, tacy jak Microsoft i Amazon, również dostarczają własnych brokerów MQTT z Azure IoT Hub i AWS IoT Core.

4. Co to jest ładunek (payload) MQTT?

Wiadomości są udostępniane innym urządzeniom lub oprogramowaniu za pośrednictwem brokera wykorzystującego protokół MQTT. Każda wiadomość ma temat (topic), na podstawie którego może być dalej przetwarzana przez brokera. Ponadto każda wiadomość zawiera treść, tzw. ładunek (payload). Ładunek MQTT nie jest związany z określoną strukturą i może być swobodnie projektowany. Jednak pomocne jest określenie konkretnej struktury dla treści wiadomości, aby mogła ona zostać odczytana przez inne urządzenia lub oprogramowanie. Potencjalne struktury wiadomości to JSON, XML lub OPC UA. Zdefiniowana struktura umożliwia płynną komunikację wewnętrzną, tylko gdy wszystkie urządzenia i oprogramowanie komunikują się za pomocą tej samej struktury.

5. Co to jest klient MQTT i jak działa?

Wszystkie urządzenia i oprogramowanie, takie jak OPC Router, które są w jakiś sposób podłączone do brokera, są nazywane klientami MQTT. Klient może wysyłać wiadomości do brokera (publikować) i odbierać wiadomości od brokera (subskrybować). Wysyłając wiadomość do brokera, należy określić temat (topic) MQTT, który może zostać użyty do dalszego przetwarzania wiadomości. Wiadomości mogą być wysyłane z różną jakością usługi (QoS):

    • Jakość usługi 0: Wiadomość klienta jest wysyłana dokładnie raz, niezależnie od tego, czy dotarła do brokera.
    • Jakość usługi 1: Wiadomość klienta jest wysyłana wielokrotnie, aż broker odpowie potwierdzeniem odbioru. Może to spowodować, że wiadomość dotrze do brokera wiele razy.
    • Jakość usługi 2: Klient wysyła wiadomość raz i jednocześnie upewnia się, że dotarła do brokera. Komunikacja QoS 2 wymaga większej przepustowości niż QoS 0 lub 1.

Jednocześnie klient może subskrybować na brokerze temat MQTT, dzięki czemu broker automatycznie otrzymuje wszystkie informacje, które docierają do niego z tym tematem MQTT. Na przykład plant1 / hall1 / temperature. Używając symboli wieloznacznych, klient może otrzymywać wiele informacji od brokera. Na przykład otrzymuje wszystkie wpisy z listy plant1 / hall1 z tematem MQTT plant1 / hall1 / #. Z tematem plant1 / + / temperature wysyłane są wszystkie wpisy dotyczące temperatury z plant1.

Klient MQTT posiada funkcję „Last Will”. Pozwala ona wysyłać ostatnią wiadomość kiedy połączenie z brokerem zostanie utracone, dzięki czemu błąd połączenia jest zauważany przez brokera i może zostać przekazany użytkownikowi.

6. Kiedy należy stosować MQTT, a kiedy nie?

Dzięki MQTT dane są wysyłane ze sporej liczby maszyn do jednego miejsca docelowego – chmury – gdzie dane mogą być analizowane, interpretowane i przekazywane dalej.

Chmura hostuje brokera MQTT – pośrednika między maszynami i/lub ludźmi. Jest to ważna różnica, ponieważ maszyny nie komunikują się bezpośrednio ze sobą, ale za pośrednictwem brokera.

MQTT wykorzystuje koncepcję „tematów” (topics) do organizowania swoich danych oraz model publikowania/subskrybowania umożliwiający przekazywanie tematów innym stronom za pośrednictwem chmury.

Na przykład: system klimatyzacji wysyła (lub publikuje) dane o „stanie” swoich sprężarek do chmury. Wszystkie zainteresowane strony z zatwierdzonymi uprawnieniami – maszyna lub człowiek – mogą subskrybować ten temat, aby otrzymywać informacje.

Subskrybentami mogą być inżynierowie ds. konserwacji (człowiek), systemy zaopatrzenia w części (oprogramowanie/maszyna) lub systemy planowania konserwacji (oprogramowanie/maszyna). Nagle każdy aspekt cyklu życia maszyny staje się dostępny do wglądu, co stanowi ciekawą i wyjątkową okazję do wykorzystania tych informacji w celu znalezienia usterek, obniżenia kosztów, zwiększenia wydajności i zaplanowania działań w ramach IoT.

7. Do czego służy MQTT w IoT?

Słowo temat (topic) odnosi się do ciągu UTF-8, którego broker używa do filtrowania wiadomości dla każdego podłączonego klienta. Temat składa się z jednego lub więcej poziomów tematu. Każdy poziom tematu jest oddzielony ukośnikiem (separator poziomów). W porównaniu do kolejki wiadomości, tematy MQTT są bardzo proste. Klient nie musi tworzyć żądanego tematu przed opublikowaniem lub subskrypcją. Broker akceptuje każdy prawidłowy temat bez wcześniejszej inicjalizacji. Należy pamiętać, że każdy temat musi zawierać co najmniej jeden znak, a ciąg tematu dopuszcza spacje. Tematy są rozróżniane wielkością liter np. _myhome / temperature i _MyHome / Temperature to dwa różne tematy. Ponadto sam ukośnik jest prawidłowym tematem.

Zasadniczo możesz nazwać swoje tematy MQTT według własnego uznania. Istnieje jednak jeden wyjątek: __ Tematy, które zaczynają się od symbolu $, mają inny cel. __ Te tematy nie są częścią subskrypcji, jeśli subskrybujesz wielopoziomowy symbol zastępczy (placeholder) jako Temat (#). Tematy z symbolem $ są zarezerwowane dla wewnętrznych statystyk brokera MQTT. Klienci nie mogą zamieszczać wiadomości w tych tematach. Obecnie nie ma oficjalnego standardu dla takich tematów. Zwykle $ SYS / jest używany dla wszystkich poniższych informacji, ale implementacja brokerów jest różna. Sugestią dla tematów $ SYS jest MQTT-GitHub wiki.

8. Jak łatwo rozpocząć pracę z MQTT?

Aby zapewnić łatwy start, zaleca się użyć HiveMQ jako brokera MQTT. HiveMQ to broker oparty na otwartych standardach IoT. W rezultacie zapewnia dostęp do szerokiej gamy klientów MQTT. Został stworzony do szybkiego, wydajnego, niezawodnego przesyłania danych do i z podłączonych urządzeń oraz serwerów.

Protokół MQTT zapewnia prostą metodę wykonywania wiadomości przy użyciu modelu publikowania/subskrybowania. Dzięki temu jest odpowiedni szczególnie dla aplikacji IoT i chmurowych, takich jak czujniki o niskim poborze mocy lub urządzenia mobilne, takie jak telefony, komputery wbudowane lub mikrokontrolery.

We współpracy z OPC Router połączenia mogą być łatwo odpytywane. Pobierz brokera HiveMQ tutaj i przetestuj go samodzielnie.

Prosta komunikacja MQTT w praktyce

Protokół wiadomości MQTT jest szczególnie odpowiedni dla środowisk o niskiej przepustowości i dużym opóźnieniu, a także dla komunikacji maszyna-maszyna (M2M). Dlatego zasada publikuj-i subskrybuj, obsługiwana przez centralnego brokera, jest bardzo popularna w IoT.

Praktyczną zaletą komunikacji za pośrednictwem MQTT jest to, że odciąża ona sieć wewnętrzną i nadal może komunikować się z dowolną liczbą różnych systemów. Za pomocą specjalnego oprogramowania, takiego jak OPC Router, dane mogą być publikowane w innych systemach. Tego rodzaju systemami mogą być na przykład SAP, OPC UA, SQL lub REST. Dane ze źródeł nieobsługujących MQTT mogą być przesyłane do innych systemów w celu dalszego przetwarzania jako wydawca (publisher). Niezawodny protokół wiadomości MQTT może przyspieszyć komunikację
wewnętrzną i wykreować wydajną przepustowość.

To również może cię zainteresować

REST logo

Model architektoniczny REST stał się wiodącym standardem integracji systemów. Połączenie systemowe za pośrednictwem REST jest skuteczne i proste. Ze względu na bezstanowość tego modelu architektonicznego możliwa jest łatwa skalowalność, dzięki czemu REST jest szeroko stosowany w przemyśle. Zapewniamy niezbędną podstawową wiedzę na temat REST i REST API w naszej bazie wiedzy.

JSON

Potrzeba wymiany danych wzrosła wraz z internetem i ogólną siecią systemów komputerowych. W przypadku systemów internetowych niezależność platformy jest tutaj bardzo ważna. W tym celu dzięki JSON-owi ustanowiono czytelny dla ludzi i maszyn format danych, który oszczędza zasoby. Na temat JSON-a tutaj możesz znaleźć podstawową wiedzę praktyczną i przydatne wskazówki dotyczące jego wykorzystania.

OPC UA

OPC UA umożliwia ustandaryzowany dostęp do maszyn, urządzeń i innych systemów w Przemyśle 4.0, zapewniając tym samym niezależną od producenta wymianę danych. W naszej bazie wiedzy znajdziesz przegląd funkcjonalności i terminów najważniejszego protokołu komunikacyjnego dla przemysłu 4.0 i IIoT.

 MQTT

W naszej bazie wiedzy znajdziesz szczegółowe instrukcje krok po kroku dotyczące łączenia się z naszą wtyczką MQTT (zawarta w OPC Router) dla następujących obszarów: Amazon AWS IoT Cloud, Microsoft Azure IoT Hub, IBM Watson, Google IoT Core i Siemens MindSphere IoT.

Pozwól swoim systemom komunikować się ze sobą przy wykorzystaniu protokołu MQTT

Przetestuj OPC Router z wtyczką MQTT bezpłatnie i bez zobowiązań już teraz lub zapisz się do naszego newslettera, aby być na bieżąco ze zmianami oraz nowościami.

Nie znalazłeś jeszcze odpowiednich informacji?

Tutaj znajdziesz więcej informacji o naszym oprogramowaniu, a także przegląd wszystkich dostępnych wtyczek OPC Router. Udostępniamy również bezpłatne demo, dzięki któremu możesz przetestować w pełni funkcjonalną wersję OPC Router.

Tel. +48 32 235 45 60     E-mail: info@inee.pl

Mapa strony: opc-router.pl

© Wszystkie prawa zastrzeżone INEE Sp. z o.o. 2024 - 2025

Go to OPC UA