Przegląd MQTT

Podstawy MQTT Obraz tytułowy

W stale ewoluującym krajobrazie Internetu rzeczy (IoT) i protokołów komunikacji w czasie rzeczywistym, MQTT stał się potężnym i wszechstronnym rozwiązaniem.

MQTT, który kiedyś był skrótem od Message Queue Telemetry Transport (więcej na ten temat poniżej), jest lekkim i wydajnym protokołem przesyłania wiadomości zaprojektowanym dla urządzeń o ograniczonych zasobach i zawodnych sieciach.

Dlatego w tym poście chcę zagłębić się w historię, zastosowania oraz zalety i wady MQTT.

Historia MQTT

Początki MQTT sięgają późnych lat 90-tych, kiedy to Andy Stanford-Clark i Arlen Nipper zaprojektowali protokół do monitorowania rurociągów naftowych. Monitorowanie długich rurociągów w odległych obszarach może oczywiście stanowić pewne wyzwanie.

Pomysł polegał więc na stworzeniu czegoś, co byłoby niezwykle lekkie, tak aby można było uzyskać niezbędne informacje (status, temperatura itp.) z urządzeń znajdujących się w szczerym polu.

Zdjęcie zdalnego rurociągu, który może być monitorowany za pomocą MQTT

Początkowym celem było opracowanie protokołu, który zminimalizowałby wykorzystanie przepustowości przy jednoczesnym zapewnieniu niezawodnej transmisji danych. Innymi słowy, pomysł polegał na ułatwieniu komunikacji telemetrycznej między czujnikami rurociągu naftowego i zminimalizowaniu wykorzystania przepustowości.

Jego model publikuj-subskrybuj umożliwiał czujnikom i urządzeniom przesyłanie danych do centralnego węzła, gdzie subskrybenci (często systemy monitorowania) mogli odbierać i przetwarzać te informacje.

Gdy pojawiły się produkty IoT, a Raspberry Pis stał się rzeczą, sprawiło to, że MQTT stał się pionierskim sposobem na komunikację urządzeń.

W ten sposób MQTT szybko wykroczył poza swoje pierwotne zastosowanie w telemetrii.

Ta ewolucja spowodowała znaczącą zmianę nazwy.

Początkowo MQTT oznaczało MQ Telemetry Transport, gdzie MQ oznaczało Message Queue (mimo że nie używało kolejek komunikatów - więcej na ten temat poniżej).

Jednak wraz ze wzrostem jego popularności i dywersyfikacją zastosowań, protokół ewoluował poza zastosowania skoncentrowane na telemetrii. Teraz można na przykład sterować urządzeniami za pomocą MQTT.

W rzeczywistości, jeśli czytałeś nasz biuletyn w tym tygodniu, to już o tym wiesz, MQTT nie oznacza już określonego zestawu słów.

Zgadza się - MQTT oznacza po prostu MQTT.

Zdjęcie czujnika inteligentnego domu, którym można sterować za pomocą MQTT

Obecnie krajobraz aplikacji jest znacznie bardziej rozległy i zróżnicowany niż w latach 90-tych.

Poza tradycyjnym zastosowaniem w telemetrii, MQTT jest obecnie kamieniem węgielnym ekosystemów IoT (w tym PiCockpit), umożliwiając płynną komunikację między urządzeniami, czujnikami i aplikacjami.

Jego wydajność i lekkość sprawiają, że jest to idealny wybór dla środowisk o ograniczonych zasobach, takich jak systemy wbudowane i mikrokontrolery.

Jak to działa

MQTT wykorzystuje model wydawca-subskrybent. Oznacza to, że rdzeniem architektury MQTT są dwa kluczowe komponenty: wydawcy i subskrybenci.

Komponenty te komunikują się za pośrednictwem centralnego brokera, który działa jako pośrednik odpowiedzialny za kierowanie wiadomości do odpowiednich miejsc docelowych.

Masz więc trzy urządzenia, czujniki lub aplikacje, które muszą się ze sobą komunikować, takie jak laptop, Raspberry Pi i router. Jeśli podłączysz Raspberry Pi i laptopa do Wi-Fi za pośrednictwem routera, będziesz mógł użyć routera jako pośrednika do połączenia Pi i laptopa.

W szczególności, urządzenia wysyłają wiadomości w oparciu o tematy.

To słowo kluczowe w świecie MQTT.

Tematy to bardzo lekkie informacje. Informują, czy urządzenie jest włączone lub wyłączone, jaka jest jego temperatura, adres IP itp. Tematy nie dostarczają nieskończonej ilości informacji.

To właśnie sprawia, że MQTT jest tak hiperwydajny i stabilny.

Jest to również idealne rozwiązanie do monitorowania Raspberry Pis za pomocą PiCockpit. Ponieważ zapewnia spójne i niezawodne połączenie między urządzeniami.

Wspaniałe jest to, że tematy działają w dość oczywisty sposób. Temat obraca się wokół ciągów tekstów oddzielonych ukośnikami do przodu, np:

myRaspberryPis / livingRoomPi / temperatura

I ten temat służy jako kanał wiadomości, który wysyła temperaturę Raspberry Pi w salonie.

Broker odbiera wiadomość i przechowuje ją tymczasowo.

Następnie urządzenia subskrybują określone tematy u brokera, aby uzyskać te informacje.

To również sprawiło, że nazwa MQTT od początku była błędna. Ten model publikowania-subskrybowania bardzo różni się od kolejkowania wiadomości, w którym dane są przechowywane do momentu, gdy klienci ich potrzebują.

Zastosowania MQTT

Jak widać, MQTT jest świetnym rozwiązaniem dla ekosystemu IoT. Umożliwia wydajną komunikację między różnymi urządzeniami, czujnikami i aplikacjami, nawet gdy sieć jest fatalna.

To właśnie sprawia, że jest to idealne rozwiązanie dla scenariuszy z ograniczoną przepustowością i niestabilnymi połączeniami.

Można go używać do urządzeń takich jak inteligentne termostaty, światła i kamery bezpieczeństwa, aby płynnie się komunikować. Na przykład czujnik temperatury może publikować dane do brokera MQTT, a termostat zasubskrybowany do tematu może odbierać i działać na podstawie tych informacji w czasie rzeczywistym.

Przy okazji powinienem wspomnieć, że są to rzeczy, w których PiCockpit może ci pomóc.

Statek monitorujący pogodę

W warunkach przemysłowych fabryki i linie produkcyjne wykorzystują MQTT do monitorowania maszyn, gromadzenia danych na temat wydajności operacyjnej i zdalnego sterowania procesami. MQTT naprawdę zintegrowało się z wszelkiego rodzaju zdalnymi branżami.

Weźmy na przykład stacje monitorowania pogody w odległych obszarach lub na morskich platformach wiertniczych. Aby uzyskać informacje do i z tych lokalizacji, MQTT działa naprawdę doskonale.

Zalety

MQTT jest bardzo wydajny. Jego lekka konstrukcja minimalizuje narzut transmisji danych. Format binarny i kompaktowy nagłówek sprawiają, że jest to doskonały wybór dla urządzeń o ograniczonej mocy obliczeniowej i przepustowości.

Jest również bardzo niezawodny. Model publikuj-subskrybuj zapewnia niezawodne dostarczanie wiadomości. Subskrybenci mogą otrzymywać nieodebrane wiadomości po przejściu do trybu online, co zapobiega utracie danych.

A dla firm, które chcą z niego korzystać, jest on super skalowalny. Architektura pozwala na łatwe skalowanie, gdy do sieci dołącza więcej urządzeń lub subskrybentów. Brokerzy mogą wydajnie obsługiwać wielu wydawców i subskrybentów bez znaczącego spadku wydajności.

Niemniej jednak, podobnie jak wszystkie protokoły, ma on pewne wady.

Wady

Chociaż MQTT oferuje podstawowe mechanizmy bezpieczeństwa, takie jak uwierzytelnianie za pomocą nazwy użytkownika i hasła, może to nie być wystarczające w przypadku bardzo wrażliwych aplikacji. Dlatego czasami ważne jest, aby korzystać ze środków bezpieczeństwa, takich jak szyfrowanie SSL/TLS i zaawansowane uwierzytelnianie.

Kolejną wadą jest utrata danych. Domyślnie brokerzy MQTT nie przechowują wiadomości, co może skutkować utratą danych, jeśli subskrybent jest offline, gdy urządzenie publikuje wiadomość.

Oczywiście można to postrzegać jako zaletę pod względem bezpieczeństwa, ponieważ nie ma zbyt wielu danych, do których można uzyskać dostęp.

Prawdą jest jednak, że trwałe przesyłanie wiadomości wymaga dodatkowej konfiguracji.

Podczas gdy sam MQTT jest stosunkowo prosty (szczególnie w przypadku automatyki domowej), wdrożenie pełnego ekosystemu MQTT z brokerami, wydawcami i subskrybentami może stać się skomplikowane.

Chociaż MQTT jest dość skalowalny, firmy i organizacje mogą zdecydowanie zmagać się z jego utrzymaniem.

Jak PiCockpit wykorzystuje MQTT

PiCockpit, nasz ulubiony sposób monitorowania i kontrolowania Raspberry Pis, wykorzystuje moc MQTT, oferując płynną i wydajną kontrolę nad siecią urządzeń.

Wykorzystując MQTT jako protokół komunikacyjny, PiCockpit zapewnia użytkownikom kompleksowy zestaw narzędzi do zdalnego zarządzania flotą Raspberry Pi, co czyni go niezbędnym narzędziem dla entuzjastów, programistów i profesjonalistów.

Przycisk PiCockpit MQTT

Zasadniczo PiCockpit umożliwia użytkownikom monitorowanie różnych aspektów ich urządzeń Raspberry Pi, takich jak wykorzystanie procesora i pamięci, statystyki sieciowe i podłączone komponenty sprzętowe.

Poszczególne urządzenia zbierają informacje i udostępniają je w sieci za pomocą architektury publikowania i subskrybowania MQTT. Każde Raspberry Pi działa jako klient MQTT, zdolny zarówno do publikowania, jak i subskrybowania określonych tematów, umożliwiając wymianę danych w czasie rzeczywistym.

Jedną z kluczowych zalet wykorzystania go w PiCockpit jest jego lekka natura, która doskonale pasuje do środowiska urządzeń Raspberry Pi o ograniczonych zasobach.

Wydajne pakowanie wiadomości i niski narzut zapewniają, że nawet urządzenia o ograniczonej mocy obliczeniowej mogą uczestniczyć w wymianie danych bez znaczącego spadku wydajności.

Podejście PiCockpit wykracza poza zwykłe monitorowanie danych. Ułatwia zdalne zarządzanie, umożliwiając wykonywanie poleceń na urządzeniach Raspberry Pi ze scentralizowanego pulpitu nawigacyjnego.

Subskrybując odpowiednie tematy, użytkownicy mogą wyzwalać działania, takie jak aktualizacje oprogramowania, ponowne uruchamianie systemu lub niestandardowe skrypty na urządzeniach.

Ta dwukierunkowa komunikacja zapewnia, że PiCockpit nie jest tylko pasywnym narzędziem do monitorowania, ale aktywną platformą do zarządzania urządzeniami.

Co więcej, wykorzystanie MQTT w PiCockpit sprzyja łatwej skalowalności projektów.

Wraz ze wzrostem liczby monitorowanych urządzeń, broker MQTT płynnie obsługuje rosnący przepływ danych i komunikatów. Ta skalowalność jest świadectwem jego nieodłącznej zdolności do zarządzania wieloma klientami bez uszczerbku dla wydajności.

PiCockpit monitoruje i kontroluje Raspberry Pis

Podsumowując, integracja MQTT w PiCockpit pokazuje wszechstronność i wydajność protokołu w dziedzinie zdalnego zarządzania urządzeniami.

W ten sposób PiCockpit umożliwia nie tylko monitorowanie, ale także łatwe zarządzanie flotą Raspberry Pi. Wszystko, co musisz zrobić, to zainstalować klienta PiCockpit na swoim Raspberry Pi i gotowe!

Wniosek

MQTT to wspaniały sposób, aby urządzenia mogły ze sobą rozmawiać.

Jest lekki. Jest niezawodny. I jest bardzo wszechstronny.

Co najważniejsze, nie jest to już tylko protokół komunikacyjny do pasywnego zbierania danych. Teraz można go używać do aktywnego zdalnego sterowania urządzeniami i czujnikami.

MQTT jest cennym narzędziem w arsenale protokołów umożliwiających płynną i wydajną komunikację.

Co najlepsze, przy wszystkich projektach IoT i automatyki domowej w dzisiejszych czasach, MQTT może uczynić twoje życie lepszym.

Możesz zainstalować PiCockpit na swoim Raspberry Pi i samemu sprawdzić wszystkie jego zalety!

Kliknij tutaj, aby sprawdzić, jak wykonać fotorezystor za pomocą Pico W przy użyciu MQTT. - to świetny mały projekt, aby sprawdzić moc i wydajność MQTT.

Co zrobiłbyś z MQTT, aby zmienić swoje codzienne życie?

Komentarzy: 2

  1. Сергей sierpień 30, 2023 o 8:52 am

    Автор статьи опоздал с написанием статьи о mqtt лет так на десять....

    • Adam sierpień 30, 2023 o 9:38 am

      Лучше поздно, чем никогда. Да, Сергей?

Pozostaw komentarz