Repository navigation
01 Project Overview
Lors d'un entraînement sur home-trainer ou d'une séance de réadaptation cardiorespiratoire, la surveillance des constantes physiologiques est indispensable pour prévenir tout surmenage ou accident.
Ce projet propose une solution associant :
- Une station embarquée basée sur un microcontrôleur Arduino Uno R4 WiFi (Interface Homme-Machine).
- Une passerelle s'appuyant sur le protocole MQTT.
- Une plateforme de centralisation et de supervision Node-RED Dashboard 2.0 permettant au praticien de suivre l'effort, d'ajuster les seuils de tolérance et de déclencher des alertes.
Figure 2 : Vue d'ensemble du système en fonctionnement avec affichage dynamique sur l'écran OLED et transmission des flux télémétriques vers le dashboard.
Le système s'articule autour de trois couches interconnectées :
graph TD
subgraph Station Embarquée [Station Embarquée - Arduino Uno R4 WiFi]
S1[Capteur IR MLX90614] -->|Bus I2C| MCU[Microcontrôleur RA4M1]
S2[Capteur Pouls DFRobot / Potentiomètre] -->|Analogique A0 / A1| MCU
JOY[Joystick Bi-axe + Clic] -->|Entrées A2, A3| MCU
SW[Interrupteur à bascule D2] -->|Mode Santé / Hors-ligne| MCU
MCU -->|Affichage I2C| OLED[Écran OLED SSD1306 128x64]
MCU -->|Signalisation PWM| BUZZ[Buzzer Piézoélectrique]
MCU -->|Indication d'état| LEDS[LED Verte + LED RGB]
end
subgraph Communication [Réseau & Protocole]
MCU <-->|Wi-Fi 802.11 b/g/n| BROKER[Broker MQTT - broker.emqx.io:1883]
end
subgraph Supervision [Poste Médical & Télésurveillance]
BROKER <-->|MQTT Pub / Sub| NODERED[Serveur Node-RED]
NODERED --> DASH[Dashboard Web Temps Réel]
NODERED --> ALGO[Moteur de Règles & Seuils d'Alerte]
end
-
Mesures Physiologiques :
- Fréquence cardiaque calculée en temps réel (battements par minute).
- Température corporelle sans contact (thermométrie infrarouge).
-
Double Affichage OLED :
-
Page 1 (Principal) : Température corporelle grand format (°C), Fréquence Cardiaque (BPM), Source de mesure active (
captpour capteur réel,potpour simulateur d'effort), Statut d'alerte (OK/ALERTE), Guide utilisateur ("Posez le doigt"). - Page 2 (Diagnostics) : État de la connexion Wi-Fi et du lien MQTT, Qualité du signal cardiaque, Mode de calcul des seuils (Dashboard distant vs Repli de secours local).
-
Page 1 (Principal) : Température corporelle grand format (°C), Fréquence Cardiaque (BPM), Source de mesure active (
-
Bascule Rapide de Source BPM :
- Par pression sur le clic du joystick ou via commande distante Node-RED (
gaelle-capteurs/source_cmd).
- Par pression sur le clic du joystick ou via commande distante Node-RED (
-
Gestion des Alarmes Intelligentes :
- Alerte Cardiaque : LED RGB clignotante rouge + Mélodie de Mozart (Une petite musique de nuit KV 525).
- Alerte Thermique : LED RGB clignotante bleue + Séquence de bips d'urgence à 600 Hz.
- Alerte Mixte (Double Dépassement) : Clignotement alterné Rouge/Bleu + Alternance continue Mélodie / Bips.
- L'acquisition des signaux vitaux est mise en veille sécurisée (publication de valeurs nulles et notification d'arrêt).
- La station bascule en mode détente en exécutant sur l'écran OLED le jeu Chrome Dino avec simulation physique fidèle (accélération, gravité, calcul des collisions par boîtes englobantes, génération pseudo-aléatoire d'obstacles : petits cactus, grands cactus et ptérodactyles volants).
- Les scores de jeu et records historiques sont conservés et publiés via MQTT sur le topic dédié
gaelle-capteurs/dino_score.
##Images de notre interface via l'écran
Pour reproduire ou étendre ce projet, consultez les ressources documentaires suivantes :
- Tutoriel Random Nerd Tutorials - ESP32 / Arduino MQTT
- Documentation Officielle Arduino Uno R4 WiFi
- Guide Node-RED Dashboard 2.0 (@flowfuse/node-red-dashboard)
- Documentation Bibliothèque Graphique U8g2
- Spécifications Capteur Infrarouge Melexis MLX90614
Note
Librairies à déclarer dans PlatformIO (platformio.ini) / Arduino IDE :
WiFiS3-
PubSubClient(Nick O'Leary) Wire-
U8g2(Oliver Kraus) Adafruit MLX90614 LibraryDFRobot_Heartrate
Projet d'Ingénierie Biomédicale & IoT - Promotion ISIS | Développé avec Arduino Uno R4 WiFi & Node-RED