Sensor de CO2 con ESPHome y Home Assistant

Un clásico en esto de la domótica, cosas que nos dejo la pandemia… ese control del CO2 en determinados lugares para (antiguamente) ventilar y evitar ser infectados por el coco… En fin, en este post veremos cómo medir el CO2 sencillamente con una placa con un ESP y luego en Home Assistant hacer cualquier automatización.

 

Así que si tienes una placa con un ESP8266 o un ESP32, podrás conectarle muchos sensores como sabrás, de todo tipo e índole, hoy veremos uno que nos servirá para controlar el nivel de CO2 (o dióxido de carbono) que tenemos en un habitáculo, una sala por ejemplo. En este caso usaremos un MH-Z19.

 

 

El conexionado dependerá de la placa que usemos, pero al final usa una conexión serie, por lo que habrá que primero alimentar el sensor con el positivo y el negativo desde la placa y unir como siempre cruzando el RX del sensor con el TX de la placa e igualmente el TX al RX de la placa. Mirando el pinout de la placa que tenéis en Google enseguida encontraréis los GPIO que cumplen dicha función.

 

Una vez tengamos el conexionado realizado, pues lo de siempre, tendremos que ir a nuestro ESPHome Builder, crear un nuevo dispositivo y una vez creado, podremos editarle la configuración y añadirle una parte que veremos a continuación, posteriormente descargaremos el binario con la imagen del firmware, que tendremos que poner en nuestro ESP. Ese firmware lo subiremos a la placa desde un PC con un cable USB, bien con una web maravillosa de ESP, o alguna herramienta que pongas en tu equipo.

 

Os dejo la configuración que añadí en mi caso, donde lo principal a tener en cuenta será indicar los números de los GPIO que usaremos como TX y RX e irán conectados al sensor. Así como un botón que podremos pulsar para calibrar el sensor, o un switch para que tenga un auto calibrado.

# CO2 sensor
uart:
  rx_pin: 16
  tx_pin: 17
  baud_rate: 9600

sensor:
  - platform: mhz19
    id: sensor_mhz19
    co2:
      name: "Sensor CO2"
    temperature:
      name: "Temperatura CO2"
      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

 

Ante cualquier duda os dejo el enlace de la documentación oficial de ESPHome para este MH-Z19.

 

Ahora sí, una vez grabemos la configuración podremos instalar la configuración, bien descargándola manualmente e instalándola como comentábamos anteriormente, o directamente si la tienes conectada a tu PC y usas un navegador compatible, al gusto…

 

Tras cargar el firmware en la placa, ya podremos alimentarla con un USB y empezará la fiesta, arrancará el ESP con el sensor y Home Assistant nos lo descubrirá desde las Notificaciones, ahí no será más que adoptarlo y ya podremos acceder a él desde los ‘Dispositivos y servicios’ de Home Assistant, en la integración de ESPHome, veremos nuestro dispositivo ESP, como le hayamos nombrado, y si ha ido todo bien veremos que ya tiene valores, aunque al principio será normal tener 5000 ppm ya que deberemos calibrarlo. Así que cuando el habitáculo haya estado ventilado, libre de gente por muchas horas podremos calibrarlo, tan sencillo como darle al botón de ‘Pulsa’, y tras 20 minutos si ha ido todo bien, partirá de 400ppm.

 

Y nada, ahora ya podremos crearnos alguna grafica interesante si nos apetece para visualizar este tipo de información, o como comentamos al inicio, una automatización que controle el valor de esta entidad que mide el CO2 y haga algo, una notificación por los altavoces de que hay que ventilar, o simplemente con esto podremos detectar la presencia de gente en este sitio….

 

Bueno, espero que os haya podido aportar algo, siento que algunos posts son así ‘rapiditos’, pero los detalles de cada paso, en este caso los veo innecesarios, ya que si has creado al menos tu primer dispositivo en ESPHome serás conocedor de los pasos y lo facilón que es; pero entiendo que si es tu primera vez, igual te puedes perder, y como siempre te recomiendo tranquilidad y ver antes algún video en yutuf de ESPHome, y una vez lo tengas claro, pues puedas volver y coger el cacho de código que necesitas y chimpum.

 

Lo dicho, os mando un abracete como siempre, que os sigáis portando bien, y gracias por llegar hasta aquí!

 

Posts recomendados

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dudes en contactar conmigo, os intentare ayudar siempre que pueda, compartir es vivir ;) . Disfrutar de los documentos!!!

Reglas y alertas con ElastAlert 2

25 de marzo de 2025