HowTo: RaspberryPi – Installeer MQTT Server op de RaspberryPi

MQTT (Message Queue Telemetry Transport) is het protocol dat steeds belangrijker wordt in de wereld van het Internet of Things.

Hiermee kunnen zeer eenvoudig verschillende gegevens tussen verschillende sensoren en actuatoren worden uitgewisseld. Alle clients die zijn aangesloten op de MQTT-server verzenden en ontvangen hun gegevens van en naar een centrale server.

In het MQTT-protocol spreken de individueel aangesloten clients niet rechtstreeks met elkaar.
Bij het aanmelden op de MQTT-server kan elke client aangeven welke gegevens hij wil ontvangen zodra er nieuwe gegevens beschikbaar zijn. Tegelijkertijd kan elke client gegevens naar de server sturen. Deze gegevens die naar de server worden gestuurd, worden vervolgens automatisch gedistribueerd naar de clients die zich eerder hebben geregistreerd om de gegevens te ontvangen.
Een MQTT-bericht bestaat altijd uit een naam en de gegevens. Met de naam (topic genoemd) kunnen clients zich bij de server registreren als "geïnteresseerde partij" voor de gegevens die onder deze naam worden verzonden.
Zodra de server gegevens ontvangt onder deze naam, worden deze doorgestuurd naar alle klanten die zich eerder hebben geregistreerd als "geïnteresseerden" voor deze gegevens.

Tot zover de ruwe functie van het MQTT-protocol.
Om het MQTT protocol in je netwerk te kunnen gebruiken, heb je een MQTT server nodig. In dit artikel leg ik uit hoe je deze op de RaspberryPi installeert.

Naast je eigen MQTT-server is er ook de optie om externe MQTT-servers te gebruiken die beschikbaar zijn op het internet. Sommige hiervan zijn gratis beschikbaar.

Dit heeft volgens mij een aantal nadelen:
- Je gegevens verlaten het thuisnetwerk. De kans dat er onheil mee wordt aangericht of dat het überhaupt kan, is niet groot. Toch voel ik me op de een of andere manier meer op mijn gemak als mijn gegevens mijn "eigen vier muren" niet verlaten.
- Je bent afhankelijk van de externe MQTT-server. Als deze server niet bereikbaar is, bijvoorbeeld omdat hij is uitgevallen of omdat je internetverbinding niet tot stand kan worden gebracht, zal je volledige netwerkinterne (MQTT) communicatie ook uitvallen.

Aangezien het installeren van je eigen MQTT-server snel en gratis is, denk ik dat dit het betere alternatief is.


Veiligheidsinstructies

Ik weet dat de volgende opmerkingen altijd een beetje vervelend zijn en onnodig lijken. Helaas hebben veel mensen die "beter" wisten door onvoorzichtigheid ogen, vingers of andere dingen verloren of zichzelf verwond. Gegevensverlies is in vergelijking bijna te verwaarlozen, maar zelfs dit kan erg vervelend zijn. Neem daarom vijf minuten de tijd om de veiligheidsinstructies te lezen. Omdat zelfs het coolste project geen blessure of andere problemen waard is.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links / reclame links

De hier vermelde links naar online winkels zijn zogenaamde affiliate-links. Als u op zo'n affiliate-link klikt en via deze link een aankoop doet, ontvangt Nerdiy.de een commissie van de betreffende onlineshop of aanbieder. De prijs verandert voor jou niet. Als u via deze links uw aankopen doet, steunt u Nerdiy.de om in de toekomst andere nuttige projecten aan te kunnen bieden. 🙂 


Overzicht

Voordat je kunt beginnen met de installatie van de MQTT-server, moet je de RaspberryPi hebben voorbereid zodat deze bereikbaar is via Putty.
In de volgende drie artikelen wordt beschreven wat er moet gebeuren om de RaspberryPi voor te bereiden:
RaspberryPi – setup voor nerds!
RaspberryPI - De eerste configuratie!
RaspberryPi – Bedien de RaspberryPi via SSH

Benodigd materiaal:
-Nee-

Benodigd materiaal:

In de volgende lijst vindt u alle onderdelen die u nodig heeft om dit artikel te implementeren.


Log in op de RaspberryPi via SSH

Om te beginnen moet je eerst inloggen op de Rasp Pi met Putty via SSH. Hoe je dit doet staat in het artikel RaspberryPi - Bedien de RaspberryPi via SSH beschreven.

Na het invoeren van uw gebruikersnaam en wachtwoord kunt u de eerste opdrachten invoeren.

Pakketbeheer updaten

Het pakketbeheer in Linux is een "centrale plek" van waaruit verschillende softwarepakketten kunnen worden geïnstalleerd. Om dit betrouwbaar te laten werken, moeten de lijsten en bronnen van het pakketbeheer worden bijgewerkt voor elke installatie van nieuwe pakketten.

Om de update van het pakketbeheer te starten, moet u de volgende opdracht invoeren.
sudo apt-get update && sudo apt-get upgrade
Afhankelijk van hoe lang geleden uw laatste update van het pakketbeheer was, kan dit proces nu even duren. De lijsten die naar de afzonderlijke pakketbronnen verwijzen, worden eerst bijgewerkt.
Daarna worden de pakketten zelf bijgewerkt. Aangezien extra geheugen bezet is, wordt u opnieuw om uw toestemming gevraagd. Je moet dit bevestigen met een "J" en "Enter".
Zodra de update is voltooid, ziet u een korte samenvatting van de duur en omvang van de update.

Mosquito installeren

U kunt de gratis open source-software “Mosquitto” gebruiken als MQTT-server. Dit kan eenvoudig worden geïnstalleerd via de pakketbeheerder met het volgende commando:

sudo apt-get install mosquitto mosquitto-clients


Autostart instellen voor de MQTT-server

Om de MQTT-server automatisch te laten starten na een herstart van je RaspberryPi, moet je nu de autostart ervoor activeren. Dit kan met het volgende commando.

sudo systemctl schakel mosquitto.service in

Controleer de status van de MQTT-server

Na installatie zal “Mosquitto” automatisch starten. Of dit werkt kun je controleren met het volgende commando:

sudo service muggenstatus
Het zou leesbaar moeten zijn in gürn "active(running)". Om deze statusweergave te verlaten moet je op CTRL+C drukken.

De MQTT-server kan gestopt worden met het volgende commando:

sudo-service muggenstop

De MQTT-server kan worden gestart met het volgende commando:

sudo dienst mug start

Functie controleren

Om een eerste test uit te voeren, willen we proberen om tegelijkertijd een bericht naar de sevrer te sturen en het van de sevrer te ontvangen. Om dit te doen, moeten we ons abonneren op een topic van de MQTT server en tegelijkertijd vanuit een ander venster een bericht sturen naar dit geabonneerde topic.
Om te beginnen moet je eerst het volgende commando invoeren in Putty:

mosquitto_sub -h localhost -v -t testTopic
Dit start de MQTT abonnee. Dit is een client die verbinding maakt met de zojuist aangemaakte server (dus localhost) en luistert naar het onderwerp "testTopic". Zodra gegevens worden verzonden van een andere MQTT-client naar de server onder het onderwerp "testTopic", worden ze hier weergegeven.
Open nu een nieuw Putty-venster (maar laat het oude open).

Voer in dit nieuwe putty-venster de volgende opdracht in:

mosquitto_pub -h localhost -t testTopic -m "Een mug vliegt, een mug prikt."
Dit commando stuurt de tekst "Een mug vliegt, een mug steekt". naar het onderwerp "testTopic" waarop je je hebt geabonneerd in het andere Putty-venster.

U zou nu het bericht moeten zien dat u zojuist hebt verzonden, weergegeven in het eerste putty-venster.
Als dit werkt, heeft je MQTT-server de eerste test doorstaan 🙂 .

Beveiligingsnotitie: Er is nog geen encryptie of gebruikersidentificatie actief. Dit betekent dat iedereen die toegang heeft tot je netwerk kan inloggen op de MQTT server en er gegevens van kan verzenden of ontvangen. Ik zal in een later artikel uitleggen hoe je deze twee beveiligingslekken kunt dichten.


Veel plezier met het project

Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn altijd welkom. 🙂

PS Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik dit omdat ik het leuk vind, maar als je het cool vindt dat ik de informatie met je deel, dan zou ik blij zijn met een kleine donatie aan het koffiefonds. 🙂

Koop Me a Coffee op ko-fi.com       

Kommentar hinterlassen

Het e-mailadres wordt niet gepubliceerd. Erforderliche Felder sind mit * markiert

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.