Photo de l'interface sur écran TFT (tactile)
Note : Les niveaux présentés dans "Caractéristiques" sont subjectifs. La signification précise est détaillée dans Détails des caractéristiques des projets universitaires.
Le projet consiste en un assistant domotique centralisé basé sur un microcontrôleur ESP32, conçu pour permettre le contrôle et la surveillance d'une habitation. Le système intègre un ensemble de capteurs environnementaux, d'interfaces utilisateur et de sorties de commande dans une architecture matérielle et logicielle cohérente.
L'architecture matérielle s'articule autour de l'ESP32 qui centralise la gestion de tous les périphériques. Le système comprend des capteurs de température et pression (BMP280), de luminosité (BH1750 et photorésistance GL5528), et de qualité d'air (MQ-9 pour le monoxyde de carbone). Les interfaces utilisateur incluent un écran TFT tactile 2.4" et une interface web accessible localement via WiFi. Les sorties de commandes comportent deux relais pour les dispositifs TOR (250V AC / 2A) et deux sorties PWM pour la gradation (jusqu'à 60V).
L'architecture logicielle adopte une approche orientée objet avec une librairie SAEDomoLIB (C++) qui centralise les fonctionnalités. Le système fonctionne avec une boucle d'exécution non-bloquante basée sur des interruptions et des flags, garantissant la réactivité du système.
La communication s'effectue via plusieurs protocoles : I2C pour les capteurs BMP280 et BH1750, SPI pour l'écran TFT et le lecteur RFID, ainsi qu'ADC pour les capteurs analogiques. L'interface web utilise un serveur HTTP asynchrone avec WebSocket pour les mises à jour temps réel, évitant les actualisations complètes des pages et optimisant ainsi la bande passante.
Le système propose deux interfaces utilisateur distinctes mais complémentaires. L'écran TFT tactile offre un accès direct avec des composants graphiques modulaires (boutons, chaînes de caractères liées, menus contextuels). L'interface web, développée en HTML5/CSS3/JavaScript, utilise une architecture en "cartes" facilement extensible pour l'ajout de nouveaux périphériques.
Note : L'ensemble du code est disponnible sur mon GitHub : SAE301-DiagProgram
Un programme de test automatisé en Python a été développé pour valider le fonctionnement du système. Ce programme communique avec la carte via le port série et utilise des commandes JSON pour tester l'initialisation des composants, la connectivité WiFi, les mesures des capteurs et le fonctionnement des sorties.
Le programme effectue quatre phases de test : vérification de l'état des périphériques, tests de connectivité, analyse des données capteurs via WebSocket, et validation des sorties. Il génère automatiquement une fiche d'intervention PDF pré-remplie en cas de dysfonctionnement grâce à un compilateur LaTeX (pdflatex), facilitant la maintenance et le dépannage avec un document professionnel standardisé.
L'ensemble des procédures de tests, du programme Python et de l'architecture de validation est détaillé dans le dossier de fabrication présenté dans le résumé technique ci-dessus.
Ce projet d'assistant domotique ESP32 a permis de développer une solution complète intégrant conception électronique, programmation embarquée et interfaces utilisateur. L'architecture modulaire adoptée facilite la maintenance et l'évolution du système, tandis que la double interface (TFT et web) offre une flexibilité d'utilisation adaptée aux besoins de l'habitat moderne.
Les procédures de test automatisées et la génération de fiches d'intervention en LaTeX démontrent une approche professionnelle du développement, essentielle pour la fiabilité des systèmes domotiques. Le projet illustre la maîtrise des technologies IoT, des protocoles de communication industriels (I2C, SPI) et des architectures web temps réel.
Cette réalisation constitue une base solide pour des développements futurs en systèmes embarqués connectés et domotique intelligente, domaines en forte croissance dans l'industrie 4.0.