MQTT-communicatie met Node-RED
Laatst bijgewerkt:
Inleiding
MQTT is een lichtgewicht berichtenprotocol voor publiceren en abonneren dat veel wordt gebruikt in IoT-toepassingen. Apparaten communiceren niet rechtstreeks met elkaar, maar sturen berichten naar een MQTT-broker onder een topic. Andere clients kunnen zich op dat topic abonneren om de berichten te ontvangen.
Node-RED bevat ingebouwde MQTT-nodes waarmee je IoT-berichten kunt ontvangen en verwerken zonder een volledige MQTT-applicatie te schrijven. In deze handleiding configureren we Node-RED op een reComputer RK Series-apparaat om een topic op de openbare MQTT-broker van HiveMQ te volgen. Daarna publiceren we een JSON-bericht vanuit de RK-terminal om de verbinding te controleren.
Beveiliging: Dit voorbeeld gebruikt de gedeelde openbare HiveMQ-broker via TCP-poort 1883, zonder TLS of authenticatie. Gebruik alleen testgegevens. Verstuur geen wachtwoorden, persoonsgegevens of productie- en industriële gegevens. Gebruik voor productie een broker met authenticatie en TLS.
Vereisten
| Onderdeel | Vereiste |
|---|---|
| Hardware | reComputer RK Series-apparaat |
| Besturingssysteem | ARM64 Linux op basis van Debian |
| Node-RED | Geïnstalleerd en actief; voltooi eerst Aan de slag met Node-RED |
| Netwerk | Internettoegang tot de openbare MQTT-broker van HiveMQ |
| Toegang | Een webbrowser voor Node-RED en een terminal of SSH-verbinding met het RK-apparaat |
Werking
reComputer RK Terminal
(mosquitto_pub)
|
| Publish JSON to topic: rk3588/seeed/demo
v
HiveMQ Public MQTT Broker
(broker.hivemq.com:1883)
|
| Subscribe to the same topic
v
Node-RED on reComputer RK
MQTT in --> Debug
|
v
Debug sidebar: received JSON objectStap 1: De Node-RED-editor openen
Controleer of Node-RED op het RK-apparaat actief is:
sudo systemctl status nodered.service --no-pagerStart de service indien nodig:
node-red-startAls deze opdracht de servicelogboeken blijft tonen, druk je op Ctrl+C om naar de terminal terug te keren. Node-RED blijft op de achtergrond actief.
Zoek het lokale IP-adres van het apparaat:
hostname -IOpen de Node-RED-editor op een computer in hetzelfde netwerk:
http://<RK_DEVICE_IP>:1880Vervang <RK_DEVICE_IP> door het werkelijke IP-adres van het apparaat. Meld je aan als editor-authenticatie tijdens de installatie van Node-RED is ingeschakeld.
Stap 2: Een MQTT-invoernode toevoegen
- Open Flow 1 of maak een nieuwe flow.
- Zoek mqtt in in het linkerpalet en sleep de paarse mqtt in-node naar de werkruimte.
- Dubbelklik op de node om Edit mqtt in node te openen.
- Klik naast Server op de knop voor toevoegen/bewerken, afhankelijk van de versie + of een potloodpictogram, om een MQTT-brokerconfiguratie te maken.
Stap 3: De HiveMQ-broker configureren
Vul in het configuratievenster van de MQTT-broker het volgende in:
| Instelling | Waarde |
|---|---|
| Name | HiveMQ (optionele weergavenaam) |
| Server | broker.hivemq.com |
| Port | 1883 |
| Protocol | MQTT V3.1.1 |
| Client ID | Leeg laten om automatisch een ID te genereren |
| TLS | Uitgeschakeld |
| Username / Password | Leeg laten |

Laat de overige opties op hun standaardwaarden staan en klik op Add of Update, afhankelijk van de editorversie, om de brokerconfiguratie op te slaan.
De openbare broker wordt gedeeld met andere gebruikers. Kies een topic dat waarschijnlijk niet met andere tests samenvalt. Dit voorbeeld gebruikt
rk3588/seeed/demo. Als je een ander topic kiest, gebruik dat dan zowel in het abonnement als in de publicatieopdracht.
Stap 4: Het MQTT-abonnement configureren
Stel terug in Edit mqtt in node het volgende in:
| Instelling | Waarde |
|---|---|
| Server | HiveMQ |
| Action | Subscribe to single topic |
| Topic | rk3588/seeed/demo |
| QoS | 0 |
| Output | auto-detect (parsed JSON object, string or buffer) |
| Name | SeeedStudio |

Klik op Done om de node op te slaan.
MQTT-topics zijn hoofdlettergevoelig. Het topic in Node-RED moet exact overeenkomen met het topic dat de opdrachtregelclient voor publicatie gebruikt. Als je een uniek topic kiest, pas dan ook de publicatieopdrachten in stap 7 aan.
Stap 5: MQTT In met Debug verbinden en implementeren
- Zoek debug in het palet en sleep de groene debug-node naar de werkruimte.
- Verbind de uitgang van SeeedStudio (mqtt in) met de ingang van de debug-node.
- Open de instellingen van de Debug-node en laat de uitvoer op
msg.payloadstaan. - Klik op Done en daarna rechtsboven op Deploy.
- Open het zijpaneel Debug messages.
De resulterende flow ziet er als volgt uit:
[SeeedStudio (mqtt in)] ----> [debug node]Zodra de MQTT-verbinding tot stand komt, moet onder de mqtt in-node de groene status connected verschijnen.
Stap 6: De MQTT-opdrachtregelclient installeren
Installeer de Mosquitto-opdrachtregeltools in de terminal van het reComputer RK-apparaat:
sudo apt update
sudo apt install -y mosquitto-clientsDe opdracht mosquitto_pub stuurt een MQTT-bericht naar de broker. Node-RED is al op hetzelfde topic geabonneerd en kan het bericht ontvangen.
Stap 7: Een JSON-testbericht publiceren
Voer de volgende opdracht uit in de RK-terminal:
mosquitto_pub \
-h broker.hivemq.com \
-p 1883 \
-t "rk3588/seeed/demo" \
-m '{"device":"RK3588","temperature":25.6}'Deze opdracht publiceert één JSON-bericht op het topic rk3588/seeed/demo via de openbare HiveMQ-broker.
Gebruik de optie -d voor uitgebreidere uitvoer op de opdrachtregel:
mosquitto_pub -d \
-h broker.hivemq.com \
-p 1883 \
-t "rk3588/seeed/demo" \
-m '{"device":"RK3588","temperature":25.6}'Stap 8: Het ontvangen bericht in Node-RED controleren
Ga terug naar de Node-RED-editor en bekijk het zijpaneel Debug messages. De MQTT-invoernode moet het bericht doorsturen naar de Debug-node.
Het bericht moet de volgende gegevens bevatten:
{
"device": "RK3588",
"temperature": 25.6
}Omdat Output van de MQTT-invoernode is ingesteld op automatische JSON-detectie, kan Node-RED de payload als een geparseerd JavaScript-object weergeven. Het zijpaneel toont ook het topic rk3588/seeed/demo.

Het succesvol ontvangen bericht bevestigt deze communicatieroute:
reComputer RK-terminal → openbare HiveMQ-broker → Node-RED MQTT in → Debug
Conclusie
Je hebt Node-RED op een reComputer RK Series-apparaat geconfigureerd om verbinding te maken met een MQTT-broker, een topic te volgen en een JSON-bericht te ontvangen dat vanuit de terminal van het apparaat is gepubliceerd. Dit vormt een eenvoudige basis voor MQTT-gebaseerde IoT-toepassingen op het RK-platform.
In latere handleidingen kan de MQTT-flow worden uitgebreid om sensorgegevens te verwerken, berichten te publiceren met een mqtt out-node of te integreren met andere industriële protocollen en dashboards.