Wat is MQTT?

MQTT

Wat is MQTT?

MQTT (Message Queuing Telemetry Transport) is een lichtgewicht berichtenprotocol dat is ontworpen voor efficiënte communicatie tussen apparaten met een lage bandbreedte, hoge latentie of onbetrouwbare netwerkomgevingen, zoals die in IoT-toepassingen (Internet of Things).

Het protocol volgt een publish/subscribe-model, waarbij clients verbinding maken met een broker en berichten publiceren naar een bepaald onderwerp of zich abonneren op het ontvangen van berichten over een onderwerp. De broker is verantwoordelijk voor het routeren van de berichten naar de juiste clients op basis van hun abonnementen.

Een van de belangrijkste voordelen van MQTT is het lichte gewicht, waardoor het ideaal is voor gebruik in omgevingen met beperkte middelen, zoals kleine ingebedde systemen. Het protocol ondersteunt ook Quality of Service (QoS)-niveaus, waarmee cliënten de betrouwbaarheid van de berichtlevering kunnen specificeren.

Het is een populair protocol voor IoT-toepassingen, omdat het apparaten in staat stelt met elkaar te communiceren via het internet op een eenvoudige en efficiënte manier, terwijl het de netwerkoverhead en het stroomverbruik tot een minimum beperkt.

Hoe werkt MQTT?

Het werkt op basis van een publish/subscribe-model. Hierbij communiceren apparaten met elkaar via een MQTT-broker, die fungeert als een soort tussenpersoon die de berichten doorstuurt naar de juiste apparaten.

De basiscomponenten van het protocol zijn:

  • Clients: dit zijn de apparaten die gegevens willen uitwisselen. Dit kan bijvoorbeeld een sensor zijn die gegevens meet en deze wil doorsturen naar een ander apparaat.
  • Broker: dit is het centrale punt in het MQTT-netwerk. Alle clients communiceren met de broker, die berichten ontvangt en doorstuurt naar de juiste clients.
  • Topics: een topic is een label dat aan een bericht wordt gekoppeld. Hierdoor kan de broker het bericht doorsturen naar de juiste clients die zich hebben geabonneerd op dat specifieke topic.
Hoe werkt MQTT?

Het proces van het uitwisselen van gegevens via MQTT verloopt als volgt:

  1. Een client publiceert een bericht naar de broker, inclusief het topic waarop het bericht is gericht.
  2. De broker ontvangt het bericht en stuurt het door naar alle clients die zich hebben geabonneerd op dat specifieke topic.
  3. De clients die het bericht hebben ontvangen, kunnen de informatie verwerken of reageren met hun eigen bericht.
  4. Het proces kan zich herhalen met andere clients die ook berichten publiceren en abonneren op specifieke topics.

Het protocol is bidirectioneel en onderhoudt stateful session awareness. Als een edge-of-network-apparaat de verbinding verliest, brengt het alle geabonneerde gebruikers op de hoogte met de “Last Will and Testament”-functie van de MQTT-server, zodat elke geautoriseerde gebruiker in het systeem een nieuwe waarde kan publiceren naar de edge-of-network-apparaten, met behoud van bidirectionele connectiviteit.

Waarom is MQTT gemaakt?

Het is ontworpen om efficiënte communicatie mogelijk te maken tussen apparaten met beperkte middelen in omgevingen met een lage bandbreedte, hoge latentie en onbetrouwbare netwerken. Het protocol is oorspronkelijk ontwikkeld door Dr. Andy Stanford-Clark en Arlen Nipper in 1999.

Het ontwerp was geïnspireerd door de behoefte aan een betrouwbare, flexibele en efficiënte manier van communiceren tussen apparaten in het veld, zoals sensoren en actuatoren. Het doel was om een protocol te creëren dat het mogelijk zou maken om grote hoeveelheden gegevens vanaf verschillende locaties te verzamelen en te distribueren, tegen een zo laag mogelijke belasting van de netwerken en apparaten.

In de jaren sinds de ontwikkeling van MQTT is het protocol uitgegroeid tot een belangrijke standaard voor IoT-toepassingen. Het is een van de belangrijkste protocollen geworden voor het verzamelen en verzenden van gegevens tussen apparaten in de IoT-sector en wordt ondersteund door verschillende IoT-platforms en cloudservices.

De voordelen van MQTT

MQTT heeft verschillende voordelen ten opzichte van andere communicatieprotocollen:

  • Lichtgewicht en efficiënt: Het is ontworpen om te werken met apparaten met beperkte middelen, zoals sensoren en actuatoren, die vaak werken op batterijen. Het protocol gebruikt minimale bandbreedte en middelen om gegevens te verzenden, wat de belasting op het netwerk en de apparaten minimaliseert.
  • Flexibel en schaalbaar: Het is zeer flexibel en te gebruiken voor een breed scala aan IoT-toepassingen, van het verzamelen van sensorgegevens tot het aansturen van actuatoren. Bovendien is MQTT eenvoudig op te schalen om te voldoen aan de behoeften van grootschalige IoT-toepassingen.
  • Betrouwbare en veilige communicatie: Het ondersteunt verschillende niveaus van kwaliteit of services (QoS) om te zorgen voor betrouwbare gegevensoverdracht, zelfs in omgevingen met een lage bandbreedte of hoge latentie. Het protocol ondersteunt ook SSL/TLS-codering om de communicatie te beveiligen.
  • Eenvoudige integratie met andere systemen: Het is naadloos te integreren met andere systemen en platformen, zoals cloudservices en databases, waardoor het een ideale oplossing is voor het verzamelen en integreren van gegevens van verschillende bronnen.
  • Werkt goed in geval van connectiviteitsproblemen: Het kan ook werken in offline modus, waarbij berichten worden opgeslagen en doorgestuurd zodra de connectiviteit weer beschikbaar is. Dit maakt het een ideale oplossing voor IoT-toepassingen waar netwerkverbindingen onbetrouwbaar kunnen zijn.

Wat maakt het protocol lichtgewicht?

MQTT is lichtgewicht om verschillende redenen:

  1. Minimale overhead: Het is ontworpen om minimale overhead te hebben en gebruikt minimale netwerkbandbreedte. Berichten worden verzonden in een binair formaat en er is geen extra informatie of metadata die wordt meegestuurd met de berichten.
  2. Efficiënte codering: Het gebruikt efficiënte coderingstechnieken om de grootte van berichten te minimaliseren. Hierdoor worden berichten sneller verzonden en verwerkt.
  3. Asynchrone communicatie: Het maakt gebruik van een asynchrone communicatiemethode, wat betekent dat er geen constante verbinding hoeft te worden onderhouden tussen de client en de broker. Dit vermindert de overhead en maakt de communicatie efficiënter.
  4. Kleine codebase: De codebase van MQTT is klein en eenvoudig, waardoor de implementatie en het gebruik van MQTT in embedded systemen en andere lichtgewicht apparaten gemakkelijker is.

Door deze factoren is MQTT een populaire keuze geworden voor het verzenden van berichten tussen lichtgewicht apparaten en systemen met beperkte resources, zoals Internet of Things (IoT) apparaten en mobiele applicaties.

Wie gebruikt MQTT?

Het is oorspronkelijk ontwikkeld voor dataverbindingen met lage bandbreedte en hoge latentie die worden gebruikt in de olie- en gasindustrie. MQTT wordt nu echter ook door veel andere organisaties en toepassingen gebruikt.

Veel IoT-apparaten gebruiken MQTT om communicatie mogelijk te maken tussen apparaten met beperkte middelen, zoals sensoren en actuatoren. Dit omvat alles van slimme thermostaten en beveiligingscamera’s tot slimme verlichtingssystemen en industriële sensoren.

MQTT wordt gebruikt in veel industriële automatiseringssystemen, waaronder SCADA, waarmee gegevens verzameld en geanalyseerd worden om processen te optimaliseren.

Telecommunicatienetwerken gebruiken MQTT voor het monitoren en het beheren van netwerkinfrastructuur, zoals routers, switches en andere apparaten.

MQTT wordt gebruikt in de transportsector om te helpen bij het volgen van voertuigen en het verzamelen van informatie over verkeersstromen, om zo de verkeersstroom te optimaliseren en vertragingen te verminderen.

In de gezondheidszorg wordt MQTT gebruikt om gegevens te verzamelen van medische apparaten en sensoren, zoals hartmonitoren, bloeddrukmeters en glucosemeters, om de gezondheid van patiënten te bewaken en zorgverleners te waarschuwen als er problemen optreden.

Waarom is dit protocol ideaal voor SCADA?

Efficiëntie: Het is een lichtgewicht protocol, wat betekent dat het minimale bandbreedte en middelen gebruikt om te communiceren. Dit is vooral belangrijk in SCADA-systemen waarbij de communicatie over beperkte netwerkbandbreedte plaatsvindt.

Betrouwbaarheid: Het ondersteunt drie niveaus van Quality of Service (QoS) – QoS0, QoS1 en QoS2 – waardoor het systeem de betrouwbaarheid van de gegevensoverdracht beheert. Dit is belangrijk voor SCADA-systemen waar de betrouwbaarheid van de gegevens kritiek is.

Schaalbaarheid: Het is ontworpen om gemakkelijk te schalen, wat betekent dat het in staat is om grote aantallen apparaten en sensoren te ondersteunen die gegevens verzamelen en verzenden. Dit is een belangrijke overweging voor SCADA-systemen waarbij grote hoeveelheden gegevens vanaf verschillende locaties worden verzameld.

Veiligheid: Het biedt ingebouwde beveiligingsopties, zoals de mogelijkheid om SSL/TLS-codering te gebruiken.

Over het algemeen biedt MQTT efficiënte, betrouwbare en veilige communicatie voor SCADA-systemen, waardoor het een ideale keuze is voor de implementatie van SCADA-toepassingen in verschillende sectoren, zoals de energie-, olie- en gasindustrie, de productie- en automatiseringsindustrie en de water- en afvalwaterindustrie.

MQTT en Ignition

Ignition is een veelgebruikt softwareplatform voor industriële automatisering en SCADA-systemen. Het platform biedt krachtige tools voor het verzamelen, analyseren en visualiseren van gegevens van verschillende industriële apparaten en sensoren. MQTT is een populair communicatieprotocol wat vaak gebruikt wordt in combinatie met Ignition.

  • Maak gemakkelijk verbinding met MQTT-brokers om gegevens van MQTT-apparaten en -sensoren te ontvangen en te verwerken.
  • Publiceer gegevens naar MQTT-brokers, waardoor andere systemen en apparaten toegang hebben tot de verzamelde gegevens.
  • Visualiseer en analyseer MQTT-gegevens met behulp van krachtige grafische hulpmiddelen en dashboards.
  • Integreer MQTT-gegevens met gegevens van andere bronnen, zoals databases en PLC’s, waardoor een compleet beeld ontstaat van de industriële processen.
  • Genereer alarmen en rapporten op basis van MQTT-gegevens, waardoor operators snel in staat zijn te reageren op veranderingen in de industriële processen.

Wist je dat …

Mede-uitvinder Arlen Nipper momenteel de president is bij Cirrus Link Solutions. Dit bedrijf is een strategische partner van Inductive Automation (de makers van Ignition) en hebben Ignition MQTT-modules ontwikkeld. Deze modules bieden krachtige tools voor het integreren van MQTT-communicatie in Ignition SCADA-systemen en maken bidirectionele communicatie mogelijk tussen Ignition-systemen en MQTT-apparaten en -sensoren. Arlen Nipper heeft hiermee de adoptie van MQTT in industriële automatisering verder bevorderd.

Ontdek Ignition

Plan nu een exclusieve Ignition-demo op locatie

  • Leer hoe Ignition specifiek in jouw bedrijf kan worden toegepast.
  • Stel direct al je vragen en ga dieper in op specifieke softwareaspecten.
  • Ontvang op maat gemaakte oplossingen en deskundig advies.

Start met het bouwen van je eigen Ignition-applicatie

  • Snel en moeiteloos te installeren.
  • Ontdek en benut alle functionaliteiten van de software, zo lang als je wilt.
  • Maak onbeperkt verbinding met tags, PLC’s, databases en apparaten.
  • Beoordeel zelf of Ignition aan de behoeften van jouw bedrijf voldoet.

Verken Ignition in de online demo-omgeving

  • Geen download of installatie vereist.
  • Bekijk toepassingen voor verschillende industrieën.
  • Pas waarden aan en zie onmiddellijk het resultaat.
  • Leer hoe Ignition processen automatiseert en visualiseert, zelfs zonder programmeerkennis.
  • Ontdek alle mogelijkheden en of Ignition aan jouw behoeften voldoet.
Open chat
💬 Hulp nodig?
Hi👋
Kan ik je ergens mee helpen?