Système de capteur de qualité de l'air ESPHome (SEN6x)

Un simple capteur de CO2 ne suffit souvent pas pour une surveillance précise de la qualité de l’air intérieur. Dans ce projet, je montre la construction d'un moniteur de qualité de l'air entièrement dynamique basé sur ESPHome. La particularité : le système peut être entièrement configuré au moment de l'exécution via une interface Web sans reflasher et résout les défis matériels spécifiques des capteurs professionnels.

Base matérielle des matrices

Le système s'appuie sur des composants compacts et de haute qualité :

  • Microcontrôleur : Un ESP32-C3-DevKitM-1 fournit suffisamment de puissance pour l'écran et assure une connexion WLAN stable.

  • Sensoriel: Le Sensirion SEN66 (compatible avec SEN6x/SEN5x) est un capteur tout-en-un pour mesurer le CO2, les particules (PM1,0, PM2,5, PM4,0, PM10), les composés organiques volatils (COV), les oxydes d'azote (NOx), ainsi que la température et l'humidité.

  • Afficher: Un écran LCD rond de 1,28 pouces avec GC9A01 Contrôleur, contrôlé via SPI.

J'ai également conçu un boîtier adapté au projet qui assure un flux d'air optimal pour le capteur et accueille tous les composants de manière compacte.

Capteur ESP32-C3 SEN66 n°1

Capteur ESP32-C3 SEN66 n°1

Capteur ESP32-C3 SEN66 n°2

Capteur ESP32-C3 SEN66 n°2

Fonctionnalités logicielles et points forts techniques

Le firmware est basé sur ESPHome et utilise la bibliothèque LVGL pour l'interface graphique. Lors du développement, l'accent a été mis sur une flexibilité et une précision physique maximales.

1. Interface utilisateur entièrement dynamique et fonctionnement sans tête

L'appareil est conçu comme un véritable système autonome. Cela ne nécessite pas nécessairement un cloud ni même une instance active de Home Assistant. Grâce au serveur Web ESPHome intégré, l'appareil peut être utilisé sans tête via n'importe quel navigateur du réseau local. Toutes les affectations (quelle valeur mesurée est affichée sur quel emplacement d'affichage), les couleurs, les paramètres de thème (mode sombre/clair) et les taux de rafraîchissement peuvent être modifiés en direct dans l'interface utilisateur Web. L'affichage s'ajuste en temps réel.

2. Logique spécifique au moteur gaz Sensirion

Les capteurs de gaz pour le CO2, les COV et les NOx nécessitent une période de préchauffage continue pour calculer des lignes de base correctes. Le simple redémarrage du minuteur de requête entraînerait une réinitialisation matérielle du capteur et fausserait les valeurs mesurées. Le firmware utilise donc une logique de requête découplée : le capteur fonctionne en interne en fonctionnement continu à intervalle de 24 heures, tandis qu'un script séparé et personnalisable récupère les données de manière douce et asynchrone à l'intervalle souhaité (par exemple toutes les 30 secondes) via le bus I2C.

3. Compensation dynamique de l'humidité (formule Magnus)

Les boîtiers compacts génèrent de la chaleur perdue, ce qui nécessite un décalage de température dans le logiciel. Cependant, l’humidité relative dépend physiquement directement de la température. Si seule la température est calibrée, la précision de l'humidité affichée diminue. Le firmware calcule donc via le Formule Magnus-Tetens la pression de vapeur saturante actuelle et corrige l'humidité relative pour qu'elle corresponde au décalage de température défini. Cela signifie que les valeurs mesurées affichées restent physiquement cohérentes.

4. Limites d'alarme individuelles

Afin de pouvoir évaluer la qualité de l'air d'un seul coup d'œil, 21 valeurs limites individuelles (trois niveaux chacune pour sept capteurs) ont été mises en œuvre. Si une valeur dépasse la limite définie, la feuille ou le texte correspondant sur l'écran se transforme automatiquement en la couleur d'avertissement souhaitée (par exemple jaune, orange ou rouge). Ces valeurs seuils et couleurs peuvent également être facilement définies via l’interface utilisateur.

Ressources et téléchargement

Le projet est entièrement open source. Je réalise le code ESPHome complet (YAML) et le modèle 3D du logement disponible sur GitHub et Thingiverse :

Capteur ESP32-C3 SEN66 n°11

Capteur ESP32-C3 SEN66 n°11

Capteur ESP32-C3 SEN66 n°4

Capteur ESP32-C3 SEN66 n°4

Capteur ESP32-C3 SEN66 n°5

Capteur ESP32-C3 SEN66 n°5

Capteur ESP32-C3 SEN66 n°6

Capteur ESP32-C3 SEN66 n°6

Capteur ESP32-C3 SEN66 n°7

Capteur ESP32-C3 SEN66 n°7

Capteur ESP32-C3 SEN66 n°10

Capteur ESP32-C3 SEN66 n°10

Vous l'aimerez aussi...

4 réponses

  1. J'ai essayé de le malmener mais j'ai eu du chignon partout.

  2. stratos dit :

    Hello iam interested in building the same project can you please ask for more details?
    Cause i dont know how to program arduino.
    Thx

  3. Davor dit :

    Can you send me the diagram of the cables? how to connect?

Laisser une réponse

Votre adresse email ne sera pas publié. Les champs obligatoires sont marqués *

* * Cette case à cocher est obligatoire

*

J'accepte