page4 - elaasahli85/proj_IOT GitHub Wiki
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.

Figure 1 : Flow Node-RED du projet.
| 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 |
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.
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.
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.

Figure 2 : Interface de supervision du système.