Een overzicht van MQTT

De essentie van MQTT Titelafbeelding

In het steeds veranderende landschap van Internet of Things (IoT) en real-time communicatieprotocollen is MQTT naar voren gekomen als een krachtige en veelzijdige oplossing.

MQTT, wat vroeger een acroniem was voor Message Queue Telemetry Transport (meer daarover hieronder), is een lichtgewicht en efficiënt berichtenprotocol dat is ontworpen voor apparaten met beperkte bronnen en onbetrouwbare netwerken.

Dus in deze post wil ik wat dieper ingaan op de geschiedenis, de toepassingen en de voor- en nadelen van MQTT.

De geschiedenis van MQTT

De oorsprong van MQTT gaat terug tot eind jaren 1990 toen Andy Stanford-Clark en Arlen Nipper het protocol ontwierpen om oliepijpleidingen te bewaken. Het bewaken van lange pijpleidingen in afgelegen gebieden kan natuurlijk een hele uitdaging zijn.

Het idee was dus om iets te bedenken dat extreem licht was, zodat je de benodigde informatie (status, temperatuur, etc.) van apparaten in the middle of nowhere kon krijgen.

Een foto van een pijplijn op afstand die gemonitord kan worden met MQTT

Het oorspronkelijke doel was om een protocol te ontwikkelen dat het gebruik van bandbreedte zou minimaliseren en toch een betrouwbare gegevensoverdracht zou garanderen. Met andere woorden, het idee was om telemetriecommunicatie tussen sensoren van oliepijpleidingen te vergemakkelijken en het gebruik van bandbreedte te minimaliseren.

Dankzij het publish-subscribe-model konden sensoren en apparaten gegevens verzenden naar een centrale hub, waar abonnees (vaak monitoringsystemen) deze informatie konden ontvangen en verwerken.

Toen IoT-producten opkwamen en Raspberry Pis een ding werden, werd MQTT een baanbrekende manier om apparaten met elkaar te laten communiceren.

Zo breidde MQTT zich al snel uit buiten zijn oorspronkelijke toepassing in telemetrie.

Deze evolutie leidde tot een opmerkelijke naamsverandering.

Aanvankelijk stond MQTT voor MQ Telemetry Transport, waarbij MQ stond voor Message Queue (ondanks het feit dat er geen berichtwachtrijen worden gebruikt - meer daarover hieronder).

Naarmate het gebruik echter toenam en de toepassingen diverser werden, evolueerde het protocol verder dan telemetrie-centrisch gebruik. Nu kun je bijvoorbeeld dingen besturen met MQTT.

Sterker nog, als je deze week onze nieuwsbrief hebt gelezen, dan weet je dat als resultaat al, MQTT staat niet langer voor een specifieke set woorden.

Dat klopt - MQTT betekent gewoon MQTT.

Een foto van een smart home-sensor die kan worden bestuurd met MQTT

Tegenwoordig is het applicatielandschap veel uitgestrekter en diverser dan in de jaren '90.

Naast het traditionele gebruik in telemetrie is MQTT nu een hoeksteen van IoT-ecosystemen (waaronder PiCockpit), die naadloze communicatie tussen apparaten, sensoren en toepassingen mogelijk maakt.

De efficiëntie en het lichte gewicht maken het een ideale keuze voor omgevingen met beperkte bronnen, zoals embedded systemen en microcontrollers.

Hoe het werkt

MQTT gebruikt het publisher-subscriber model. Dit betekent dat de kern van de architectuur van MQTT bestaat uit twee belangrijke componenten: uitgevers en abonnees.

Deze componenten communiceren via een centrale broker, die fungeert als tussenpersoon die verantwoordelijk is voor het routeren van berichten naar de juiste bestemmingen.

Je hebt dus drie apparaten, sensoren of toepassingen die met elkaar moeten communiceren, zoals je laptop, je Raspberry Pi en je router. Als je de Raspberry Pi en je laptop op WiFi aansluit via de router, dan kun je de router gebruiken als tussenpersoon om de Pi en de laptop met elkaar te verbinden.

De apparaten verzenden berichten op basis van onderwerpen.

Dat is een sleutelwoord in de wereld van MQTT.

Topics zijn superlichte stukjes informatie. Ze vertellen je of een apparaat aan of uit staat, de temperatuur, het IP-adres, enz. Topics geven je geen eindeloze hoeveelheden informatie.

Dat maakt MQTT zo hyper-efficiënt en stabiel.

Het is ook perfect om bijvoorbeeld je Raspberry Pis te monitoren met PiCockpit. Omdat het je een consistente en betrouwbare verbinding tussen apparaten geeft.

Wat geweldig is, is dat onderwerpen heel duidelijk werken. Een onderwerp draait om reeksen teksten gescheiden door voorwaartse streepjes, zoals:

myRaspberryPis / livingRoomPi / temperatuur

En dat onderwerp dient als een berichtkanaal dat de temperatuur van de Raspberry Pi in de woonkamer doorstuurt.

De broker ontvangt het bericht en slaat het tijdelijk op.

En dan abonneren apparaten zich op specifieke onderwerpen op de makelaar om die informatie te krijgen.

Dit is ook wat de naam MQTT vanaf het begin een verkeerde benaming maakte. Dit publish-subscribe model is heel anders dan message queuing, waarbij gegevens worden opgeslagen totdat clients ze nodig hebben.

Toepassingen van MQTT

Zoals je kunt zien, is MQTT geweldig voor het IoT-ecosysteem. Het maakt efficiënte communicatie mogelijk tussen verschillende apparaten, sensoren en toepassingen, zelfs wanneer het netwerk verschrikkelijk is.

Dit maakt het ideaal voor scenario's met beperkte bandbreedte en onstabiele verbindingen.

Je zou het kunnen gebruiken om apparaten zoals slimme thermostaten, lampen en beveiligingscamera's naadloos met elkaar te laten communiceren. Een temperatuursensor kan bijvoorbeeld gegevens publiceren naar een MQTT broker en een thermostaat die geabonneerd is op het onderwerp kan die informatie in realtime ontvangen en erop reageren.

Dit zijn trouwens allemaal dingen waar PiCockpit je mee kan helpen.

Een schip dat het weer in de gaten houdt

In industriële omgevingen gebruiken fabrieken en productielijnen MQTT om machines te bewaken, gegevens over operationele efficiëntie te verzamelen en processen op afstand te besturen. MQTT is echt ingeburgerd in allerlei afgelegen industrieën.

Neem bijvoorbeeld weerstations in afgelegen gebieden of offshore booreilanden. Om informatie van en naar deze locaties te krijgen, werkt MQTT echt perfect.

Voordelen

MQTT is superefficiënt. Het lichtgewicht ontwerp minimaliseert de overhead van gegevensoverdracht. Het binaire formaat en de compacte header maken het een geweldige keuze voor apparaten met beperkte verwerkingskracht en bandbreedte.

Het is ook superbetrouwbaar. Het publish-subscribe model zorgt voor een betrouwbare aflevering van berichten. Abonnees kunnen gemiste berichten ontvangen zodra ze online komen, waardoor gegevensverlies wordt voorkomen.

En voor bedrijven die het willen gebruiken, is het super schaalbaar. De architectuur maakt het mogelijk om eenvoudig te schalen als meer apparaten of abonnees zich bij het netwerk aansluiten. Brokers kunnen efficiënt een groot aantal uitgevers en abonnees afhandelen zonder dat de prestaties daaronder lijden.

Niettemin heeft het, zoals alle protocollen, enkele nadelen.

Nadelen

Hoewel MQTT basisbeveiligingsmechanismen biedt zoals authenticatie met gebruikersnaam en wachtwoord, kan het zijn dat dit niet voldoende is voor zeer gevoelige toepassingen. Soms is het dus belangrijk om gebruik te maken van beveiligingsmaatregelen zoals SSL/TLS encryptie en geavanceerde authenticatie.

Een ander nadeel is het verlies van gegevens. Standaard slaan MQTT brokers geen berichten op, wat kan resulteren in gegevensverlies als een abonnee offline is wanneer een apparaat een bericht publiceert.

Natuurlijk kun je dit zien als een positief effect op de veiligheid, omdat er niet veel gegevens toegankelijk zijn.

Maar het is waar dat persistent messaging extra configuratie vereist.

Hoewel MQTT zelf relatief eenvoudig is (vooral voor domotica), kan het implementeren van een volledig MQTT ecosysteem met brokers, uitgevers en abonnees complex worden.

Dus hoewel MQTT behoorlijk schaalbaar is, kunnen bedrijven en organisaties zeker worstelen met onderhoud.

Hoe PiCockpit MQTT gebruikt

PiCockpit, onze favoriete manier om Raspberry Pis te monitoren en te besturen, maakt gebruik van de kracht van MQTT om naadloze en efficiënte besturing van een netwerk van apparaten te bieden.

Door gebruik te maken van MQTT als communicatieprotocol biedt PiCockpit gebruikers een uitgebreide toolset om hun Raspberry Pi-vloot op afstand te beheren, waardoor het een onmisbare tool is voor enthousiastelingen, ontwikkelaars en professionals.

De PiCockpit MQTT-knop

In de kern stelt PiCockpit gebruikers in staat om verschillende aspecten van hun Raspberry Pi-apparaten te controleren, zoals CPU- en geheugengebruik, netwerkstatistieken en aangesloten hardwarecomponenten.

Individuele apparaten verzamelen informatie en delen die over het netwerk met behulp van de MQTT publish-subscribe architectuur. Elke Raspberry Pi fungeert als een MQTT-client, die zowel kan publiceren als abonneren op specifieke onderwerpen, waardoor gegevens in realtime kunnen worden uitgewisseld.

Een van de belangrijkste voordelen van het gebruik in PiCockpit is het lichte gewicht, dat perfect past bij de beperkte middelen van Raspberry Pi-apparaten.

Het efficiënte verpakken van berichten en de lage overhead zorgen ervoor dat zelfs apparaten met beperkte verwerkingskracht kunnen deelnemen aan gegevensuitwisseling zonder een significante prestatievermindering.

De benadering van PiCockpit gaat verder dan alleen het monitoren van gegevens. Het vergemakkelijkt beheer op afstand, waardoor je commando's kunt uitvoeren op je Raspberry Pi-apparaten vanaf een gecentraliseerd dashboard.

Door zich te abonneren op de juiste onderwerpen, kunnen gebruikers acties zoals software-updates, herstarten van het systeem of aangepaste scripts activeren op de apparaten.

Deze bidirectionele communicatie zorgt ervoor dat PiCockpit niet alleen een passieve monitoringtool is, maar een actief platform voor apparaatbeheer.

Bovendien bevordert het gebruik van MQTT door PiCockpit de schaalbaarheid van je projecten.

Naarmate het aantal gemonitorde apparaten groeit, verwerkt de MQTT broker naadloos de toenemende stroom van gegevens en berichten. Deze schaalbaarheid is een bewijs van het inherente vermogen om een groot aantal clients te beheren zonder afbreuk te doen aan de prestaties.

PiCockpit bewaakt en bestuurt Raspberry Pis

Concluderend, PiCockpit's integratie van MQTT toont de veelzijdigheid en efficiëntie van het protocol op het gebied van apparaatbeheer op afstand.

PiCockpit stelt je dus in staat om je Raspberry Pi-vloot niet alleen te monitoren, maar ook gemakkelijk te beheren. Je hoeft alleen maar de PiCockpit-client op je Raspberry Pi te installeren en je kunt aan de slag!

Conclusie

MQTT is een prachtige manier om apparaten met elkaar te laten praten.

Het is lichtgewicht. Hij is betrouwbaar. En hij is super veelzijdig.

Het belangrijkste is dat het niet langer alleen een communicatieprotocol is om passief gegevens te verzamelen. Je kunt het nu gebruiken om apparaten en sensoren actief op afstand te bedienen.

MQTT is een waardevol hulpmiddel in het arsenaal van protocollen om naadloze en efficiënte communicatie mogelijk te maken.

En met alle IoT- en domotica-projecten van tegenwoordig kan MQTT je leven verbeteren.

Je kunt PiCockpit op je Raspberry Pi installeren en alle voordelen zelf uitproberen!

Klik hier om te kijken hoe je een fotoresistor maakt met een Pico W met behulp van MQTT - het is een geweldig klein project om de kracht en efficiëntie van MQTT te testen.

Wat zou jij met MQTT doen om je dagelijkse leven te veranderen?

2 Opmerkingen

  1. Сергей op augustus 30, 2023 op 8:52 am

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

    • Adam op augustus 30, 2023 op 9:38 am

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

Laat een reactie achter