TFE realise par Younes Bensellam — INRACI 6I · 2025-2026
Demander une demo
Architecture

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

ESP32-C6Radar + SpO2
HiveMQ CloudBroker MQTT public
Raspberry Pi 1Subscribe + Flask
Interface WebDashboard temps reel
ESP32-WROVERLumiere + Poids
HiveMQ CloudBroker MQTT public
Raspberry Pi 1Alertes + Stockage
Buzzer / AlerteNotification puericultrice

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

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.

MicroPython Flask MQTT HiveMQ OpenCV face_recognition Chart.js rpicam-vid paho-mqtt Raspberry Pi OS RGPD VLAN Systemd
TFE realise par Younes Bensellam — INRACI 6I · 2025-2026