Table of Contents

Introduction 2

Contexte et justification 2

Objectifs du projet 3

Points forts du système 3

1. Sécurité et bien-être renforcés des enfants 3

2. Cas concrets d'intervention 3

3. Optimisation du travail en crèche 3

Architecture technique et composants 4

Library 5

Rôle du Raspberry Pi 6

Le Raspberry Pi sert de plateforme centrale pour : 6

Circonstances de détection spécifiques 6

Schéma fonctionnel du système : 6

4. Application de Surveillance Développée sous Python 7

4.1. Architecture Logicielle 7

4.2. Interface Utilisateur et Fonctionnalités 7

Tableau de Bord Principal : 7

Fiche Individuelle par Bébé : 7

4.3. Module de Validation Quotidienne 8

Fonctionnalité "Check-in Quotidien" : 8

Workflow de Validation : 8

5. Intégration des Données et Sécurité 8

5.1. Synchronisation des Données 8

5.2. Gestion des Accès 8

6. Protocole d'Alerte et d'Intervention 8

6.1. Système d'Alerte Multi-niveaux 8

7. Maintenance et Évolutivité 9

7.1. Calendrier de Maintenance 9

7.2. Perspectives d'Évolution 9

8. Plan de Déploiement 9

8.1. Phase de Test 9

8.2. Déploiement Complet 9

Code générale du projet 11

ARCHITECTURE DU CODE 16

1. Structure Modulaire 16

2. Initialisation du Système 16

3. Boucle Principale de Surveillance 16

4. Système d'Alerte Intelligent 17

5. Base de Données SQLite 17

INTÉGRATION MATÉRIELLE 17

6. Communication avec les Capteurs 17

7. Gestion des Erreurs 18

EXEMPLE DE SORTIE 18

RÉSUMÉ DES FONCTIONNALITÉS 18

CONCLUSION GÉNÉRALE 18

Synthèse des apports principaux : 18

Contributions majeures : 19

Implications pratiques : 19

Conclusion finale : 19







TFE 6ème TQI – Projet : Système de surveillance intelligente pour lits de crèche

Introduction

Ce projet s’inscrit dans une démarche d’innovation technologique au service de la petite enfance. Il a pour objectif principal d’améliorer la sécurité et le bien-être des bébés au sein des crèches, grâce à la conception et au déploiement d’un système de surveillance intelligent intégré aux lits.
Le dispositif proposé permet un monitoring continu et non invasif des nourrissons, en captant et analysant en temps réel des données essentielles telles que le rythme cardiaque, la respiration, la position corporelle ou encore les mouvements.
Ces informations sont centralisées et traitées par un Raspberry Pi, puis restituées via une interface applicative accessible au personnel éducatif, favorisant ainsi une vigilance permanente et une réactivité accrue en cas d'anomalie.

Shape1

Contexte et justification

La sécurité des enfants en crèche est une préoccupation majeure pour les professionnels de la petite enfance et les parents. Les méthodes traditionnelles de surveillance reposent essentiellement sur des vérifications visuelles régulières, qui présentent certaines limites : intermittence, risque d'inattention, ou difficulté à détecter certains problèmes médicaux discrets.
L'introduction d'un système de monitoring automatisé et connecté permet de pallier ces lacunes en offrant une supervision constante, précise et discrète, sans perturber le sommeil de l'enfant.

Shape2

Objectifs du projet

Shape3

Points forts du système

1. Sécurité et bien-être renforcés des enfants

2. Cas concrets d'intervention

3. Optimisation du travail en crèche

Shape4

Architecture technique et composants

Le système repose sur un Raspberry Pi qui centralise les données des différents capteurs. Voici les composants principaux :

1. Raspberry Pi 4 (4GB)

2. Capteur de Poids HX711

3. Capteur Ultrason HC-SR04

4. Capteur MPU6050 (Gyroscope/Accéléromètre)

5. Capteur Cardiaque IWR6843ISK















Library



1. CAPTEUR DE POIDS

Composant : HX711
Bibliothèque : RPi.GPIO
Lien : https://pypi.org/project/RPi.GPIO/



2. CAPTEUR ULTRASON

Composant : HC-SR04
Bibliothèque : RPi.GPIO
Lien : https://pypi.org/project/RPi.GPIO/

3. CAPTEUR MOUVEMENT/RESPIRATION

Composant : MPU6050
Bibliothèque : smbus2
Lien : https://pypi.org/project/smbus2/



4. CAPTEUR CARDIAQUE

Composant : IWR6843ISK
Bibliothèque : pyserial
Lien : https://pypi.org/project/pyserial/



5. CARTE PRINCIPALE

Composant : Raspberry Pi 4
Bibliothèque : sqlite3 (inclus Python)
Lien : https://docs.python.org/3/library/sqlite3.html

















Rôle du Raspberry Pi

Le Raspberry Pi sert de plateforme centrale pour :

Circonstances de détection spécifiques

Shape5

SShape6 chéma fonctionnel du système :

Capteurs → Raspberry Pi → Base de données → Application

Système d'alerte



Le Raspberry Pi orchestre l'ensemble du système, garantissant une coordination parfaite entre la collecte des données, leur analyse, et la diffusion des informations.

Shape7

Budget prévisionnel

Le coût total pour un lit intelligent s'élève à 146,20 €. Cette solution offre une plateforme robuste et extensible pour des développements futurs.

Shape8

Perspectives

Ce système ouvre la voie à une crèche plus sûre et connectée. Les perspectives d'évolution incluent

Shape9

Conclusion

Ce projet démontre comment les technologies IoT, centrées autour du Raspberry Pi, peuvent significativement améliorer la sécurité et le bien-être dans les structures d'accueil de la petite enfance, tout en optimisant le travail des professionnels.



4. Application de Surveillance Développée sous Python

4.1. Architecture Logicielle

L'application de supervision sera développée en Python, exploitant les bibliothèques suivantes :

4.2. Interface Utilisateur et Fonctionnalités

Tableau de Bord Principal :

Fiche Individuelle par Bébé :

4.3. Module de Validation Quotidienne

Fonctionnalité "Check-in Quotidien" :

Workflow de Validation :

  1. À l'arrivée du bébé, scan du badge ou sélection manuelle

  2. Vérification automatique par les capteurs (poids, présence)

  3. Case à cocher "Bébé bien installé dans son lit"

  4. Notification de confirmation envoyée à l'application

5. Intégration des Données et Sécurité

5.1. Synchronisation des Données

5.2. Gestion des Accès

6. Protocole d'Alerte et d'Intervention

6.1. Système d'Alerte Multi-niveaux



#Shape10 Exemple de code de gestion d'alerte

def gerer_alerte(niveau, id_bebe):

if niveau == 3:

envoyer_alerte_urgence(id_bebe)

prevenir_directrice(id_bebe)

logger_intervention(id_bebe, "Alerte urgence")



7. Maintenance et Évolutivité

7.1. Calendrier de Maintenance

7.2. Perspectives d'Évolution

8. Plan de Déploiement

8.1. Phase de Test

8.2. Déploiement Complet



Shape11

import tkinter as tk

from datetime import datetime



class ApplicationCreche(tk.Tk):

def __init__(self):

super().__init__()

self.title("Supervision Crèche - Lits Intelligents")

self.geometry("1200x800")

# Interface tableau de bord

self.creer_tableau_bord()

def creer_tableau_bord(self):

# Code de l'interface utilisateur

pass

def valider_presence_bebe(self, id_bebe):

# Gestion de la case à cocher quotidienne

Pass



Cette application Python offrira une solution complète, intuitive et professionnelle pour la gestion quotidienne de la sécurité des bébés, tout en respectant les normes de confidentialité et de protection des données.

















Code générale du projet





Ce code initialise les dépendances fondamentales d'un système de surveillance infantile sophistiqué sur Raspberry Pi. Les imports sélectionnés couvrent trois domaines critiques : la gestion du temps avec time et datetime pour les mesures synchronisées, la persistance des données via sqlite3 pour l'archivage des paramètres vitaux et json pour la sérialisation, et les communications matérielles avec smbus2 pour le protocole I2C des capteurs inertiels, RPi.GPIO pour le contrôle direct des broches avec les capteurs de poids et ultrasons, et serial pour la liaison UART avec le radar cardiaque. La bibliothèque logging assure quant à elle la traçabilité de tous les événements système et alertes médicales. Cet écosystème logiciel permet une acquisition multisenseur coordonnée, une analyse en temps réel des signes vitaux comme la respiration et le rythme cardiaque, et le stockage sécurisé des données pour un monitoring continu et fiable du bien-être du nourrisson.



Ce code implémente la classe `CapteurPoidsHX711` qui gère la communication avec un capteur de poids numérique HX711 via les broches GPIO du Raspberry Pi. La méthode `read_raw_value()` effectue une lecture séquentielle des 24 bits de données en générant des impulsions d'horloge sur la broche PD_SCK et en lisant l'état de la broche DOUT à chaque cycle. Le code commence par attendre que le capteur soit prêt (DOUT passe à 0), puis lit chaque bit en les décalant progressivement dans la variable `raw_value`. Cette opération bas niveau permet d'acquérir la valeur brute du capteur avant conversion en poids réel, avec des paramètres d'offset et scale pour la calibration future.



Cette section complète la lecture du capteur HX711 en configurant le gain via une impulsion d'horloge supplémentaire, puis convertit la valeur brute 24 bits en format signé utilisant le complément à deux pour gérer les valeurs négatives. La méthode get_poids_kg() transforme ensuite cette valeur brute en poids kilogrammes en appliquant les paramètres de calibration (offset et scale) qui compensent respectivement la tare et la sensibilité du capteur, avant d'arrondir le résultat à deux décimales pour une précision métrique adaptée à la surveillance infantile.



Cette classe implémente un capteur à ultrasons HC-SR04 qui mesure la distance par time-of-flight. Elle envoie une impulsion de 10 microsecondes sur la broche TRIGGER puis mesure le temps écoulé entre l'envoi et la réception de l'écho sur la broche ECHO. Le code capture les timestamps start_time au début de l'impulsion echo et stop_time à sa fin, permettant de calculer la durée de propagation de l'onde sonore pour déterminer la distance ultérieurement.

Cette section calcule d'abord la distance en centimètres pour le capteur ultrason en divisant par deux le produit du temps écoulé et de la vitesse du son (343 m/s), puis implémente la classe du capteur MPU6050 (accéléromètre/gyroscope) qui s'initialise via I2C en écrivant dans son registre de contrôle pour le réveiller, et lit les données 16 bits brutes en combinant les registres haut et bas avant de convertir les valeurs en complément à deux pour obtenir des mesures d'accélération signées.



Cette partie du code implémente deux fonctionnalités cruciales : la méthode get_acceleration() qui lit les valeurs des registres spécifiques du MPU6050 (0x3B, 0x3D, 0x3F) et les convertit en accélérations en g en divisant par 16384, puis la méthode detecter_respiration() qui acquiert des mesures d'accélération sur l'axe Z pendant 10 secondes à 10 Hz et détecte la respiration en vérifiant si la variation entre les valeurs minimales et maximales dépasse un seuil de 0.01g. Enfin, elle initialise la classe CapteurCardiaqueIWR6843 qui établit une connexion série UART à 115200 bauds pour communiquer avec le capteur radar cardiaque.


Cette section implémente la méthode get_rythme_cardiaque() qui lit les données série du capteur radar IWR6843, parse les trames pour extraire la valeur de rythme cardiaque après le préfixe "HR:", et gère les erreurs de communication. Puis elle initialise la classe principale SystemeSurveillance qui configure le mode GPIO BCM, instancie les quatre capteurs (poids HX711, ultrason HC-SR04, mouvement MPU6050 et cardiaque IWR6843) et prépare la base de données pour la collecte centralisée des données physiologiques.



Cette partie définit les seuils d'alerte pour la surveillance (poids minimum 2kg, distance 30cm, fréquence cardiaque 80-160 BPM) et initialise la base de données SQLite en créant une table 'donnees_bebe' qui stocke timestamp, mesures des capteurs (poids, distance, accélérations 3D, rythme cardiaque) et messages d'alerte pour l'historique médical.


Cette section implémente la collecte multisensorielle synchronisée qui agrège le poids, la distance ultrasonique, l'accélération 3D, le rythme cardiaque et la détection respiratoire dans un dictionnaire horodaté, puis analyse ces paramètres physiologiques pour générer des alertes médicales basées sur les seuils prédéfinis : poids anormalement bas, position debout potentielle, et tachycardie/bradycardie, formant ainsi le cœur algorithmique du système de surveillance infantile.


Cette partie complète le système en détectant l'absence de mouvement respiratoire, sauvegarde l'ensemble des données physiologiques et états d'alerte dans la base SQLite, et initie la boucle principale de surveillance qui assurera le monitoring continu en collectant périodiquement les paramètres vitaux du nourrisson.



Cette section implémente la boucle principale de surveillance qui exécute en continu toutes les 2 secondes la collecte des données multisenseurs, l'analyse des alertes médicales, la sauvegarde en base de données et la notification des anomalies, tout en gérant proprement l'arrêt du système via KeyboardInterrupt pour assurer un monitoring infantile ininterrompu et sécurisé.

Cette section finale implémente la notification des alertes via affichage console, nettoie les ressources matérielles et logicielles à l'arrêt du système (GPIO, base de données, port série), et lance l'exécution principale lorsque le script est directement exécuté, formant ainsi le point d'entrée opérationnel complet du système de surveillance infantile.









ARCHITECTURE DU CODE

1. Structure Modulaire

Le code est organisé en 5 classes spécialisées :

Shape12

FONCTIONNEMENT DÉTAILLÉ

2. Initialisation du Système

systeme = SystemeSurveillance()

3. Boucle Principale de Surveillance

systeme.executer_surveillance()

Cycle toutes les 2 secondes :

  1. COLLECTE → Lit toutes les données des capteurs

  2. ANALYSE → Vérifie si les valeurs dépassent les seuils critiques

  3. SAUVEGARDE → Stocke tout en base de données

  4. NOTIFICATION → Alerte en cas de problème

DÉTECTION DES SITUATIONS CRITIQUES :











4. Système d'Alerte Intelligent

Le code surveille en permanence :

Capteur

Mesure

Alerte déclenchée si

Poids

< 2.0 kg

"Bébé potentiellement absent"

Ultrason

Distance > 30 cm

"Bébé debout dans le lit"

Cardiaque

BPM < 80 ou > 160

"Rythme cardiaque anormal"

Respiration

Aucun mouvement

"Absence de respiration détectée"

Shape13

GESTION DES DONNÉES :

5. Base de Données SQLite

Structure de la table donnees_bebe :

- timestamp (horodatage)

- poids (kg)

- distance (cm)

- acceleration_x/y/z (mouvements)

- rythme_cardiaque (BPM)

- alerte (texte descriptif)

Exemple d'enregistrement :

2024-01-15 14:30:00 | 8.5 kg | 15 cm | 0.1/0.2/0.9 | 120 BPM | OK

Shape14

INTÉGRATION MATÉRIELLE

6. Communication avec les Capteurs

7. Gestion des Erreurs

Shape15

EXEMPLE DE SORTIE

Cas normal :

2024-01-15 14:30:00 - INFO - Statut normal - Toutes les valeurs sont OK

Cas d'alerte :

2024-01-15 14:31:00 - WARNING - Alertes détectées:

['ALERTE: Bébé potentiellement debout', 'ALERTE: Rythme cardiaque trop élevé']

NOTIFICATION: ALERTE: Bébé potentiellement debout

NOTIFICATION: ALERTE: Rythme cardiaque trop élevé

Shape16

RÉSUMÉ DES FONCTIONNALITÉS

Ce code transforme le Raspberry Pi en système de surveillance médicale temps réel qui :

Surveille en continu 4 paramètres vitaux
Détecte automatiquement les situations dangereuses
Sauvegarde l'historique pour analyse ultérieure
Alerte immédiatement le personnel soignant

Fonctionne 24h/24 de manière autonome

CONCLUSION GÉNÉRALE

Ce travail de fin d'études a présenté une solution innovante et concrète pour répondre aux enjeux de sécurité dans les structures d'accueil de la petite enfance. Le système de surveillance intelligente pour lits de crèche que nous avons développé représente une avancée significative dans l'intégration des technologies IoT au service du bien-être des enfants et de la sérénité des professionnels.

Synthèse des apports principaux :

Notre solution combine judicieusement des capteurs spécialisés (ultrason, MPU6050, IWR6843ISK, HX711) avec une plateforme Raspberry Pi, créant ainsi un écosystème complet de monitoring non invasif. La valeur ajoutée réside dans sa capacité à surveiller en continu les paramètres vitaux et comportementaux des nourrissons, tout en préservant leur confort et leur intimité. L'application Python développée spécifiquement pour ce projet offre une interface intuitive qui centralise l'ensemble des données et facilite le travail quotidien des équipes éducatives.

Contributions majeures :

La particularité innovante de notre système réside dans son approche préventive plutôt que réactive. Contrairement aux méthodes traditionnelles de surveillance, il permet de détecter les situations à risque avant qu'elles ne deviennent critiques. La fonctionnalité de validation quotidienne via case à cocher assure une traçabilité rigoureuse et renforce la responsabilisation de l'équipe. L'architecture modulaire choisie garantit par ailleurs une évolutivité du système pour des développements futurs.

Implications pratiques :

Pour les crèches, l'adoption de cette technologie se traduit par :

Pour les enfants, cela signifie :

Perspectives futures :

Ce projet ouvre la voie à plusieurs développements prometteurs :

Conclusion finale :

En définitive, ce système de surveillance intelligente dépasse la simple fonction technique pour s'inscrire dans une démarche éthique et responsable. Il témoigne de la capacité des technologies numériques à servir des causes humaines essentielles, lorsqu'elles sont conçues avec rigueur et sensibilité. La réussite de ce projet démontre qu'il est possible d'allier innovation technologique et bien-être infantile, créant ainsi une nouvelle référence en matière de sécurité dans les milieux d'accueil de la petite enfance.

Ce travail ne constitue pas une fin en soi, mais plutôt une base solide pour des recherches et développements futurs, dans l'objectif constant d'améliorer la qualité de l'accueil des jeunes enfants et les conditions de travail des professionnels qui les accompagnent.