CO2 Sensor als DIY mit ESP32

die CO2 Sensoren, die man fertig kaufen kann sind entwerder recht teuer oder komplett unbrauchbar. Wollte es mal als DIY mit ESP32 probieren und bin über diese Seite gestolpert:

man braucht nur 2 Komponenten:

  1. einen ESP32 bZ habe ich diesen mini genommen
    ESP32 S2 Mini D1 Mini Board basierend auf ESP8266 CH340 ESP32-S2FN4R2 FLASH 2 MB PSRAM MicroPython für Arduino Development Board - AliExpress 502

  2. einen MH-Z19 Sensor, da habe ich das gekauft:
    MH-Z19 MH-Z19C IR Infrarot CO2 Sensor Modul Kohlendioxid Gas Sensor NDIR Zubehör - AliExpress 13

leider gab es kein Pinout zum MH-Z19 und ich vermute, daß ich da was falsch verbunden habe.
Dies ist das Ergebnis in HA:

es kommen keine Werte an und Temperatur kann dieser Sensor wohl gar nicht …

den ESP32 code habe ich von oben und der sieht so aus…

esphome:
  name: co2-sensor
  friendly_name: CO2-Sensor

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "8zeDlN+UFKMzXtj4a6mkUFzkfrGHIsoaAYcLQ0eNmpc="

ota:
  - platform: esphome
    password: "ac411bdf348a0c9da27b0a9c9c8cf35e"

wifi:
  ssid: "my SSID"
  password: "my PW"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Co2-Sensor Fallback Hotspot"
    password: "22azy8qDWdp0"

captive_portal:
    
# CO2 sensor
uart:
  rx_pin: GPIO3
  tx_pin: GPIO1
  baud_rate: 9600

sensor:
  - platform: mhz19
    id: sensor_mhz19
    co2:
      name: "CO2 Sensor"
    temperature:
      name: "CO2 Temperatur"
      internal: true
    update_interval: 60s
    automatic_baseline_calibration: false

button: #creates a button to calibrate the sensor - this will reset the zero point so use it only when it's been 20 minutes either outside or in a room you know the co2 level is at a minimum
  - platform: template
    name: "Calibrate Zero (20 minutes at 400ppm)"
    id: calibrate_zero
    entity_category: diagnostic
    on_press:
      - mhz19.calibrate_zero: sensor_mhz19

switch: # this will expose a switch to home assistant to turn on and off the ABC
  - platform: template
    name: "Automatic Baseline Calibration"
    entity_category: diagnostic
    optimistic: true
    on_turn_on:
      mhz19.abc_enable: sensor_mhz19
    on_turn_off:
      mhz19.abc_disable: sensor_mhz19 

Hat evtl. jemand sowas schon mal gemacht und kann kurz helfen?
Danke im voraus.

esp8266:
  board: esp01_1m

Finde den Fehler…

naja, ich habe den ESP32 angesteckt, den ESP32 builder gestartet und die basic installation unter Verwendung eines 8266 laufen lassen und das ist dabei herausgekommen.
danach habe ich dann nur noch den CO2 code an diese basic Installation angehängt.

also um es kurz zu machen, was sollte da dann korrekterweise stehen?
Danke.

Was denn nun? Hast du einen ESP32 oder einen ESP8266?

Auf der ESPHome-Seite steht das Pinout zu dem Sensor. Da muss man nur oben unter Suche “MH-Z19” eingeben.

es ist ein ESP8266

ja und genau so habe ich es verdrahtet aber man kennt das ja das Produkte von AliExpress sich gerne auch mal NICHT an das Bekannte halten.

Tausch mal rx und tx gpio.

Als ich die Dinger damals gebaut habe, waren sie bei mir genau ungekehrt als in den ganzen Anleitungen online und die Unterlagen des MHZ19, danach hat es bei mir geklappt.

Eventuell ist es bei dir auch so. Hab auch gesucht und probiert bis ich das einfach damals ausprobiert habe.

So sieht es zum Beispiel bei mir aus (Passwort und Key einfach unkenntlich gemacht)

esphome:
  name: co2-sensor-schlafzimmer
  friendly_name: CO2 Sensor Schlafzimmer

esp8266:
  board: nodemcuv2

uart:
  rx_pin: GPIO1
  tx_pin: GPIO3
  baud_rate: 9600

sensor:
  - platform: mhz19
    co2:
      name: "Schlafzimmer MHZ19 CO2 Wert"
    update_interval: 60s
    automatic_baseline_calibration: false
    id: mhz19wz
  - platform: wifi_signal 
    name: "WiFi Signal CO2 Sensor Schlafzimmer"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"

button:
  - platform: shutdown
    name: "ESP Schlafzimmer herunterfahren"
  - platform: restart
    name: "ESP Schlafzimmer neustart"

# Enable logging
logger:
  baud_rate: 0


# Enable Home Assistant API
api:
  encryption:
    key: "Key"
  actions:
    - action: mhz19_calibrate_zero
      then:
        - mhz19.calibrate_zero: mhz19wz
ota:
  - platform: esphome
    password: "Passwort"

wifi:
  ssid: "SSID"
  password: "Passwort"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Co2-Sensor-Schlafzimmer"
    password: "Passwort"

captive_portal:

habe da dupont Kabel und es ganz einfach getauscht.
Leider keine Änderung :frowning: Der Wert des Sensors bleibt bei “unbekannt”
werde als nächstes mal Deinen yaml code flashen, vielleicht geht das besser.

weisst Du zufällig noch, wo Du den MH-Z19 Sensor gekauft hattest (Link?)

Hab sie damals bei Amazon geholt, da ich keine Lust hatte zu warten. Hab insgesammt 4 Stück davon im Einsatz

Hier der MH-Z, den Stecker hatte ich abgetrennt, da es nicht in mein gedrucktes Gehäuse sonst passt und Kabel selber angelötet:

Und das sind die ESP8266 die ich genutzt habe:

Edit: Was mir noch einfällt, wenn du das ESP Startest brauch der MH-Z glaub 90-120 Sekunden zum Aufwärmen, so steht es zumindest im Log beim ESP

ja, die Aufwärmzeit ist mir bekannt und lange abgelaufen.
Deine Komponenten sind natürlich die teuren von AZ und Amazone.
ich habe alles vom Ali, weil das an anderer Stelle auch gut funktioniert hatte.
bringt natürlich nix, wenn es hier nicht zum Erfolg führt …

und wie ich sehe hast Du den Tausch RX/TX bereits im code für den ESP vorgenommen und nicht per Kabel gemacht, richtig?

Also der MH-Z hat mich damals 3€ mehr das Stück als bei Ali gekostet, die Boards fand ich jetzt pro Stück 4€ jetzt auch nicht so teuer damals.

Das war mir das wenige Sparen über Ali nicht wert damals.

Wie es jetzt aussieht weiß ich natürlich nicht, ewig nicht mehr gekauft ESP Boards.

Edit: Hab damals in Code getauscht weil ich keine Lust hatte mein Gehäuse wieder aufzuschrauben, aber ob Code oder Kabel ist ja egal wie man es macht.

muss sagen, daß dieses “Geiz ist geil” nicht immer geil ist, vor allem bei solchen DIY Sachen.
Egal, Lehr-Geld! Werde mir mal Deine Komponenten besorgen, damit sollte es dann ja funktionieren.

Ja garantieren kann ich das jetzt auch nicht. Ich hab das 2024 gekauft, keine Ahnung ob sich irgendwas an den Bauteilen geändert hat.

Aber mit den AZ Boards hab ich bis jetzt keine Probleme, hab auch meine Velux Fernbedienungen für Rollos damit umgebaut um sie per ESP über HA steuern zu können.

Dein Link zum MH-Z19 bei Amazon ist leider unavailable und was den Preis betrifft:
Amazon 27 Ali 10
bringt ja aber nix, wenn’s am Ende nicht läuft …
und was das ESP board betrifft, da kann ich nochmal ein paar andere vorher testen,
hab’ da ein paar zur Auswahl…

Die MH-Z 27€ jetzt? Hab gerade geguckt ich hab 13€ bezahlt für einen damals.

Wenn ich mich auch noch richtig erinnere an damals, soll man aufpassen das es MH-Z19B sind und nicht MH-Z19C

alles klar und natürlich ist mein ALI-Teil ein MH-Z19C
wenn’s blöd läuft dann richtig …
egal, ist ja nur Bastelkram und nicht kriegsentscheident …

Ja ich weiß nicht ob sich das irgendwie geändert hat, aber ich hab damals gezielt nach den B gesucht, weiß aber leider nicht mehr wieso. Aber versuch doch deinen C mal mit dem AZ Board und mein Code, vielleicht geht es ja.

Leider teuer

beim Ali mit Versand fast gleichteuer

aber bei Amazon kann man kostenlos zurückgeben - aber …

bei einem Preis von fast € 30,00 + ESP32 macht da ein DIY noch Sinn?
evtl. gibt es fertige tuya Geräte, die echte Werte liefern und keine Schätzwerte?

Ich glaub super genau wird man bestimmt erst ab 150€ aufwärts bekommen, denke die „billig“ Geräte tuen sich alle nicht viel.

Aber muss sagen, vom Gefühl her passt das mit dem MH-Z auch ganz gut, die Frage ist immer was man will. Ich nutze das nur um zu gucken ob die Luft schlecht im Raum ist und steuer mein Lüften darüber etwas.

ehrlich gesagt ist mir eine wissenschaftlich fundierte Antwort auf die Frage, ob ich jetzt lüften muss keine €150 wert. Das hat meine Oma auch so gemacht und die ist 89 Jahre alt geworden.

Meine Frau ist Lehrerin und in den Klassenzimmern wird auch so ein CO2 Sensor verwendet, vom Kultusministerium Bayern “Zertifiziert” aber die kosten vielleicht €40.
Werde sie mal nach dem Modell fragen … und mehr ist mir der Spaß auch nicht wert.

EDIT:
noch eine andere Idee:
ich hatte mal eine Wetter-Station von Archos mit Handy App.
Das ganze funktioniert nicht mehr, weil die App für Andriod 4 war und nicht mehr supported wurde, aber evtl. kann man noch was mit der Hardware anfangen, die hatte auch einen CO2 Sensor eingebaut und der war ziemlich exakt.
Weil diese Station heute nicht mehr mit modernen Handys verwendet werden können, werden die zT auf Kleinanzeigen verramscht.

ich hab auch noch so ein Teil irgendwo in der Ecke liegen.
Man müsste “nur” den CO2 Sensor mit ESP32 zum Laufen bekommen …
leider fehlt mir für solche Basteleien das know-how

Ggf. Ikea ALPSTUGA sofern man bereits Matter over Thread im Einsatz haben sollte.


Nach der Preissenkung für die Matter Geräte bei Ikea in DE gibt es das Teil jetzt für € 29,99.
https://www.ikea.com/de/de/p/alpstuga-luftqualitaetssensor-smart-50604187/

Was man so in anderen Foren zu dem ALPSTUGA liest scheint das Teil ganz ok zu sein und der darin verbaute STCC4 CO₂ Sensor ist in der Preisklasse vermutlich auch nicht besser oder schlechter als ein MH-Z19. :slightly_smiling_face:

VG Jim