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...

10 réponses

  1. Dr dit :

    Bonjour, sur la photo n°3, il y a ce qui ressemble à un insert en mousse grise où le capteur est placé dans le boîtier. Est-ce que ça vient avec le capteur ? On dirait qu'il a été coupé avec une machine. Si non, où as-tu eu ça ?

    • 360customs dit :

      Salut, c'est exact, il est découpé dans de la mousse EVA avec un laser. Le capteur n'est pas livré avec. J'ai téléchargé la forme sur thingiverse.com (j'espère). Ceux-ci proviennent de Sensirion de la page d'informations sur les capteurs.

      Cordialement

      • Dr dit :

        Vous avez un projet génial ici et j’essaie de le faire moi-même. J'ai trouvé votre page thingiverse (le lien dans l'article pointe plutôt vers github), mais je ne trouve pas la découpe pour la mousse. C’est la pièce manquante pour moi, si vous pouviez la télécharger, je l’apprécierais vraiment. Quelle était l'épaisseur de la mousse que vous avez utilisée pour bien l'adapter au boîtier ? Je suppose que vous résidez en Allemagne. Je suis en Suisse. Des recommandations sur la découpe EVA ? Je n’ai jamais fait ça auparavant.

        Modifications que je prévois d'apporter à votre conception : je passerai à l'ESP32-C6 (environ 3 mm de plus) et j'essaierai d'ajouter un capteur de lumière ambiante pour contrôler l'écran. Je comprends que vous avez codé cela en dur (ou que vous le contrôlez via HA) ?

        Je suis également heureux si vous m'envoyez les détails par e-mail.

        • 360customs dit :

          La luminosité de l'écran et le mode Jour/Nuit sont disponibles dans HA pour la manipulation. Rien n'est codé en dur. J'utilise le modificateur solaire pour décider de modifier la luminosité. Tout est dans le code ESPHome.

          L'EVA est de 2 ou 3 mm à partir d'un paquet de feuilles multicolores, rien de spécial. J'ai coupé cela avec un laser UV bon marché de 5 W à puissance/vitesse « moyenne ».

      • Dr dit :

        J'ai trouvé le fichier STEP mousse sur la page sensiron, voir lien ci-dessous.

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

  3. stratos dit :

    Bonjour, je suis intéressé à construire le même projet, pouvez-vous s'il vous plaît demander plus de détails ?
    Parce que je ne sais pas comment programmer Arduino.
    Merci

  4. Avant ça dit :

    Pouvez-vous m'envoyer le schéma des câbles ? comment se connecter ?

Laisser une réponse

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

* * Cette case à cocher est obligatoire

*

J'accepte