CO2 Gadget: Medidor de CO2 avanzado

Modificado por última vez hace 5 días

CO2 Gadget es un firmware para crear medidores de CO2 de alta calidad, con sensores opcionales de partículas en suspensión, temperatura, humedad, presión atmosférica y otros que nos permiten analizar la calidad del aire que respiramos.

Puedes instalar CO2 Gadget en prácticamente cualquier medidor de CO2 basado en ESP32 que ya tengas (el 99,99% de ellos).

En este este artículo te voy a presentar y te voy a enseñar a instalar y utilizar, la versión avanzada de CO2 Gadget, el medidor de CO2 con App para Android e iOS, mediante Bluetooth, basado en el proyecto del fabricante sueco de sensores Sensirion, pero con varias vueltas de tuerca más.

CO2 Gadget: Medidor CO2 con ESP32

CO2 Gadget es un medidor de CO2 (y mucho más) fácil de construir, fácil de instalar y fácil de usar.

Este medidor es igual o incluso más fácil de montar que CO2 Easy (el del tutorial de Medidor de CO2 de este blog de toda la vida). Perfecto para usuarios que solo quieren un medidor, sin complicarse la vida, aunque nunca hayan tenido ningún contacto con los proyectos electrónicos ni tengan inclinaciones técnicas.

Características destacadas de CO2 Gadget

Entre las funcionalidades interesantes implementadas, podrás encontrar las siguientes características destacadas:

  • Visualización en tiempo real en pantalla, página web y puerto serie
  • Gestión y configuración a través de un cómodo menú en pantalla o de página web
  • Tres modos de comunicación: WIFI, Bluetooth y ESP-NOW
  • Muchos sensores de CO2 populares compatibles: Sensirion SCD30, Sensirion SCD40 y SCD41, Senseair S8 LP, MH-Z19, Cubic CM1106
  • Varios sensores de temperatura, humedad y presión atmosférica
  • Visualización de temperatura en grados Celsius o Fahrenheit
  • Soporte de pantallas TFT LED en color
  • ‎Soporte de pantallas OLED
  • ‎Soporte de pantallas e-Ink, ePaper o Tinta Electrónica.
  • Envío de datos por MQTT
  • Recepción de comandos remotos mediante MQTT‎
  • Soporte de MQTT Discovery para Home Assistant (y otros, como HomeSeer con mcsMQTT)
  • ‎Compatible con la aplicación gratuita de calidad del aire Sensirion MyAmbience para iOS y Android con visualización en tiempo real, gráficos y acceso a datos históricos‎
  • Activación de relés para, por ejemplo, automatizar equipos de ventilación
  • Salida para leds (o tiras LED) RGB y Neopixel (WS2812B y otras)
  • Actualizaciones OTA a través de su página web
  • Registrador de datos local (data logger) con carga al teléfono por BLE‎ (Bluetooth de Bajo Consumo)

Adicionalmente a lo anterior, se están terminando varias funcionalidades, que serán añadidas en breve.

Estas nuevas funcionalidades son:

  • Bajo consumo. Entre uno y tres meses, o más, en batería con una sola carga. (Listo al 80%)
  • Portal cautivo. Conexión WiFi directa a CO2 Gadget. (Listo al 75%)
  • Soporte para sensores de ultra bajo consumo Senseair Sunrise y Sunlight
  • Soporte para sensores de partículas (Listo al 30%)

¿A quién está dirigido CO2 Gadget?

El medidor CO2 Gadget va dirigido a todo el mundo, aunque si me obligas a hacer distinciones, te diré que está dirigido a dos tipos de público:

  • Usuarios que quieren un medidor de calidad, sin complicaciones y a buen precio
  • Usuarios con inquietudes técnicas que quieren partir de una buena base para adaptar el funcionamiento del medidor de CO2 a su gusto y a sus necesidades.

Si eres de los primeros, aquí debajo vas a encontrar toda la información que vas a necesitar. Si eres un usuario técnico, tienes todo lo necesario en el repositorio de CO2 Gadget en GitHub (ya sabes, ¡usuarios técnicos solamente!). CO2 Gadget es Open Source.

El firmware CO2 Gadget es un firmware de fácil uso, listo para instalar en una placa ESP32 con solo un par de clicks.

Al tratarse de un proyecto Open Source, de código abierto, tienes a tu disposición todo su código fuente para que lo analices, lo modifiques, aprendas de él o hagas lo que quieras con él.

Algo muy bonito que puedes hacer es contribuir con tus mejoras al código de CO2 Gadget para que otros usuarios se puedan beneficiar de ellas. ¿Diseñaste una nueva pantalla de visualización porque las que traía no te convencían? ¡Compártela!

Este artículo está destinado a los usuarios del firmware CO2 Gadget. Para cualquier tema relacionado con su desarrollo, dudas, problemas o peticiones, por favor, dirígete al repositorio de CO2 Gadget en proyecto en GitHub.

¿Qué necesito para construir el medidor CO2 Gadget?

Básicamente necesitas tres cosas: una placa con el chip ESP32, un sensor de CO2 y el firmware (el programa que lo hace funcionar).

Puedes utilizar el firmware CO2 Gadget Advanced en casi cualquier medidor que ya tengas, basado en ESP32. El 99% de los medidores existentes basados en ESP32 están soportados.

Si no tienes un medidor de CO2 compatible, a continuación, te dejo un tutorial para que construyas tu medidor muy fácilmente.

Este tutorial está realizado con una Placa TTGO T-Display y un sensor Sensor Sensirion SCD30 pero puedes construir tu CO2 Gadget utilizando muchos sensores, placas y pantallas diferentes, como la pantalla OLED I2C con controlador SSH1106 de 128*64 pixeles, que está completamente soportada, de manera que las posibilidades de elección son enormes.

Este artículo está dedicado al firmware, por lo que te recomiendo que para el montaje del medidor sigas uno de los tutoriales que he escrito y que podrás encontrar en este mismo blog. Por ejemplo:

Este es un medidor de CO2 que puedes construir en menos de una hora con solo dos componentes y cuatro soldaduras. Puedo decir, sin temor a equivocarme, que es el medidor de CO2 más fácil de montar que vas a encontrar.

Uso del medidor CO2 Gadget

El uso del medidor no puede ser más sencillo. Solamente tienes que encenderlo, abrir la App gratuita Sensirion MyAmbience en el móvil y ver los valores. Tan sencillo como eso.

Si has montado una de las versiones con pantalla, nada más encenderlo podrás ver las medidas en pantalla, sin tener que hacer nada más.

CO2 Gadget: Medidor de CO2 con TTGO T-Display

Al encender por primera vez CO2 Gadget tendrá una configuración por defecto que consistirá en:

OPCIONVALOR POR DEFECTO
BLE (Bluetooth Low Power)ON
WifiOFF
MQTTOFF
ESPNOWOFF
Color verdeHasta 700 ppm
Color naranjaHasta 1000 ppm
Color rojoA partir de 1000 ppm
Configuración por defecto de CO2 Gadget

Esto significa que nada más encender el medidor por primera vez, CO2 Gadget estará preparado para mostrar los datos en tu móvil o tablet sin que tengas que hacer nada más.

Todos estos valores podrás cambiarlos fácilmente para adaptarlos a tus gustos, preferencias o necesidades. Pronto podrás también cambiarlos a través de una página web.

CO2 Gadget dispone de muchas funcionalidades y opciones que puedes utilizar (si quieres) y a continuación te voy a hablar de cada una de ellas.

Modo de funcionamiento Bluetooth

El modo de funcionamiento mediante bluetooth es el modo por defecto de medidor.

En este modo, el medidor envía sus medidas mediante bluetooth a tu móvil (Android o iOS) donde una App instalada te permite visualizar los valores de dichas medidas en tiempo real, y consultar históricos.

La App también te permite exportar los datos históricos, por si quieres utilizarlos de algún modo (cargarlos en Excel, por ejemplo).

Esta es una opción muy interesante si lo que quieres es tener un medidor de CO2 de uso sencillo sin necesidad de envío de datos a internet o de integración con otros sistemas.

Solamente tienes que instalar la App Sensirion MyAmbience desde las tiendas oficiales de Google o Apple, dependiendo de tu dispositivo (es gratis).

Modo de funcionamiento WiFi

Este modo te permite acceder al medidor mediante un navegador web para visualizar las mediciones en tiempo real.

Cuando el modo WiFi está activo es posible acceder a la página web generada por el medidor.

En http://ip_del_medidor se muestra una página web con las medidas tomadas por el medidor en tiempo real con unos gráficos representando dichas medidas. Esta página se actualiza cada pocos segundos con las medidas actualizadas sin necesidad de recargar la página.

Página web de CO2 Gadget

Para la integración del medidor con otros sistemas tienes tres URL (API end points) en las que puedes acceder a las medidas en formato texto:

Última medida de concentración de CO2:

http://ip_del_medidor/readCO2

Valor actual de temperatura:

http://ip_del_medidor/readTemperature

Valor actual de la humedad relativa:

http://ip_del_medidor/readHumidity  

Deberás sustituir «ip_del_medidor» por la dirección IP del medidor en tu red. Como verás abajo, la forma más fácil de ver dicha dirección es en el menu «Información» de CO2 Gadget. Por ejemplo:

http://192.168.1.201

Para no tener que saber la IP y poder acceder mediante el nombre, CO2 Gadget implementa mDNS (también conocido como Multicast-DNS). De esta manera podrás acceder al medidor tecleando su nombre de Host en la barra de direcciones de tu navegador seguido de la extensión .local, por ejemplo:

http://CO2-Gadget.local

Puedes ver el nombre de Host en la pantalla de configuración del WiFi (y también a través del USB en el momento de arrancar).

Modo de funcionamiento ESP-NOW

ESP-NOW es un protocolo de comunicaciones vía radio de largo alcance y bajo consumo.

Su inclusión permite que CO2 Gadget pueda enviar sus datos a varios cientos de metros sin necesidad de hardware adicional.

Si quieres saber más sobre este protocolo, te recomiendo leer mi artículo sobre ESP-NOW y el Gateway de ESP-NOW a MQTT

Activación de equipos de ventilación (salidas de relés)

CO2 Gadget cuenta con dos salidas que permiten activar relés u otros elementos para, por ejemplo, activar automáticamente equipos de ventilación o filtrado de aire, activar alarmas sonoras o luminosas, etc.

Las concentraciones a las que estas salidas se activan son personalizables y coinciden con las que hayas configurado como nivel naranja y nivel rojo, estando desactivadas en verde.

Ambas salidas se activan al llegar al nivel de ese color y no se apagan hasta que el nivel de CO2 desciende al menos 100 ppm por debajo de dicho nivel (histéresis = 100ppm).

La histéresis permite evitar que el dispositivo conectado se encienda y apague continuamente si la concentración se mantiene fluctuando alrededor de dicha concentración).

Notificaciones mediante LED RGB

Si necesitas tener una indicación luminosa de la concentración de CO2 puedes conectar un LED RGB (o tiras RGB) a CO2 Gadget,

Puedes incluso utilizar iluminación de alta potencia utilizando relés externos. ¿Te imaginas grandes focos de colores en una discoteca indicando el nivel de CO2?

Para conectar un LED RGB, utilizarás las mismas salidas de relé más la salida de nivel verde, que tiene un funcionamiento ligeramente distinto:

El led verde puedes conectarlo a positivo permanentemente a través de una resistencia y estará encendido todo el tiempo.

Ten en cuenta que tendrás que poner tres resistencias, una para cada color, para limitar la intensidad de corriente proporcionada a cada LED y evitar que éste se queme (o que se estropee la placa). Te recomiendo probar con valores de unos 330 o 470 ohmios. Los LED RGB a utilizar deben ser de cátodo común.

SI utilizas tiras RGB tendrás que poner circuitería externa (unos relés pueden valer) ya que probablemente consumirán más de lo que el ESP32 puede proporcionar de forma directa (unos 60mA por salida).

Notificaciones mediante LED Neopixel (WS2812B)

CO2 Gadget soporta las notificaciones mediante LED de colores direccionables WS2812B (también llamados Neopixel). Su funcionamiento en CO2 Gadget es muy parecido a los LED RGB normales.

Ten en cuenta que estos LED están diseñador para funcionar con 5V por lo que si los alimentas mediante batería puedes tener problemas (te recomiendo poner un «step up» para subir el voltaje a 5V). Yo he hecho algunas pruebas a 3.3V y me han funcionado, pero no garantizo que lo hagan en tu caso.

Alarmas mediante zumbador

Tienes la posibilidad de tener alarmas audibles para avisarte de que los niveles de CO2 son demasiado altos.

Puedes configurar estas alarmas para que suenen una vez, que se repitan cada x segundos, incluso puedes elegir el tono del pitido y su longitud.

Solo necesitas que tu medidor tenga un zumbador pasivo conectado.

Comunicación del medidor de CO2 por MQTT

El soporte del protocolo MQTT abre un amplio horizonte de posibilidades a la hora de enviar los datos generados por el medidor a otros sistemas como, por ejemplo, sistema de domótica, almacenarlos en una base de datos o visualizarlos.

Yo lo utilizo con un broker Mosquitto y Nodered, lo que me permite procesarlos, almacenarlos en una base de datos InfluxDB y visualizarlos y analizarlos fácilmente en Grafana, consiguiendo gráficos como estos:

Como puedes imaginar la funcionalidad MQTT necesita una conexión WiFi para funcionar.

Discovery MQTT para integración con Home Assistant

Si eres usuario de Home Assistant (un sistema de domótica de código abierto muy extendido) u otros sistemas compatibles con su protocolo de Discovery por MQTT, te será muy fácil integrar CO2 Gadget ya que todo el proceso es automático.

Home Assistant descubrirá automáticamente tu medidor (o medidores) y los dará de alta en el sistema:

Envío de medidas por MQTT

CO2 Gadget envía las medidas de CO2, temperatura y humedad cada vez que hay una actualización en los siguientes tópicos:

  • topic/co2: Envía la concentración de CO2 en PPM con el valor en el payload del mensaje.
  • topic/temp: Envía la temperatura actual en grados centígrados con el valor en el payload del mensaje con dos decimales.
  • topic/humi: Envía la humedad relativa con el valor en el payload del mensaje como un porcentaje.

Recepción de comandos por MQTT

Además de enviar datos mediante MQTT, CO2 Gadget también es capaz de recibir comandos. Concretamente puede recibir los siguientes dos comandos, que pueden ser muy útiles:

  • topic/calibration ppm: Enviando un mensaje con el topic «topic/calibration» y un número entre 400 y 2000 en el Payload (normalmente 400) podemos ordenar a CO2 Gadget que realice una calibración del sensor a esa concentración.
  • topic/ambientpressure mbar: Enviando un mensaje con el topic «topic/ambientpressure» y el valor de la presión atmosférica en milibares indicaremos al sensor de CO2 que realice la compensación de concentración de CO2 por presión atmosférica.

Envío de alarmas por MQTT

CO2 Gadget envía mensajes mediante MQTT correspondientes a los niveles de color (verde, naranja, y rojo) configurados.

Los mensajes enviados son los siguientes:

  • topic/green: Se envía con el texto «ON» en el payload cuando la concentración de CO2 se encuentra dentro del rango verde configurado. Se enviará «OFF» en el payload cuando la concentración alcance el nivel naranja.
  • topic/naranja: Se envía con el texto «ON» en el payload cuando la concentración de CO2 alcanza o supera el rango naranja configurado. Se enviará «OFF» en el payload cuando la concentración baje del nivel naranja (no se envía «OFF» al pasar a rojo).
  • topic/red: Se envía con el texto «ON» en el payload cuando la concentración de CO2 alcanza el rango rojo. Se enviará «OFF» en el payload cuando la concentración descienda por debajo de dicho rango.

Los mensajes naranja y rojo tienen una histéresis de 100 ppm por lo que el mensaje «OFF» no es enviado hasta que el nivel de CO2 desciende al menos 100 ppm por debajo de dicho nivel. Está previsto que, en una futura versión, está histéresis sea configurable en el menú.

CO2 Gadget: El medidor de CO2 con ESP32 más avanzado y fácil de construir. No te lo pierdas y cuida tu salud. Haz clic para tuitear

Configuración de CO2 Gadget

Aspecto de CO2 Gadget

El medidor CO2 Gadget es muy fácil de configurar a través de su menú en pantalla, de su página web o del puerto serie.

Menú en pantalla

La navegación por el menú en pantalla se hace mediante los dos botones del frontal del medidor de la siguiente forma:

  • Pulsación corta en el botón superior = Arriba
  • Pulsación corta en el botón inferior = Abajo
  • Pulsación larga en el botón superior = Enter/seleccionar
  • Pulsación larga en el botón inferior = Back/deseleccionar

Verás que, aunque solamente tiene dos botones, el uso del menú es muy sencillo y enseguida lo tendrás dominado.

El uso de los botones es opcional. CO2 Gadget no necesita botones para funcionar. Puedes configurar todas las opciones a través del puerto USB/serie como verás en el siguiente punto.

Menú por puerto serie

Si has decidido montarte un medidor sin pantalla o sin botones, no hay problema. Puedes utilizar el menú a través del puerto serie, utilizando cualquier programa de terminal, utilizando las siguientes teclas del teclado numérico de tu ordenador:

  • Tecla * = Enter/seleccionar
  • Tecla / = Atrás/deseleccionar
  • Tecla – = Arriba
  • Tecla + = Abajo

Además, puedes utilizar directamente los números y letras del teclado para introducir datos.

El menú es exactamente igual en la pantalla y en el puerto serie. Lo que veas en una verás en otra, y además simultáneamente.

Ten en cuenta que los siguientes caracteres están reservados para el funcionamiento del menú: «/», «*», «+» y «-«). Si necesitas introducirlos en algún sitio (como el SSID o la contraseña Wifi) no podrás hacerlo a través del puerto serie y tendrás que utilizar los botones.

A continuación, te voy a explicar cada una de las opciones de los menús de configuración y lo voy a ir haciendo en el mismo orden en el que se muestran.

Página web de configuración

Además de poder configurar CO2 Gadget mediante su display y el puerto serie, es posible cambiar las opciones a través de su página web.

Solo tienes que acceder a:

http://ip_del_medidor/preferences.html
Pincha para ver la imagen más grande

Esta funcionalidad será especialmente útil cuando el medidor no tiene pantalla o cuando no esté accesible.

También puede ser más cómodo para la edición de ciertos parámetros.

Menú principal

En el menú principal puedes ver el voltaje de la batería (o el del alimentador o cargador, si está conectado) y puedes entrar a otros submenús como: Información, Calibración y Configuración. Con la última opción, Exit, puedes salir del menú y regresar a la pantalla principal con los datos medidos.

Información

En este menú tienes información útil sobre el medidor.

  • Comp: La fecha de compilación de CO2 Gadget en formato MMM DD AAAA
  • Versión: El número de versión del firmware CO2 Gadget cargador en el medidor
  • IP: La dirección IP del medidor, si está conectado a una red WiFi. Si la red está desconectada aparecerá «Disconnected» y si el WiFi está desactivado aparecerá «Disabled»
  • DLE Dev: El código de dispositivo Bluetooth. Te será útil, si tienes varios medidores, para diferenciar uno de otro en la App.
  • Back: Regresa al menú anterior

Calibración

Aquí puedes activar y desactivar la calibración automática del sensor de CO2, así como realizar su calibración manual.

  • Autom. Cal.: Te permite activar y desactivar (ON/OFF) la calibración automática del sensor de CO2
  • Calibrate at 400ppm: Seleccionando esta opción con una pulsación larga puedes calibrar el sensor a 400ppm
  • Custom Cal: Te permite especificar una concentración entre 400 y 2000 ppm a la que quieres realizar la calibración
  • Calibrate at custom: Realiza la calibración a la concentración especificada en «Custom Cal»
  • Back: Regresa al menú anterior

La opción «Calibrate at custom ppm» está destinado a usuarios avanzados. Su principal utilidad es la de poder calibrar el sensor de CO2 utilizando otro sensor de CO2 de referencia. No todos los sensores tienen esta habilidad.

Configuración

En este menú, con varias opciones y submenús, puedes configurar diferentes opciones de CO2 Gadget.

Las opciones y submenús disponibles son las siguientes:

  • CO2 Sensor: Opciones relacionadas con la medición de CO2 como la activación y desactivación de la calibración automática, los colores que quieres que se utilicen para los rangos de concentración, la compensación de humedad o presión atmosférica, etc.
  • BLE Config: Activación y desactivación de BLE (Bluetooth Low Energy) y sus ajustes
  • WIFI Config: Activación y desactivación de WiFi y sus ajustes
  • MQTT Config: Activación y desactivación MQTT y sus ajustes
  • Battery Config: Configuración de la batería
  • Temp Config: Configuración de parámetros relacionados con la temperatura (offset de temperatura y unidades de medida)
  • Display Config: Opciones de configuración del display
  • Neopixel config: Configuración de LED de tipo Neopixel (WS2812B)
  • Outputs config: Configuración de las salidas de relé y LED RGB
  • Save preferences: Guarda las preferencias en la NVR (memoria no volátil) para que sean permanentes, aunque quites la alimentación del medidor
  • Back: Regresa al menú anterior

CO2 Sensor

En este menú puedes configurar todo lo relacionado con el sensor de CO2 instalado en CO2 Gadget.

  • Sensor: Aquí puedes seleccionar el sensor instalado entre: Auto (para sensores I2C como los Sensirion SCD30, SCD40 y SCD41), MH-Z19, CM1106 y Senseair S8.
  • Autom. Cal.: ON/OFF: Habilita o deshabilita la calibración automática del sensor.
  • Pres. Comp.: Establece la presión en milibares para la compensación de concentración de CO2 dependiente de la presión.
  • Altitude: Establece la altura sobre el nivel del mar para realizar una compensación de presión (si no conoces la presión atmosférica).
  • Orange: Nivel de la concentración de CO2 en PPM a partir de la cual quieres que aparezca en pantalla en color naranja.
  • Red: Nivel de CO2 en PPM para el color rojo.
  • Debug sensors: ON/OFF: Habilita la salida de información adicional de los sensores por el puerto serie (USB) para ayudar en la depuración de los sensores.
Selección del sensor de CO2

Para seleccionar el sensor, simplemente pulsa «Enter» sobre la opción «Sensor» (por ejemplo, una pulsación larga en el botón superior de un TTGO T-Display) para acceder a un submenú en el que podrás elegir el sensor que tienes conectado a CO2 Gadget.

Desplázate entre los sensores disponibles (botones arriba y abajo o «/» y «+» en el terminal serie) hasta seleccionar el que quieres elegir y pulsa «Enter» para elegirlo (si estás usando la consola serie, en este caso no lo selecciones por número del menú, por favor).

Recuerda que los sensores con conexión I2C (Sensirion SCD30, SCD40 y SCD41) son detectados automáticamente. Solamente tendrás que elegir «Auto» y CO2 Gadget lo detectará y utilizará automáticamente.

No olvides salvar la configuración cuando hayas terminado y estés satisfecho.

BLE Config

BLE (Bluetooth Low Energy) es la tecnología de comunicación vía radio que CO2 Gadget utiliza para comunicarse con tu teléfono móvil o tablet.

Si quieres visualizar los datos de CO2 Gadget en la App MyAmbience necesitas que esta opción esté encendida (ON).

WIFI Config

En este menú podrás activar y desactivar el WiFi y configurar sus parámetros, como el SSID y la clave.

  • WiFi Enable: ON/OFF: Con esta opción puedes activar y desactivar el WiFi. Interesante si no lo vas a usar, por ejemplo, fuera de casa, para aumentar la duración de la batería.
  • SSID: Debes introducir el SSID, el «nombre», del punto de acceso al que quieres que CO2 Gadget se conecte.
  • Pass: Debes introducir la clave de tu red WiFi. Por privacidad, no se muestra en pantalla.
  • Host: El nombre de host, o hostname, de CO2 Gadget en la red

MQTT Config

Aquí puedes configurar todo lo que tenga que ver con la comunicación MQTT de CO2 Gadget.

Dispones de las siguientes opciones:

  • MQTT Enable: Activa (ON) o desactiva (OFF) las funcionalidades de comunicación MQTT del medidor.
  • Topic: Topic en el que CO2 Gadget enviará y recibirá los mensajes.
  • Id: El Client Id o Identificador de Cliente que CO2 Gadget utilizará al conectarse al broker. Este identificador debe ser único (no debe haber más de un dispositivo con el mismo identificador).
  • Broker IP: Es la dirección IP del broker MQTT (servidor) al que CO2 Gadget debe conectarse.
  • User: Nombre de usuario que se utilizará para la autenticación con el broker MQTT.
  • Pass: La clave de autenticación con el broker MQTT.
  • Back: Regresa al menú anterior

ESP-NOW Config

Este menú te permite ajustar las opciones disponibles para utilizar el protocolo de comunicaciones vía radio ESP-NOW en CO2 Gadget.

  • ESP-NOW Enable [ON/OFF]: Activa o desactiva el protocolo ESP-Now
  • TX Time: Te permite ajustar el intervalo entre envíos utilizando ESP-Now entre 10 y 360 segundos.
  • Board ID: Para que puedas tener varios medidores conectados por ESP-Now simultáneamente, puedes asignarle un número de cada uno de ellos.
  • Peer MAC: La dirección MAC que utilizará para enviar datos por ESP-Now

Battery Config

En este menú puedes configurar diferentes aspectos relacionados con la batería.

Estos parámetros son un poco técnicos y puedes ignorarlos por completo si quieres. Sirven para que el voltaje mostrado en pantalla coincida con el voltaje real de la batería.

  • Battery: Voltaje actual de la batería (o de la alimentación externa si está conectada).
  • Voltage ref: Valor de la referencia interna de voltaje.
  • Bat Full (mV): Valor en milivoltios que coincide con el voltaje de la batería cuando está completamente cargada.
  • Bat Empty (mV): Valor mínimo en milivoltios cuando asumimos que la batería está completamente descargada (el momento en el que el medidor se apaga por falta de voltaje o empieza a dar medidas erróneas por tener un voltaje demasiado bajo).
  • Back: Regresa al menú anterior

Si no tienes un voltímetro, puedes hacer la siguiente calibración, que es muy sencilla y te dará un voltaje de la batería muy cercano al real: Conecta el medidor a un buen alimentador o cargador USB con un cable bueno (te recomiendo que uses uno de marca, como Samsung, Xiaomi, etc) y ajusta el valor de «Voltage ref» para que el voltaje leído de la batería marque aproximadamente 5.00 voltios (en las placas en las que lo he probado el valor de Voltage ref está sobre 930-960mV).

Temp Config

Configuración de parámetros relacionados con la temperatura.

  • Temp: Temperatura actual (siempre en grados Celsius)
  • Offset: Offset de temperatura (siempre en grados Celsius) para ajustar posibles discrepancias en la medida de temperatura. Debe ser un número positivo que se restará la temperatura medida.
  • Units [Celsius/Fahrenheit]: Permite seleccionar las unidades de medida de la visualización en el display (solo la visualización en el display, el resto sigue siendo en grados Celsius)

Display Config

Aquí tienes opciones relacionadas con la pantalla de CO2 Gadget y como la gestiona.

  • Brightness: Brillo de la pantalla de 0 (apagada) a 255 (máximo brillo).
  • Time To Off: Tiempo en segundos sin pulsar un botón para que la pantalla se apague automáticamente. Útil para ahorrar batería. La pantalla se encenderá de nuevo pulsando brevemente el botón superior. Poniéndolo a 0 se desactiva (pantalla siempre encendida).
  • Off on USB: Te permite seleccionar si quieres que la pantalla se apague cuando CO2 Gadget esté funcionando con alimentación externa (USB, por ejemplo). En este caso puede no ser necesario apagarlo para ahorrar batería, pero a lo mejor quieres apagarlo para que no te moleste la luz si lo tienes en la mesilla de noche.
  • Orient: [Normal/Reversed]: Te permite girar la pantalla 180º. De esta forma en, por ejemplo, una placa TTGO T-Display, el puerto USB y los botones quedarían a la izquierda. Las funciones de los botones también se invierten para que el funcionamiento siga siendo el normal (al girarlo 180º el que estaba arriba estará abajo y viceversa).
  • Temp: [Show/Hide]: Muestra u oculta en pantalla la medida de temperatura. Útil cuando el medidor no dispone de un sensor de temperatura (o sus medidas no son válidas).
  • Humidity: [Show/Hide]: Muestra u oculta en pantalla la medida de humedad. Útil cuando el medidor no dispone de un sensor de humedad (o sus medidas no son válidas).
  • Battery: [Show/Hide]: Nos permite elegir si queremos mostrar u ocultar los datos de batería. Útil cuando el medidor no cuenta con batería.

Outputs Config

  • Buzzer Config: Configuración del zumbador para que tengas alarmas audibles.
  • Neopix Bright: Permite elegir el brillo de los LED Neopixel (WS2812B).
  • Neopixels: Selección del tipo de Neopixel utilizado. Las opciones disponibles son NEO_GRB, NEO_RGB y NEO_RGBW (todos a 800Khz).
  • GPIO Outputs: Podrás seleccionar si a las salidas vas a conectar LEDs RGB o relés para ajustar su modo de funcionamiento.

Buzzer Config

Estas opciones te permiten configurar las alarmas audibles a tu gusto

  • Buzzer: Puedes elegir entre»OFF». que hará que el zumbador esté desactivado y se apaguen las alarmas sonoras, «One time» que hará que pite una sola vez al alacanzar el valor rojo, y «Every x» que hará que la alarma se repita con el intervalo que elijas (puedes seleccionarlo entre 5 segundos y 5 minutos).
  • Tone: Te permitirá elegir el tono del zumbador que más te guste.
  • Span: Te permite seleccional la longitud de cada pitido, según tus preferencias.

El zumbador está desactivado mientras que estás dentro del menú para evitar pitidos molestos mientras haces tus cambios.

He decidido construir el CO2 Gadget: El medidor de CO2 con ESP32 más avanzado y fácil de hacer. Haz clic para tuitear

Instalación de CO2 Gadget Advanced

Instalar CO2 Gadget en la placa con el ESP32 es super fácil. No tienes que descargar ni instalar nada en tu PC.

Pulsa el botón correspondiente a la versión que quieres instalar, selecciona el puerto donde tienes conectada tu placa y pulsa “Conectar”. Así de simple, la grabación del ESP32 de la placa se hará en un momento sin más complicación con solo dos clicks.

SaborVersiónFechaInstalar
TTGO_TDISPLAY_SANDWICH v0.12.02210-04-2024
TTGO_TDISPLAY v0.12.02210-04-2024
TDISPLAY_S3 v0.12.02210-04-2024
esp32dev_OLED v0.12.02210-04-2024
esp32dev v0.12.02210-04-2024

Elije el sabor que quieres instalar y sigue las instrucciones.

  • TTGO_TDISPLAY_SANDWICH: Placa TTGO T-Display con sensor I2C en pines alternativos (SDA en 21 y SCD en 22)
  • TTGO_TDISPLAY: Placa TTGO T-Display con sensor I2C en pines normales (SDA en 21 y SCD en 22)
  • TDISPLAY_S3: Placa T-Display S3 con sensor I2C en pines normales (SDA en 42 y SCD en 43). Pronto disponible.
  • esp32dev_OLED: Placa ESP32 genérica con display OLED (SH1106 de 128X64)
  • esp32dev: Placa ESP32 genérica sin display

Opcional, borrar la memoria:

Al grabar tienes la opción de seleccionar «Erase device», lo que borrará primero la memoria del ESP32 y restablecerá todas las configuraciones. Recomendado al grabar CO2-Gadget por primera vez.

Descarga del firmware (binarios)

El método anterior es el más sencillo para grabar el ESP. Si prefieres grabarlo de otra forma, aquí tienes los ➡ enlaces a los binarios de CO2 Gadget para que los puedas descargar.

CO2 Gadget Versión Beta-Desarrollo

Esta es una versión de pruebas Beta-Desarrollo de CO2 Gadget que no está destinada para el uso general. Te recomiendo que uses las «normales» a menos que te haya dicho en el grupo de Telegram, en los comentarios o en GitHub, que uses esta por algún motivo (normalmente para probar algo concreto).

SaborVersiónFechaInstalar
TTGO_TDISPLAY_SANDWICH 0.12.064-beta08-05-2024
TTGO_TDISPLAY 0.12.064-beta08-05-2024
TDISPLAY_S3 0.12.064-beta08-05-2024
esp32dev_OLED 0.12.064-beta08-05-2024
esp32dev 0.12.064-beta08-05-2024
esp32dev_ST7789_240x320 0.12.064-beta08-05-2024
ttgo-t5-EINKBOARDGDEM0213B74 0.12.064-beta08-05-2024
ttgo-t5-EINKBOARDDEPG0213BN 0.12.064-beta08-05-2024
ttgo-t5-EINKBOARDGDEW0213M21 0.12.064-beta08-05-2024
ttgo-t7-EINKBOARDGDEM029T94 0.12.064-beta08-05-2024
ttgo-t7-WEACT_GDEH0154D67 0.12.064-beta08-05-2024
ttgo-t7-WEACT_DEPG0213BN 0.12.064-beta08-05-2024
ttgo-t7-WEACT_GxEPD2_290_BS 0.12.064-beta08-05-2024

Elije el sabor que quieres instalar y sigue las instrucciones.

  • TTGO_TDISPLAY_SANDWICH: Placa TTGO T-Display con sensor I2C en pines alternativos (SDA en 21 y SCD en 22)
  • TTGO_TDISPLAY: Placa TTGO T-Display con sensor I2C en pines normales (SDA en 21 y SCD en 22)
  • TDISPLAY_S3: Placa T-Display S3 con sensor I2C en pines normales (SDA en 42 y SCD en 43). Pronto disponible.
  • esp32dev_OLED: Placa ESP32 genérica con display OLED (SH1106 de 128X64)
  • esp32dev: Placa ESP32 genérica sin display
  • esp32dev_ST7789_240x320: Placa genérica con display TFT de 240×320 y controlador ST7789
  • ttgo-t5-EINKBOARDGDEM0213B74: Lilygo TTGO T5 con display e-Ink con panel GDEM0213B74
  • ttgo-t5-EINKBOARDDEPG0213BN: Lilygo TTGO T5 con display e-Ink con panel DEPG0213BN
  • ttgo-t5-EINKBOARDGDEW0213M21: Lilygo TTGO T5 con display e-Ink con panel GDEW0213M21
  • ttgo-t7-EINKBOARDGDEM029T94: Placa ESP32 genérica con display e-Ink GDEM029T94
  • ttgo-t7-WEACT_GDEH0154D67: Placa ESP32 genérica con display e-Ink WeAct Studio GDEH0154D67
  • ttgo-t7-WEACT_DEPG0213BN: Placa ESP32 genérica con display e-Ink WeAct Studio DEPG0213BN
  • ttgo-t7-WEACT_GxEPD2_290_BS: Placa ESP32 genérica con display e-Ink WeAct Studio GDEM029T94 BS

Opcional, borrar la memoria:

Al grabar tienes la opción de seleccionar «Erase device», lo que borrará primero la memoria del ESP32 y restablecerá todas las configuraciones. Recomendado al grabar CO2-Gadget por primera vez.


Problemas conocidos de esta beta (no hace falta que los reportes):

  • Algunas veces Improv-WiFi no conecta (puedes instalar CO2 Gadget desde la web, pero a lo mejor te cuesta configurar el WiFi a continuación). Para configurar el WiFi te recomiendo la App MyAmbiance, lo harás fácilmente desde tu móvil Andoid o iOS.
  • En esta beta la recogida de datos en MyAmbiance no funciona bien al descargar las lecturas almacenadas en CO2 Gadget (si funciona bien cuando las estás viendo en tiempo real).
  • Los nuevos displays e-Ink GDEW0213M21y DEPG0213BN en placas Lilygo TTGO T5 parecen funcionar bien.
  • Los displays e-Ink GDEM0213B74, GDEH0154D67 y DEPG0213BN todavía dan algunos problemas con refrescos parciales de pantalla.
  • El display e-Ink GxEPD2_290_BS está incluido, pero no ha sido probado aún.

Pines utilizados por CO2 Gadget (GPIO)

Aunque en los tutoriales de construcción del blog encontrarás detallados los pines que tienes que usar, aquí tienes, de una forma más genérica, los pines que utiliza cada variante de firmware de CO2 Gadget.

VarianteDisplayRX/TXI2C
SDA/SCL
UP/DWNGPIO NaranjaGPIO Rojo GPIO BatteryGPIO BuzzerGPIO Neopixel
TTGO_TDISPLAYTFT 240×13513/1221/22 35/0 323334226
TTGO_TDISPLAY_SANDWICHTFT 240×13513/1222/21 35/0 3233342 26
TDISPLAY_S3TFT 320×17018/1743/4414/0030104216
esp32dev_OLEDSSH1106 128×6417/1621/2215/03233342 26
esp32dev17/1621/2215/03233342 26
esp32dev-ST7789_240x320ST7789_240x32017/1621/2219/0323334226
Pines utilizados por CO2 Gadget
  • Variante: Nombre de la variante del firmware, dependiendo del hardware de tu medidor.
  • Display: Pantalla soportada por la variante.
  • RX/TX: Pines (GPIO) utilizados para la conexión de sensores conectados por puerto serie
  • I2C: Pines (GPIO) correspondientes al bus I2C para conexión de sensores y pantallas I2C
  • UP/DWN: Pines (GPIO) a los que conectar los botones «Arriba» y «Abajo». Son opcionales, CO2 Gadget es completamente funcional sin botones conectados.
  • GPIO Naranja: Pin (GPIO) correspondiente a la salida cuando se alcanza el nivel naranja.
  • GPIO Rojo: Pin (GPIO) correspondiente a la salida cuando se alcanza el nivel naranja.
  • GPIO Battery: Pin para la lectura de la batería. Ten en cuenta que en la mayoría de placas el máximo valor admisible es de 1V o 3.3V, por lo que deberás poner un divisor resistivo a la entrada.
  • GPIO Neopixel: Pin al que debes conectar la línea de datos de los LED Neopixel o WS2812B

Para placas no listadas aquí o si necesitas más información, te recomiendo consultar directamente el fichero platformio.ini de la versión que estés utilizando. Por ejemplo, CO2-Gadget/platformio.ini at master · melkati/CO2-Gadget (github.com). También puedes consultar en el grupo de Telegram de eMariete.

Soporte técnico y ayuda

Si encuentras cualquier dificultad únete al Grupo de Telegram o escribe tu duda, problema o petición en la sección Issues de CO2 Gadget en GitHub (recomendado para consultas en inglés).

¿Tienes problemas? Preguntas más frecuentes del medidor (FAQ)

Aunque el proyecto es muy sencillo, siempre existe la posibilidad de que te surja alguna duda o que aparezca algún tipo de problema.

En la lista que ves debajo, tienes respuestas a las preguntas y dudas más habituales.

Comparte este artículo

Muchas gracias por colaborar con lo más difícil de este proyecto: COMPARTIRLO Y DARLO A CONOCER. De nada sirve lo mucho que yo pueda trabajar en estos tutoriales y proyectos si la gente no los llega a conocer. ¡MUCHAS GRACIAS A TODOS LOS QUE COMPARTÍS! Justo debajo tienes unos botones que te facilitarán compartirlo en Facebook, Twitter, WhatsApp y Telegram.
❤

Este post está destinado a los usuarios del firmware CO2 Gadget. Para cualquier tema relacionado con su desarrollo, dudas, problemas o peticiones, por favor, dirígete al repositorio del proyecto CO2 Gadget en GitHub.

53 comentarios en «CO2 Gadget: Medidor de CO2 avanzado»

  1. Hi Mariete,

    I am using the T-Display board, one of my buttons is broken. I am using the Serial Monitor to enter information. In the WiFI menu, how do I clear data so I can enter my home SSID/PW?

    SSID: You must enter the SSID, the «name», of the access point you want the CO2 Gadget to connect to.
    I don’t see a method to clear the previous entry.

    Thanks for the wonderful Tutorial and your software!

  2. Hi,

    First of all thank you for the nice work and effort you put into this project!

    I can confirm that it works with the CO2 Sensor» MH-Z19. (esp32dev_OLED) I’m using you’re latest version 5.0.41.

    I have some questions about the Neopixel led, I can’t get it to work on pin26. The individual (green P25, yellow P32, red P33) leds are not a problem.
    Also the 2 push buttons on pin 35/34, I can’t get to work. Pin 34 is also used for the battery?
    (tried with pin0 but also nothing). Controlling the menu with serial commands for the moment. Can you please tell me what I can try next?

    One final question, if I understand correctly only co2 sensors are supported for the moment? Because on your github page there are some pm and environmental sensors supported. If needed I’m willing to try some.

    • Hi Bart.

      The support for Neopixel is not in the latest release yet, it’s still in a private beta (I was just documenting it yesterday). Will be released over the weekend.

      Let me fix the buttons issue, please. I hope it will be fixed today.

      Support for PM 2.5 is coming. I’m waiting for a fix in a third-party library. I guess it will be ready soon.

      Best regards.

  3. Hi Mariete,

    Thank you again, also for the very fast response.
    I tried the Neopixel part. It’s working but I have the wrong type of pixels because the colors are wrong 🙂 Green is red and vice versa.
    I cannot conform button p36 because my esp32-wroom version doesn’t have a pin 36.
    I’m also testing the TTGO_TDISPLAY version with Sensirion SCD30.
    If you need more testing I can help you with that but I’m not a guru like you.

    • Hi Bart.

      I had no time to test the Neopixel LED myself. Maybe, it’s a bug. I’ll try to test it as soon as possible with some original WS2812B (hope today, tomorrow at most).

      Please, try again the updated version with buttons on pins 35 and 0. I realized it makes no sense to have buttons on different pins than those of TTGO T-Display for the «generic ESP32 flavor».

      Please, check (on display or serial terminal) that the loaded version shows, at least, «v0.5.047-feature-neopixel» as there are situations where server or browser cache can serve an outdated version.

      Any testing with new versions is very welcome as I have no time to test each version with different hardwares.

      Thank you for your kind words. No, I’m not a guru! 😀

      • actually there are lot of flavors of ws2812b led chips/strips, so controllers usually have settings to switch rgb/gbr/brg and other combinations…

        • Thanks, Jakub.

          The only addressable LED introduced right now in this precompiled beta is the original WS2812B. In future versions there will be more addressable LED supported but, before introducing the needed code to select and including it in the menu, I prefer to have some feedback with the original WS2812B, as it’s the most widely used and the only one I have.

          Internally CO2 Gadget support many different addressable LEDs (all the Adafruit library supports). So, you can compile your own version supporting any other with just one line change in code.

          Right now, the issue Bart is having can be a bug where I drive the wrong color, as I didn’t had the time to test it myself.

          • Here I’m back with an update. I hope that you like the feedback.
            It’s tested with the latest beta version v0.5.047 as stated in the menu.
            I tried the buttons, button P0 is working perfect but P35 doesn’t.
            I will try another esp32 to rule this out.
            As jakub said my Neopixel «problem» will probably be the flavor rgb/gbr/brg.
            Is it possible there is a bug in the menu for the display?
            menu (4) configuration – (7) Display Config – (2) Time to off.
            If I change this other then 0.
            I get error unfunctional, TO DO Main turning off display to save power.

            I also tested the TTGO T- normal version with the Sensirion SCD30.
            I like the color tft. Can I ask what offset you use for the temperatur?
            Tested the app (not in detail yet), wifi all looks fine.
            The MQTT part is next. I try to test as much as possible for you.

            I have esp-easy firmware with a Sensair S8 next to it but the value of the co2 is roughly 100ppm different than the SCD30.
            Going to put a MH-Z19 with CO2 Gadget side by side to compare all three.

          • Hi Bart.

            Thank you very much. This feedback help me a lot to improve CO2 Gadget and fix things.

            I will build a rig with OLED to test the buttons and some other things (I don’t have one built right now for testing). Have you checked (on display or serial terminal) that the loaded version shows «v0.5.047-feature-neopixel»?

            I plan to add over the weekend the LED configuration to the menu so it’s possible to select RGB, GBR, NEO_RGBW, etc (there is a place where you can see the «status»: https://github.com/melkati/CO2-Gadget/issues/72)

            The issue regarding the «(4) configuration – (7) Display Config – (2) Time to off» problem is because the OLED support, right now, is very limited. Here you can see whats pending to do: https://github.com/melkati/CO2-Gadget/issues/51

            The temperature offset depends a lot on enclosure, TFT brightness, etc. with the compact enclosure in a sandwich configuration I have an offset of 13ºC

            My S8 and SCD30, when in the range 400 to 1000ppm, usually are within 50 ppm one of another:

            If you check on LOGS & CONSOLE

            and then click on RESET DEVICE you can see the first log messages where the version information is:

          • Hi Bart.

            There is a new «Beta-Development Version» (https://emariete.com/en/meter-co2-gadget/#Version_Beta-Desarrollo) that adds a configuration menu («Neopixel Config» under «Configuration«) to choose one of the supported Neopixel types (I’ll add more in the future) and brightness.

            Please, after updating make sure it show, at least, «CO2 Gadget Version: 0.5.049-feature-neopixel Flavour: ESP32 OLED«.

            Hope it fixes issues with your Neopixel flavor. Please, give me feedback when you have the time to test.

          • Hi Bart.

            The issue with button UP connected to GPIO35 should be fixed now with the new release v0.5.069.

            The issue was, probably, that you didn’t have a pull up resistor connected to the UP button. It’s fixed now by changing button UP to GPIO15 without needing any resistor. I had to change GPIO as it has a internal pull up (old GPIO35 doesn’t have internal pull up).

            Please, if you find any problems, open an issue at CO2 Gadget GitHub repository by pressing green button «New issue«.

  4. hello,
    thanks for great work man.
    I made my printed box bigger to fit 18650 cell inside.
    When I try to download history using sensirion app, download state is stuck at 0%, have anyone experienced that?

    • Great! 😀

      Will you be sharing the box design? I’m preparing a post with some different enclosures so each user can choose the best for him depending on sensor, display used, battery, design preferences, etc. There are already a few of them users sent me, some on Tinkercad.com, so other users can modify to their needs, some others on Thingiverse.com.

      Regarding the download from the App, may be it’s a bug introduced in one of the last versions. Could you open an issue for this at GitHub, please?: https://github.com/melkati/CO2-Gadget/issues

        • Great, nice case! Thank you! 😊

          I’ll prepare a post on the blog over the next few days with all the available cases for CO2 Gadget and will include these. 👍

          • now I realized that I am using mh-z19b which needs 4,5-5,5V and using the battery it gets only 3,6-4,2V depending on state of charge. I tryied powering it using powebank, I measured 4,7V on pins, and values were the same (tested at 500 and 1500ppm level) as from the 4V battery. Do you think it is crucial? I read your article about mh-z19c, which is more picky about the voltage.

          • Hi Jakub.

            The CO2 sensor’s power supply is extremely important to have good readings.

            Not only the voltage must be within the specs indicated by the manufacturer but also, the voltage must be stable. You should not power a CO2 sensor directly from the battery because as the voltage drops as the battery discharges the measurements will change.

            Actually, you must calibrate the CO2 sensor at the voltage it will be used later. If you calibrate the CO2 sensor at one voltage and later, you use the sensor with a different voltage the measurements will be wrong.

            The solution to use 5V CO2 sensors on battery is to use a «step up module». More on this here: Adding battery charger to ESP8266 and ESP32 (well done)

            I hope this information is useful to you.

  5. Descargo las fuentes, para usar con Arduino Ide, y me da muchos errores de includes rotos.
    Imposible de Compilar y subir.

    • Hola Chema.

      No falta ningún fichero, todo está en el repositorio de CO2 Gadget en GitHub..

      Como se explica en las instrucciones y en los comentarios del código, actualmente ni el código está preparado para compilar con Arduino IDE ni las instrucciones están actualizadas. Si quieres compilar con Arduino IDE, tendrás que resolver includes, dependencias y defines tú mismo.

      Cuando el código sea más estable y tenga menos cambios adaptaré el código y escribiré las instrucciones para compilar con Arduino IDE (ahora mismo se modifica muy a menudo con bugfixes y nuevas funcionalidades y me quita mucho tiempo estar pendiente de mantener la compatibilidad con Arduino IDE).

      Te recomiendo que utilices VS Code con PlatformIO. En internet tienes muchos tutoriales y no es tan difícil en absoluto como parece.

  6. Hey Mariete,

    I like your Project really much.
    I want to go on with it on my own, but I am not able to upload the code in arduino IDE, because there is a file missing:
    #include

    Can you tell me, where I can get the file and where to put it? I am trying the last version from GIT.

    I am planning to build more of the devices and to send the data to a database from where I want to go on…

    • Hi Tim.

      There are not files missing, everything is at CO2 Gadget’s GitHub repository.

      As explained in the instructions and in the code comments, currently neither the code is ready to compile with the Arduino IDE nor the instructions are up to date. If you want to compile with the Arduino IDE, you will have to solve includes, dependencies and defines yourself.

      When the code is more stable and has fewer changes, I will adapt the code and write the instructions to compile with the Arduino IDE (right now it is modified very often with bugfixes and new functionalities and it takes me a lot of time to be aware of maintaining compatibility with the Arduino IDE).

      I recommend that you use VS Code with PlatformIO. On the internet you have many tutorials, and it is not as difficult at all as it seems.

  7. Hi,

    I have tested the Version: 0.5.049-feature-neopixel Flavour: ESP32 OLED (empty> flash)
    The Bright settings work.
    I can clearly see the setting changing the led from red to green and vice versa but saving the settings and reboot puts the led back to red when it should be green. After checking the settings again after the reboot they are correctly saved. (I have the rgb version). If I toggle them again, it gets the correct color again.
    I also have the rgb leds connected. I see 700 orange, state in between orange and green. >1000 I have orange and red. But only red I don’t have.
    If you want pictures or something, just let me know where to send them.
    The Bright settings work.

    • Hi Bart.

      Thank you for your feedback. It’s unbelievably valuable to me.

      So, looks like it’s not applying the saved configuration at startup. I’ll fix this in the next version.

      Regarding the RGB LED not turning off the orange when turning on the red, it is normal, as these outputs double as relay outputs. If you look in the FAQ at the point «Can CO2 Gadget turn ventilation equipment on and off?» the orange output is not turned off when red goes on (to keep ventilation or air cleaning equipment working when CO2 rises). To fix it when working with LED I’ll include a new option in menu to select if these outputs should work in «relay mode» (keeping orange on when red goes on) or «LED mode» (turning orange off when red goes on).

  8. Hey Mariete, nice project and got the waffled version running. I had some issues though on flashing from a MacBook where I moved to Windows laptop it was swifltly flashed. The LiPo battery as well: learned that batteries are not all the same size …
    Question: to try to extend battery life: can you share the BLE message format? That way I could just read the BLE message into my home automation.

    Regards, Wim

  9. Hi Mariete,

    It seems that there is a limit for the length of the wifi password (around 28 caracters). My password is rather long with 37 car and I can’t have a wifi connection. Do you confirm this limit. How to overpass it ?
    Anyway, you have done a wonderful job !!!

    laurent

  10. Hi,

    Is it possible to integrate this CO2 project into Home assistant ?

    I know that it is possible to use SCD30 with ESPHome, but it is not possible to manually calibrate the sensor with ESP Home, whereas it is possible with your project.

    Regards

    • Hi Romain.

      Yes, it’s possible.

      The best option is to integrate it via MQTT as its supported by both, Home Assistant and CO2 Gadget, and it’s really powerful and simple to setup and use.

  11. I used step-up so voltage is stable 5V, but now I don’t know when battery is going to die, TTGO is showing 5V all the time. We could use some analog in pin to show real battery voltage, or maybe, use step up only for powering the CO2 sensor and feed TTGO battery voltage?

  12. Hi,
    I don’t understant, I can enable Wifi on my ESP32 with the OLED version firmware. I have this error :

    [WiFi-event] event: 5 – Disconnected from WiFi access point

    I enter my Wifi SSID and the correct password.

    Do you have any ideas ?

    Thanks

    • Hi Romain.

      Don’t know what the issue can be here, nobody reported this before. Better open an issue at GitHub as this will need more investigation…

  13. SCD41 running just fine. On the Comm output, I see this:

    –>[SENS] CO2: 1459 CO2humi: 29.81 CO2temp: 32.04 H: 0.00 T: 0.00
    –>[SENS] CO2: 1458 CO2humi: 29.97 CO2temp: 32.08 H: 0.00 T: 0.00

    What is H: 0.00 T: 0.00? I don’t know what to look up since I don’t know what it could be.

    • Hi Mike.

      CO2 Gadget supports external temperature and humidity sensors (apart from the integrated sensors in the, in you case, SCD41). H: 0.00 T: 0.00 shows data from these external sensors. In your case it’s zero because you don’t have any connected.

    • Hi jr.

      It’s a nice sensor.

      Support for PM sensors in CO2 Gadget is planned. I can’t include it now as I don’t have one of these sensors. If anyone wants to donate a sensor (or make a pull request to include support for it) I’ll be more than happy to include it.

  14. Very nice project, hats off to you!

    Got a couple of questions:
    1. The questions in the FAQ on this page cannot be expanded. Nothing happens when I click them. I tried in Edge and Firefox, both normal and inprivate mode. Is it broken?
    2. Where can I find how to connect a MH-Z19 and a BME280 sensor?

  15. Hello,
    This is an amazing project !
    Sorry If I missed this information, but I was looking for the wiring diagram.
    My plan is to use a MH-Z19C with a TTGO T-display, a BME280 and a WS2812B LED, would this be possible?

    Thanks !

  16. Configuration web page
    In addition to being able to configure CO2 Gadget via its display and serial port, it is possible to change the options via its website.

    Hi,
    I would like to open the configuration webpage, where can I find it?

Los comentarios están cerrados.