ESPHome Air Quality Sensor System (SEN6x)

Für die präzise Überwachung der Raumluftqualität reicht ein einfacher CO2-Sensor oft nicht aus. In diesem Projekt zeige ich den Aufbau eines volldynamischen Luftqualitätsmonitors auf Basis von ESPHome. Die Besonderheit: Das System lässt sich komplett ohne erneutes Flashen zur Laufzeit über ein Webinterface konfigurieren und löst spezifische Hardware-Herausforderungen professioneller Sensoren.

Die Hardware-Basis

Das System setzt auf hochwertige und kompakte Komponenten:

  • Mikrocontroller: Ein ESP32-C3-DevKitM-1 liefert ausreichend Leistung für das Display und sorgt für eine stabile WLAN-Anbindung.

  • Sensorik: Der Sensirion SEN66 (kompatibel mit SEN6x/SEN5x) ist ein All-in-One-Sensor für die Messung von CO2, Feinstaub (PM1.0, PM2.5, PM4.0, PM10), flüchtigen organischen Verbindungen (VOC), Stickoxiden (NOx) sowie Temperatur und Luftfeuchtigkeit.

  • Display: Ein rundes 1.28 Zoll LCD mit GC9A01 Controller, angesteuert über SPI.

Für das Projekt habe ich zudem ein passendes Gehäuse konstruiert, das einen optimalen Airflow für den Sensor gewährleistet und alle Komponenten kompakt aufnimmt.

ESP32-C3 SEN66 Sensor #1

ESP32-C3 SEN66 Sensor #1

ESP32-C3 SEN66 Sensor #2

ESP32-C3 SEN66 Sensor #2

Software-Features und technische Highlights

Die Firmware basiert auf ESPHome und nutzt die LVGL-Bibliothek für die grafische Oberfläche. Der Fokus bei der Entwicklung lag auf maximaler Flexibilität und physikalischer Genauigkeit.

1. Volldynamisches UI & Headless-Betrieb

Das Gerät ist als echtes Standalone-System konzipiert. Es benötigt zwingend keine Cloud und nicht einmal eine aktive Home Assistant Instanz. Dank des integrierten ESPHome-Webservers lässt sich das Gerät headless über jeden Browser im lokalen Netzwerk bedienen. Alle Zuweisungen (welcher Messwert auf welchem Display-Slot angezeigt wird), Farben, Theme-Einstellungen (Dark-/Light-Mode) und Refresh-Raten lassen sich live im Web-UI ändern. Das Display passt sich in Echtzeit an.

2. Spezifische Sensirion Gas-Engine Logik

Gassensoren für CO2, VOC und NOx benötigen eine kontinuierliche Aufwärmphase („Warm-up“), um korrekte Basislinien zu berechnen. Ein simples Neustarten des Abfrage-Timers würde den Sensor hart zurücksetzen (Reset) und die Messwerte verfälschen. Die Firmware nutzt daher eine entkoppelte Abfrage-Logik: Der Sensor läuft intern in einem 24-Stunden-Intervall auf Dauerbetrieb, während ein separates, anpassbares Skript die Daten schonend und asynchron im gewünschten Intervall (z.B. alle 30 Sekunden) über den I2C-Bus abholt.

3. Dynamische Feuchtigkeitskompensation (Magnus-Formel)

Kompakte Gehäuse erzeugen Abwärme, was einen Temperatur-Offset in der Software erfordert. Die relative Luftfeuchtigkeit ist physikalisch jedoch direkt von der Temperatur abhängig. Wird nur die Temperatur kalibriert, sinkt die Genauigkeit der angezeigten Luftfeuchtigkeit. Die Firmware berechnet daher über die Magnus-Tetens-Formel den aktuellen Sättigungsdampfdruck und korrigiert die relative Luftfeuchtigkeit passend zum eingestellten Temperatur-Offset. So bleiben die angezeigten Messwerte physikalisch konsistent.

4. Individuelle Alarm-Grenzwerte

Um die Luftqualität auf einen Blick beurteilen zu können, wurden 21 individuelle Grenzwerte (jeweils drei Stufen für sieben Sensoren) implementiert. Überschreitet ein Wert das definierte Limit, färbt sich der entsprechende Bogen oder Text auf dem Display automatisch in die gewünschte Warnfarbe (z.B. Gelb, Orange oder Rot). Auch diese Schwellenwerte und Farben lassen sich komfortabel über die Benutzeroberfläche festlegen.

Ressourcen & Download

Das Projekt ist vollständig Open Source. Den kompletten ESPHome-Code (YAML) sowie das 3D-Modell für das Gehäuse stelle ich auf GitHub und Thingiverse zur Verfügung:

ESP32-C3 SEN66 Sensor #11

ESP32-C3 SEN66 Sensor #11

 

ESP32-C3 SEN66 Sensor #4

ESP32-C3 SEN66 Sensor #4

ESP32-C3 SEN66 Sensor #5

ESP32-C3 SEN66 Sensor #5

ESP32-C3 SEN66 Sensor #6

ESP32-C3 SEN66 Sensor #6

ESP32-C3 SEN66 Sensor #7

ESP32-C3 SEN66 Sensor #7

ESP32-C3 SEN66 Sensor #10

ESP32-C3 SEN66 Sensor #10

Das könnte dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

* Die DSGVO-Checkbox ist ein Pflichtfeld.

*

Ich stimme zu.