Deep Learning pour l'embarqué

Système de Prédiction Météorologique Embarqué utilisant un réseau de neurones

Contexte et Importance

Le projet présente un dispositif de prédiction météorologique intégré basé sur un microcontrôleur ESP32. Ce type de système est crucial pour les applications "edge computing", où l'autonomie et la capacité de prise de décision locale sans dépendance à un réseau centralisé sont essentielles. Un exemple parmi tant d'autres possibles est l'agriculture, où anticiper une gelée peut protéger des cultures sensibles comme les arbres fruitiers en fleuraison, en activant des systèmes de chauffage préventifs (c'est une pratique qui existe). De nombreuses autres applications industrielles et énergétiques peuvent également tirer profit de ce type de dispositif. Cette autonomie vis-à-vis des grands réseaux est un avantage significatif pour des environnements dégradés comme ceux rencontrés pour l'agriculture, les sites industriels, etc.

Le dispositif est basé sur les éléments suivants :
  • Microcontrôleur : ESP32

  • Capteurs : BME280 pour la température, la pression atmosphérique et l'humidité

  • DS3231 pour la date et l'heure

  • Affichage : Écran I2C 4 lignes 20 caractères

  • Stockage : Carte SD

  • Connectivité : LED RGB et écran LCD

Fonctionnalités

Ce système permet de :

Acquisition de Données : Mesure des paramètres environnementaux toutes les 10 minutes.

Stockage et Affichage : Affichage des données en temps réel sur l'écran LCD et enregistrement sur une carte SD.

Prédiction Temporelle : Utilisation d'un réseau de neurones convolutifs 1D (CNN1D) pour prédire la température sur un horizon de 2 heures avec des données acquises toutes les 10 minutes pendant 4 heures.

Multitâche et Gestion Énergétique

Le dispositif utilise FreeRTOS pour gérer le multitâche, permettant des opérations simultanées comme l'acquisition de données, les prédictions, le clignotement des LED et la mise à jour de l'écran. FreeRTOS permet de gérer efficacement les ressources en priorisant les tâches critiques et en mettant en veille les tâches non essentielles, ce qui optimise la consommation d'énergie et prolonge la durée de vie des batteries, un aspect crucial pour les dispositifs fonctionnant en milieu isolé ou à faible connectivité. Cette approche de gestion énergétique par FreeRTOS est particulièrement bénéfique pour les systèmes embarqués, car elle réduit les cycles d'horloge inutiles et permet un fonctionnement prolongé sans intervention humaine fréquente.

Entraînement et Déploiement du Modèle

Entraînement : Réalisé en Python avec TensorFlow sur un PC. Les CNN1D ont été choisis pour leur compatibilité avec TensorFlow Lite, facilitant le déploiement sur l'ESP32. L'entraînement a impliqué l'utilisation de grandes quantités de données historiques pour permettre au modèle de détecter des motifs dans les séries temporelles. Les étapes d'entraînement incluent la préparation des données, la normalisation, et l'ajustement des hyperparamètres pour optimiser les performances du modèle.

Déploiement : Le modèle est optimisé pour le microcontrôleur par des techniques de quantification, réduisant la taille des paramètres et diminuant ainsi la charge de calcul et la consommation de mémoire. Ce processus inclut des étapes de calibration et de validation pour s'assurer que le modèle allégé conserve une précision acceptable tout en étant capable de fonctionner sur des dispositifs à ressources limitées comme l'ESP32. La quantification permet également de réduire l'empreinte mémoire, ce qui est crucial pour les environnements embarqués.

Utilité et Applications

Le projet démontre des compétences en systèmes embarqués et en deep learning appliqué à l'embarqué, un domaine relativement neuf. Il pourrait être particulièrement utile pour :

Agriculture : Prédiction des gelées pour protéger les cultures.

Sites Industriels Extérieurs : Prédiction pour gérer les réservoirs d'eau ou autres infrastructures sensibles au gel ou à des températures extrêmes.

Optimisation Énergétique dans le Bâtiment : Anticiper les besoins en chauffage ou climatisation, affiner encore les techniques d'économie d'énergie.

Conclusion

Ce projet est un exemple riche et diversifié de l'application des systèmes embarqués, combinant capteurs environnementaux, prédiction basée sur des réseaux de neurones et gestion multitâche. Il ouvre des perspectives prometteuses pour diverses applications industrielles, agricoles et énergétiques, illustrant efficacement les possibilités du Deep Learning dans l'embarqué.

Mots clefs

Systèmes embarqués, BME280 sur I2C, Écran LCD sur I2C, ESP32, CNN 1D, CNN, Prédiction, Séquence temporelle, Météo, Agriculture, Site industriel

Améliorations Possibles et Limitations Actuelles

Ressources Limitées : L'ESP32 limite la complexité du modèle prédictif. Un modèle plus complexe nécessiterait un matériel plus puissant.

Données d'Entraînement : L'accès à des données météorologiques plus abondantes et localisées à proximité de mon lieu de résidence pourrait améliorer la précision des prédictions.

Universalisme du Modèle : Le modèle actuel est spécifique à une localisation géographique. Un apprentissage continu ou un modèle adaptable serait nécessaire pour une application universelle, ce qui n'est pas encore possible avec les CNN, nécessitant une nouvelle phase d'entraînement pour chaque adaptation.

Résultats

Key Spotting sur un ESP32

Les systèmes KWS sont spécialement conçus pour identifier des mots-clés prédéfinis, tels que "LUMIÈRE" dans ce projet, permettant une activation ou une désactivation sans nécessiter de matériel lourd ou de connexion constante à des serveurs distants. La technologie repose sur des algorithmes de Deep Learning, déployés sur des microcontrôleurs tels que l'ESP32, capable d'exécuter des modèles de machine learning en local, avec une consommation d'énergie réduite

Le dispositif est basé sur les éléments suivants :
  • ESP32

  • micro MEMS de haute sensibilité 441NMLP

  • LED RGB WS2812B incluse sur l carte du microcontroleur

Contexte et Objectif

Dans le cadre de la croissance rapide des technologies embarquées et de l'intelligence artificielle, les systèmes de reconnaissance vocale (KWS - Keyword Spotting) offrent des solutions intuitives et efficaces pour contrôler des dispositifs électroniques. Le projet présenté ici démontre l'intégration d'un système KWS embarqué sur une plateforme ESP32, associé à un micro MEMS INMP441 et un relais électromécanique. L'objectif est de permettre le contrôle vocal de l'état d'une LED RGB et d'un relais par la commande "LUMIÈRE".

Les systèmes KWS sont spécialement conçus pour identifier des mots-clés prédéfinis, tels que "LUMIÈRE" dans ce projet, permettant une activation ou une désactivation sans nécessiter de matériel lourd ou de connexion constante à des serveurs distants. La technologie repose sur des algorithmes de deep learning, souvent déployés sur des microcontrôleurs tels que l'ESP32, capable d'exécuter des modèles de machine learning en local, avec une consommation d'énergie réduite.

Description Technique

Le dispositif repose sur l'ESP32, un microcontrôleur puissant et polyvalent, capable d'exécuter des modèles de deep learning tout en gérant des périphériques externes. Le micro MEMS INMP441 capture les signaux vocaux, qui sont ensuite traités par l'ESP32 pour détecter le mot-clé "LUMIÈRE". À la détection du mot, l'ESP32 active le relais électromécanique et modifie l'état de la LED RGB intégrée, souvent basée sur une LED WS2812B, pour signaler visuellement l'activation ou la désactivation du système.

Mots clefs

Systèmes embarqués, ESP32, Deep Learning, Entraînement de modèle, KWS (Keyword Spotting), Micro MEMS INMP441, Commande vocale, Relais électromécanique, LED WS2812B, Domotique intelligente

Avantages et Applications

L'intégration de la commande vocale dans les systèmes embarqués présente de nombreux avantages. D'abord, elle simplifie l'interaction entre l'utilisateur et le dispositif, offrant une expérience utilisateur plus naturelle et intuitive. En outre, cela ouvre la voie à des applications variées dans les domaines de la domotique, de l'assistance aux personnes à mobilité réduite, ou encore des interfaces homme-machine dans des environnements industriels.

Le contrôle vocal embarqué, rendu possible par la combinaison de l'ESP32 et de technologies de deep learning, est une solution robuste et flexible, apte à transformer de simples dispositifs en systèmes intelligents. Ce projet illustre parfaitement cette transformation, où un mot prononcé suffit à déclencher une action tangible.

Vidéo de Démonstration

Pour illustrer pleinement le fonctionnement de ce système, une vidéo de démonstration est incluse ci-dessous. Dans cette vidéo, vous verrez comment la commande vocale "LUMIÈRE" active le relais électromécanique et modifie l'état de la LED RGB. Cette démonstration met en avant la précision du système KWS intégré, ainsi que sa réactivité et son efficacité en environnement réel.

Machine learning : Q-learning pour LoRa

Le dispositif est basé sur les éléments suivants :
  • PI PICO

  • modem LoRa E22 400 T

  • lecteur de carte SD

Contexte et Objectif du Projet

Dans le contexte actuel de l'Internet des Objets (IoT), les technologies de communication sans fil à faible consommation énergétique, comme le LoRa (Long Range), sont devenues essentielles pour la transmission efficace de données sur de longues distances. Ce projet s’inscrit dans cette tendance en exploitant des techniques avancées de machine learning pour optimiser les performances des systèmes embarqués.

Mots clefs

Systèmes embarqués, PI Pico, Machine Learning, Q-Learning, LoRa, Ebyte E22 400T, Efficacité énergétique, Rapport signal sur bruit (SNR), Communication sans fil, IoT (Internet des Objets)

L'objectif principal du projet est d'intégrer le Q-learning, une méthode de machine learning, dans un système de communication LoRa pour régler dynamiquement la puissance et le débit de transmission en fonction du rapport signal sur bruit (SNR). La base matérielle se compose d'un microcontrôleur PI Pico, d'un modem LoRa Ebyte E22 400T, et d'une carte SD pour le stockage des données. Le système est conçu pour transmettre régulièrement des mesures de température, tout en ajustant les paramètres de puissance et de débit pour maintenir un SNR optimal et minimiser la consommation d'énergie, laquelle est proportionnelle à la puissance d'émission et inversement proportionnelle au débit de transmission.

Optimisation par Q-Learning

Le Q-learning, un algorithme d'apprentissage par renforcement, est central dans ce projet pour optimiser les décisions concernant les paramètres de transmission. Cet algorithme apprend en continu des interactions avec l'environnement, en ajustant la puissance d'émission et le débit afin de minimiser la consommation énergétique tout en maintenant un SNR satisfaisant. L'optimisation de ces paramètres est cruciale car la consommation d'énergie est directement liée à la puissance d'émission et au temps d'émission, ce dernier étant inversement proportionnel au débit. Ainsi, le système vise à maximiser le débit pour réduire le temps d'émission tout en garantissant un SNR adéquat pour une communication fiable.

Architecture et Fonctionnement du Système

Le système se compose de deux modules de communication interconnectés, chacun ayant un rôle bien défini :

  • Transmetteur 1 (Base) : Stationnaire, ce module reçoit les données de température envoyées par le Transmetteur 2. Une fois les données reçues, il ajuste les paramètres de transmission à pleine puissance et au débit minimal, et renvoie le rapport signal sur bruit (SNR) au Transmetteur 2.

  • Transmetteur 2 (Mobile) : Mobile, ce module collecte les données de température à l’aide du microcontrôleur PI Pico et les transmet au Transmetteur 1 toutes les secondes. Le Q-learning est utilisé pour ajuster dynamiquement les paramètres de puissance d’émission et de débit en fonction des conditions de communication. L’ajustement du débit est basé sur les retours SNR reçus lors du cycle de communication précédent.

Valeur Ajoutée et Applications

Ce projet représente une application innovante des technologies embarquées, combinées à des algorithmes de machine learning, pour répondre aux défis de l'efficacité énergétique dans les systèmes de communication sans fil. En optimisant dynamiquement les paramètres de transmission, ce système se présente comme une solution idéale pour les dispositifs IoT où l'économie d'énergie est essentielle, tels que les capteurs environnementaux ou les dispositifs de surveillance à distance alimentés par batterie.