Communication MQTT avec Node-RED
Dernière mise à jour:
Introduction
MQTT est un protocole léger de messagerie par publication/abonnement, largement utilisé dans les applications IoT. Au lieu de communiquer directement entre eux, les appareils envoient des messages à un broker MQTT sur un topic, auquel les autres clients peuvent s’abonner pour les recevoir.
Node-RED intègre des nœuds MQTT qui facilitent la réception et le traitement des messages IoT sans développer une application MQTT complète. Dans ce tutoriel, nous configurerons Node-RED sur un appareil reComputer RK Series pour s’abonner à un topic du broker MQTT public de HiveMQ, puis publierons un message JSON depuis le terminal RK afin de vérifier la connexion.
Sécurité : Cet exemple utilise le broker public partagé de HiveMQ sur le port TCP 1883, sans TLS ni authentification. Utilisez uniquement des données de test. Ne transmettez pas de mots de passe, de données personnelles ou de données industrielles ou de production. En production, utilisez un broker avec authentification et TLS.
Prérequis
| Élément | Exigence |
|---|---|
| Matériel | Appareil reComputer RK Series |
| Système d’exploitation | Linux ARM64 basé sur Debian |
| Node-RED | Installé et en cours d’exécution ; suivez d’abord Premiers pas avec Node-RED |
| Réseau | Accès Internet au broker MQTT public de HiveMQ |
| Accès | Un navigateur pour Node-RED et un terminal ou une connexion SSH à l’appareil RK |
Fonctionnement
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 objectÉtape 1 : Ouvrir l’éditeur Node-RED
Vérifiez que Node-RED fonctionne sur l’appareil RK :
sudo systemctl status nodered.service --no-pagerSi nécessaire, démarrez le service :
node-red-startSi cette commande affiche les journaux en continu, appuyez sur Ctrl+C pour revenir au terminal ; Node-RED continue de fonctionner en arrière-plan.
Recherchez l’adresse IP locale de l’appareil :
hostname -IDepuis un ordinateur sur le même réseau, ouvrez l’éditeur Node-RED :
http://<RK_DEVICE_IP>:1880Remplacez <RK_DEVICE_IP> par l’adresse IP réelle de l’appareil. Connectez-vous si l’authentification de l’éditeur a été activée lors de la configuration de Node-RED.
Étape 2 : Ajouter un nœud d’entrée MQTT
- Ouvrez Flow 1 ou créez un nouveau flux.
- Recherchez mqtt in dans la palette de gauche, puis faites glisser le nœud violet mqtt in dans l’espace de travail.
- Double-cliquez sur le nœud pour ouvrir Edit mqtt in node.
- À côté de Server, cliquez sur le bouton d’ajout/modification, + ou une icône de crayon selon la version, pour créer une configuration de broker MQTT.
Étape 3 : Configurer le broker HiveMQ
Dans la boîte de dialogue de configuration du broker MQTT, renseignez :
| Paramètre | Valeur |
|---|---|
| Name | HiveMQ (nom d’affichage facultatif) |
| Server | broker.hivemq.com |
| Port | 1883 |
| Protocol | MQTT V3.1.1 |
| Client ID | Laisser vide pour générer automatiquement un ID |
| TLS | Désactivé |
| Username / Password | Laisser vide |

Conservez les autres options par défaut, puis cliquez sur Add ou Update, selon la version de l’éditeur, pour enregistrer la configuration du broker.
Le broker public est partagé avec d’autres utilisateurs. Choisissez un topic peu susceptible d’entrer en conflit avec d’autres tests. Cet exemple utilise
rk3588/seeed/demo. Si vous choisissez un autre topic, utilisez-le à la fois dans l’abonnement et dans la commande de publication.
Étape 4 : Configurer l’abonnement MQTT
De retour dans Edit mqtt in node, configurez :
| Paramètre | Valeur |
|---|---|
| Server | HiveMQ |
| Action | Subscribe to single topic |
| Topic | rk3588/seeed/demo |
| QoS | 0 |
| Output | auto-detect (parsed JSON object, string or buffer) |
| Name | SeeedStudio |

Cliquez sur Done pour enregistrer le nœud.
Les topics MQTT sont sensibles à la casse. Le topic de Node-RED doit correspondre exactement à celui utilisé par le client de publication en ligne de commande. Si vous choisissez un topic unique, modifiez également les commandes de publication de l’étape 7.
Étape 5 : Relier MQTT In à Debug et déployer
- Recherchez debug dans la palette, puis faites glisser le nœud vert debug dans l’espace de travail.
- Reliez la sortie de SeeedStudio (mqtt in) à l’entrée du nœud debug.
- Ouvrez les paramètres du nœud Debug et laissez sa sortie sur
msg.payload. - Cliquez sur Done, puis sur Deploy en haut à droite.
- Ouvrez le panneau Debug messages.
Le flux obtenu doit ressembler à ceci :
[SeeedStudio (mqtt in)] ----> [debug node]Une fois la connexion MQTT établie, le nœud mqtt in doit afficher un état vert connected en dessous.
Étape 6 : Installer le client MQTT en ligne de commande
Dans le terminal de l’appareil reComputer RK, installez les outils en ligne de commande Mosquitto :
sudo apt update
sudo apt install -y mosquitto-clientsLa commande mosquitto_pub envoie un message MQTT au broker. Node-RED étant déjà abonné au même topic, il peut le recevoir.
Étape 7 : Publier un message JSON de test
Exécutez la commande suivante dans le terminal RK :
mosquitto_pub \
-h broker.hivemq.com \
-p 1883 \
-t "rk3588/seeed/demo" \
-m '{"device":"RK3588","temperature":25.6}'Cette commande publie un message JSON sur le topic rk3588/seeed/demo à l’aide du broker public de HiveMQ.
Pour obtenir une sortie plus détaillée dans le terminal, utilisez l’option -d :
mosquitto_pub -d \
-h broker.hivemq.com \
-p 1883 \
-t "rk3588/seeed/demo" \
-m '{"device":"RK3588","temperature":25.6}'Étape 8 : Vérifier le message reçu dans Node-RED
Revenez dans l’éditeur Node-RED et consultez le panneau Debug messages. Le nœud d’entrée MQTT doit transmettre le message au nœud Debug.
Le message doit contenir les données suivantes :
{
"device": "RK3588",
"temperature": 25.6
}Comme Output du nœud d’entrée MQTT est configuré pour détecter automatiquement le JSON, Node-RED peut afficher la charge utile sous forme d’objet JavaScript analysé. Le panneau indique également le topic rk3588/seeed/demo.

La réception du message confirme ce chemin de communication :
Terminal reComputer RK → broker public de HiveMQ → Node-RED MQTT in → Debug
Conclusion
Vous avez configuré Node-RED sur un appareil reComputer RK Series pour se connecter à un broker MQTT, s’abonner à un topic et recevoir un message JSON publié depuis le terminal de l’appareil. Cela constitue une base simple pour développer des applications IoT utilisant MQTT sur la plateforme RK.
Dans de prochains tutoriels, le flux MQTT pourra être étendu au traitement des données de capteurs, à la publication de messages avec un nœud mqtt out, ou à l’intégration avec d’autres protocoles industriels et tableaux de bord.