page4 - elaasahli85/proj_IOT GitHub Wiki

📊 Flow et dashboard Node-RED

1. Présentation

Node-RED assure la supervision du système. Il reçoit les mesures publiées par l'Arduino, met à jour le graphique et transmet les commandes destinées à la LED et au buzzer.

Le flow gère aussi l'état du système (activé ou désactivé) à partir du switch du dashboard ou du bouton physique.

2. Flow Node-RED

Flow Node-RED

Figure 1 : Flow Node-RED du projet.

3. Fonctionnement des nœuds

Nœud Rôle
mqtt in (arduino/ecg/bpm) Reçoit les mesures de fréquence cardiaque
smooth Lisse les valeurs de BPM avant leur affichage et leur utilisation
Gestion switch Prend en compte le switch du dashboard et les appuis sur le bouton physique
function Etat système Mémorise l'état activé ou désactivé
function alarme Compare le BPM aux seuils lorsque le système est activé
function led Envoie le BPM au graphique et à l'Arduino (pour la LED)
mqtt out Publie les commandes MQTT destinées à l'Arduino

4. Gestion de l'état du système

Le système peut être activé ou désactivé depuis le switch du dashboard ou par un appui sur le bouton physique. Chaque appui sur le bouton inverse l'état.

La fonction Gestion switch met à jour l'état et le switch du dashboard, pour que les deux restent synchronisés. L'état est ensuite enregistré dans le contexte du flow (flow.set("systemEnabled", ...)) par la fonction Etat système, pour être utilisé par la logique d'alarme.

5. Gestion de l'alarme

La fonction alarme utilise le BPM et l'état du système. Lorsque le système est activé et que le BPM est valide (supérieur à 0), l'alarme est demandée si le BPM est inférieur à 50 ou supérieur à 120.

Elle est exécutée à chaque nouveau BPM et à chaque changement d'état. Le dernier BPM est conservé dans le contexte du nœud.

let systemEnabled = flow.get("systemEnabled") ?? false;
let bpm = context.get("bpm") ?? 0;

const alarm = systemEnabled && bpm > 0 && (bpm < 50 || bpm > 120);

msg.topic = "arduino/ecg/alarm_enable"; msg.payload = alarm ? "ON" : "OFF";

return msg;

Extrait simplifié : la fonction complète met aussi à jour bpm à chaque nouveau message reçu.

6. Dashboard

Le dashboard affiche l'évolution du BPM (graphique), la cadence envoyée à la LED, l'état de l'alarme, et permet d'activer ou désactiver le système avec le switch.

Dashboard

Figure 2 : Interface de supervision du système.

⚠️ **GitHub.com Fallback** ⚠️