Messaging Queuing Telemetry Protocol, of MQTT, is een lichtgewicht berichtenprotocol dat is ontworpen voor apparaten en omgevingen met een lage bandbreedte. Het is een snelle, eenvoudig te implementeren en energiezuinige oplossing om verbinding te maken en informatie uit te wisselen tussen meerdere IoT-apparaten. Het vereist een MQTT-broker/server en het onderwerp waarop berichten worden gepubliceerd en waarop de apparaten of gebruikers zich hebben geabonneerd om de informatie te verzenden of te ontvangen.

In deze gids zullen we de MQTT-broker en Node-RED-tool op Raspberry Pi inzetten om MQTT-compatibele doe-het-zelf slimme IoT-apparaten aan te sluiten en te gebruiken voor domotica.

Dingen die je nodig hebt

Om een ​​MQTT-server met Node-RED te bouwen en te implementeren, hebt u het volgende nodig:

  • Een Raspberry Pi Zero W of beter. We raden aan om een ​​Raspberry Pi 3 of 4 te gebruiken (indien beschikbaar).
  • Een microSD-kaart (8 GB of hoger).
  • Een microSD-kaartlezer.
  • Een Linux-pc, Mac of Windows-pc.
  • Internetverbinding (wifi).
instagram viewer

Stap 1: Installeer Raspberry Pi OS Lite (64-bit)

Je hebt de 64-bit Lite-versie van Raspberry Pi OS nodig. In de Raspberry Pi-imager tool op een andere computer, klik op Kies besturingssysteem > Raspberry Pi OS (overig)en selecteer vervolgens Raspberry Pi OS Lite (64-bit). Daarnaast wil je de geavanceerde instellingen van Imager gebruiken om SSH in te schakelen (we gebruikten pi en framboos als gebruikersnaam en wachtwoord voor deze handleiding) en configureer de Wi-Fi-verbinding. Bekijk voor meer informatie onze gids op: hoe installeer je een besturingssysteem op een Raspberry Pi. Nadat u het besturingssysteem naar de kaart hebt geschreven, verwijdert u het en plaatst u het in uw Raspberry Pi.

Stap 2: Maak verbinding via SSH en werk de pakketten bij

U kunt verbinding maken met uw Raspberry Pi via SSH met behulp van PuTTY op Windows of Terminalon macOS en Linux. U moet echter het IP-adres van de Raspberry Pi weten om verbinding te maken via SSH. Om erachter te komen, kunt u de DHCP-instellingen van uw draadloze router openen of de Fingapp op uw smartphone gebruiken.

Voer het IP-adres in in Stopverf en klik Aansluiten. Typ uw gebruikersnaam en wachtwoord om in te loggen.

Typ op Linux- of macOS-terminal YourPiUsername@IPAddress en typ vervolgens het wachtwoord om in te loggen. Eenmaal verbonden via SSH, voert u de volgende opdracht uit om de pakketlijst bij te werken en pakketten te upgraden.

sudo apt update && sudo apt-upgrade ja

Stap 3: Installeer MQTT Broker

Voer de volgende stappen uit om de MQTT-broker (Mosquitto) te installeren en in te schakelen.

  1. Installeer Mosquitto door de volgende opdracht uit te voeren in het Terminal-venster.
    sudo apt installeren mug mug-clients -y
    Hiermee begint u met het installeren van de Mosquitto (MQTT-makelaar) en klantenservice.
  2. Schakel na de installatie de Mosquitto-service in en controleer de MQTT-versie met behulp van de volgende opdrachten.
    sudosystemctlinschakelenmug.onderhoud
    mug -v
  3. Maak een gebruikersaccount om geverifieerde externe toegang toe te staan ​​met de volgende opdracht.
    sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
    Hier ravotten is de gebruikersnaam (je kunt gebruiken wat je wilt). Voer het wachtwoord in wanneer daarom wordt gevraagd. Noteer deze gebruikersnaam en wachtwoord voor later gebruik.
  4. Open de mug.conf bestand in de nano-editor met behulp van de volgende opdracht.
    sudo nano /etc/mosquitto.conf
    Plak de volgende code in de nano-editor.
    per_listener_settings WAAR
    pid_file /run/mosquitto/mosquitto.pid
    vasthoudendheid WAAR
    persistentie_locatie /var/lib/mosquitto/
    log_dest bestand /var/log/mosquitto/mosquitto.log
    include_dir /etc/mosquitto/conf.d
    allow_anoniem vals
    luisteraar 1883
    wachtwoord_bestand /etc/mosquitto/passwd
    druk op CTRL+X gevolgd door Y en Binnenkomen om de wijzigingen op te slaan.
  5. Start de MQTT-broker opnieuw door de volgende opdracht uit te voeren.
    sudo systemctl herstart mug
  6. Controleer de status van de MQTT-makelaar om te zien of MQTT actief is.
    sudo systemctl status mug
    Als u de bovenstaande uitvoer ziet, is MQTT actief.

Stap 4: MQTT-makelaar testen

Om te testen of de MQTT-makelaar werkt of niet, installeer MQTTLens of een vergelijkbare MQTT-app in Chrome of een andere webbrowser en start deze. Voer het IP-adres van de Raspberry Pi en de MQTT gebruikersnaam/wachtwoord in. Klik Verbinding maken.

Voer een willekeurig onderwerp in de Abonneren veld en hetzelfde onderwerp in de Publiceren veld. Typ "Hallo" of iets anders in het berichtveld en klik op Publiceren.

Als je het bericht onder de abonnementen ziet, werkt de MQTT-makelaar prima.

Stap 5: Installeer Node-RED

Met Node-RED kunt u berichten publiceren of payloads verzenden en ontvangen van of naar uw slimme apparaten. Deze payload kan worden gebruikt om slimme apparaten te triggeren om in/uit te schakelen of gegevens (zoals temperatuur) van een sensor te ontvangen. U kunt uw webbrowser gebruiken om dergelijke stromen in Node-RED te maken en uw slimme apparaten te bedienen.

Om Node-RED te installeren, voert u de volgende opdracht uit in het Terminal-venster.

bash //raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Hiermee wordt de Node-RED op uw Raspberry Pi gedownload en geïnstalleerd. Het kan even duren om te voltooien. Nadat Node-RED is geïnstalleerd, moet u een Node-RED-instellingenbestand maken door de volgende opdracht uit te voeren.

node-red admin init

Volg dan deze stappen:

  1. druk de Binnenkomen sleutel.
  2. Wilt u gebruikersbeveiliging instellen? Selecteer Ja. Voer een gebruikersnaam en een wachtwoord in. Houd het veilig, want dit wordt gebruikt om in te loggen en Node-RED te beheren via een webinterface.
  3. Kiezen Volledige toegang.
  4. U kunt nog een gebruiker toevoegen of selecteren Nee verder gaan.
  5. Selecteer Nee wanneer u wordt gevraagd om de projectfuncties in te schakelen.
  6. druk op Binnenkomen.
  7. Typ een wachtwoordzin en bewaar deze veilig.
  8. Kies de Standaard thema > Monaco (standaard).
  9. Selecteer Nee wanneer gevraagd om externe knooppunten te laden.

Zodra dit is gebeurd, start u Node-RED opnieuw.

knooppunt-rode herstart

U kunt nu bezoeken Uw-Raspberry-Pi-IP: 1880 in een webbrowser om het Node-RED admin panel te openen en in te loggen.

U kunt nu stromen maken in Node-RED. Hieronder ziet u een voorbeeld van een Node-RED-stroom die we gebruiken om ons WS2812B 8x32-matrixdisplay te laten zien dat verschillende sensorinformatie in realtime weergeeft die in ons huis is geïnstalleerd.

Om te beginnen, kunt u ook: bouw een doe-het-zelf slimme klok met MAX7219 dot matrix, en verbind het met uw MQTT-server om er tekst of berichten op weer te geven.

Schakel huisautomatisering in met MQTT en Node-RED

U kunt nu stromen maken om uw MQTT-compatibele smart home-apparaten te besturen of te bewaken. Je kunt ook doe-het-zelf Tasmota slimme schakelaars of op Arduino gebaseerde slimme sensoren en andere slimme apparaten met MQTT-besturing bouwen en deze gebruiken met deze MQTT- en Node-RED-server. U kunt stromen maken voor domotica op basis van gebeurtenissen, tijd of payload die u van uw smartphone MQTT-client hebt ontvangen.

Op uw Android-smartphone kunt u MQTT Dash installeren om verbinding te maken met uw MQTT-broker en payloads te verzenden of ontvangen van of naar verschillende onderwerpen waarop uw slimme apparaten zich abonneren of publiceren.