Ingenierie du systeme
BerceauIoT repose sur une architecture distribuee a deux noeuds embarques — ESP32-C6 et ESP32-WROVER — communiquant via MQTT vers deux Raspberry Pi. Le systeme collecte, traite et affiche en temps reel les constantes vitales du nourrisson sur une interface web locale.
1. Architecture globale
ESP32-C6 — Capteurs vitaux
Microcontroleur principal de mesure. Pilote le radar MR60BHA2 (respiration + BPM) et le capteur optique MAX30102 (SpO2). Publie les donnees via MQTT toutes les 5 secondes.
ESP32-WROVER — Peripheriques
Microcontroleur secondaire. Gere le capteur de lumiere LM393, le buzzer passif PWM pour les alertes sonores, et le capteur HX711 pour la detection de presence par poids.
Raspberry Pi 1 — Dashboard
Serveur central Flask. Recoit tous les topics MQTT via HiveMQ Cloud, stocke les donnees, genere les alertes et sert l'interface web sur le reseau local de la creche.
Raspberry Pi 2 — Video
Dedie a la surveillance video. Execute le flux rpicam-vid via Pi Camera NoIR et le module de reconnaissance faciale OpenCV + face_recognition pour identifier les enfants autorises.
2. Flux de donnees MQTT
3. Topics MQTT
| Topic | Publie par | Contenu | Frequence |
|---|---|---|---|
| berceauiot/radar/bpm | ESP32-C6 | Frequence cardiaque radar (BPM) | Toutes les 5s |
| berceauiot/radar/respiration | ESP32-C6 | Frequence respiratoire (resp/min) | Toutes les 5s |
| berceauiot/spo2/valeur | ESP32-C6 | Saturation oxygene SpO2 (%) | Toutes les 5s |
| berceauiot/spo2/bpm | ESP32-C6 | BPM optique MAX30102 | Toutes les 5s |
| berceauiot/lumiere | ESP32-WROVER | Etat jour / nuit (0 ou 1) | Toutes les 2s |
| berceauiot/poids | ESP32-WROVER | Poids detecte en grammes | Toutes les 3s |
| berceauiot/alerte | Raspberry Pi 1 | Niveau alerte (info / warning / critique) | Sur evenement |
4. Composants et installation
| Composant | Quantite | Emplacement | Role |
|---|---|---|---|
| Raspberry Pi 4 | 1 | Local technique (pres routeur) | Dashboard Flask + broker MQTT subscriber |
| Raspberry Pi 4 | 1 | Chambre bebes | Flux video + reconnaissance faciale |
| ESP32-C6 | 1 | Integre au berceau | Radar MR60BHA2 + MAX30102 |
| ESP32-WROVER | 1 | Integre au berceau | LM393 + buzzer + HX711 |
| Pi Camera NoIR | 1 | Au-dessus du berceau | Surveillance video nuit et jour |
| Buzzer passif 5V | 1 | Bord du berceau | Alertes sonores locales immédiates |
5. Logique des alertes
Niveaux d'alerte
Niveau info : Toutes les valeurs dans les seuils normaux. Dashboard vert, aucune action requise.
Niveau warning : SpO2 entre 90 et 94%, ou BPM hors plage moderee. Buzzer 2 bips a 1500 Hz. Notification dashboard orange.
Niveau critique : SpO2 inferieur a 90%, ou arret respiratoire detecte par radar. Buzzer 5 bips rapides a 2500 Hz. Alerte rouge dashboard. Intervention immediate requise.
Seuils parametres
SpO2 normale : 95% et plus
SpO2 avertissement : entre 90% et 94%
SpO2 critique : inferieure a 90%
BPM normal : entre 100 et 180 BPM (nourrisson)
Respiration normale : entre 30 et 60 resp/min
Poids presence : superieur a 1000g (bebe present)
Mode nuit : LM393 = 1 (obscurite detectee)
6. Plan de deploiement
- Phase 1 (J-7 a J-5) : Reception materiel, test capteurs en laboratoire, flashage MicroPython ESP32
- Phase 2 (J-3 a J-1) : Installation dans les berceaux, calibration radar MR60BHA2, test connexions MQTT
- Phase 3 (J0) : Activation Raspberry Pi, configuration Flask, premier test bout-en-bout MQTT
- Phase 4 (J1 a J2) : Formation personnel puericultrice (2h), demonstration interface web, parametrage seuils d'alerte
- Phase 5 (J3 a J90) : Monitoring pilote 24h/7, support technique actif, collecte feedback utilisateurs
- Phase 6 (J90+) : Analyse des resultats, redaction rapport final TFE, validation de la methode
7. Securite et conformite
Protection des donnees
RGPD : Les donnees biometriques des nourrissons sont classees sensibles. Consentement parental ecrit obligatoire avant activation.
Droit a l'oubli : Suppression complete des donnees sur demande, dans les 72 heures.
Acces restreint : Seul le personnel autorise (puericultrice, responsable) peut acceder au dashboard via identifiants uniques.
Stockage local : Toutes les donnees restent sur le reseau interne de la creche. Aucune donnee personnelle envoyee sur Internet.
Securite reseau
Reseau isole : Les Raspberry Pi et ESP32 operent sur un VLAN dedie, isole du reseau administratif.
MQTT : Connexion HiveMQ Cloud avec authentification username/password. Topics prives non accessibles publiquement.
Interface web : Acces protege par authentification Flask, session expirante apres 30 minutes d'inactivite.
Video : Flux camera accessible uniquement en reseau local. Historique video chiffre, retention maximale 30 jours.