04 Node RED and MQTT - Xerithh/TP-IOT-Biomedic GitHub Wiki
4. Architecture MQTT et Dashboard Node-RED (Node-RED Flow)
La communication bidirectionnelle entre la station embarquée Arduino et le poste de télésurveillance repose sur le protocole MQTT via le courtier public broker.emqx.io:1883.
Matrice des Topics MQTT
| Topic MQTT | Direction | Format du Payload | Fréquence / Événement | Description Fonctionnelle |
|---|---|---|---|---|
gaelle-capteurs/bpm |
Arduino -> Node-RED | Entier (ex: 78) |
Périodique (1 Hz) | Fréquence cardiaque mesurée ou simulée |
gaelle-capteurs/temperature |
Arduino -> Node-RED | Décimal (ex: 36.8) |
Périodique (1 Hz) | Température corporelle sans contact (°C) |
gaelle-capteurs/bouton |
Arduino -> Node-RED | Chaîne ("on" / "off") |
Sur événement (Switch D2) | Notification d'état de la station (actif/veille) |
gaelle-capteurs/source |
Arduino -> Node-RED | Chaîne ("capteur" / "pot") |
Sur événement | Indication de la source de rythme cardiaque active |
gaelle-capteurs/signal_bpm |
Arduino -> Node-RED | Chaîne ("ok" / "aucun") |
Périodique (1 Hz) | Détection de la présence effective du doigt sur le capteur |
gaelle-capteurs/dino_score |
Arduino -> Node-RED | JSON ({"score":420,"record":850}) |
Retained / Fin de partie | Envoi des scores du jeu Dino lors du mode pause |
gaelle-capteurs/alarme_bpm |
Node-RED -> Arduino | Chaîne ("on" / "off") |
Sur dépassement de seuil | Ordre d'activation de l'alarme sonore & visuelle BPM |
gaelle-capteurs/alarme_temp |
Node-RED -> Arduino | Chaîne ("on" / "off") |
Sur dépassement de seuil | Ordre d'activation de l'alarme sonore & visuelle Temp |
gaelle-capteurs/source_cmd |
Node-RED -> Arduino | Chaîne ("capteur" / "pot") |
Commande opérateur | Forçage distant de la source de rythme cardiaque |
gaelle-capteurs/led1 |
Node-RED -> Arduino | Chaîne ("on" / "off") |
Commande opérateur | Allumage forcé du témoin vert de la LED RGB |
Description du Flow Node-RED
Le flux Node-RED centralise le traitement de la télémétrie biomédicale et assure les fonctions suivantes :
- Acquisition & Parsing : Réception asynchrone des flux MQTT et conversion numérique automatique des métriques.
- Supervision Graphique :
- Moteur d'Alerte Médicale & Hystérésis :
- Comparaison en continu des valeurs reçues avec des curseurs réglables de seuils critiques.
- Déclenchement instantané d'une Bannière d'Alerte Santé visuelle et émission d'ordres MQTT vers l'Arduino pour le retour haptique/sonore.
- Fichier Source du Flow : Le flux complet est versionné et disponible directement dans le dépôt sous le fichier
flows.json.
Tableau de Bord et Flow en Fonctionnement
Figure 5 : Interface de télésurveillance active Node-RED Dashboard — affichage de la jauge BPM (181 bpm en zone haute), de la courbe d'évolution temporelle et du statut du mode Dino.