Medidor de CO2 Display TFT Color con TTGO T-Display Sensirion SCD30 – El CO2 Gadget

Última modificación el 19 octubre, 2021

Un medidor de CO2 de alta calidad con pantalla en color y conexión con tu móvil mediante bluetooth que puedes llevarlo a todas partes gracias a su batería recargable (opcional) y saber, discretamente y en todo momento, la calidad del aire que respiras.

Aquí te traigo el medidor CO2 GADGET.

CO2 Gadget y App Sensirion MyAmbience

Este tutorial está acompañado de un video, que podrás encontrar más abajo, con todo explicado paso a paso y con detalle para la constricción del CO2 Gadget .

En este tutorial vas a ver, de una forma muy fácil, como:

  1. Preparar el Hardware: Aprender cómo conectar de sensor SCD30 a la Placa TTGO T-Display
  2. Grabar el firmware en la Placa TTGO T-Display
  3. Visualizar los niveles de CO2 en la pantalla TFT en color, tu ordenador y en móvil o tablet con la App Sensirion MyAmbience
  4. Extras: Algunos trucos, consejos e informaciones adicionales

Además en breve encontrarás algo que estoy seguro que de que te encantará: Mi propia versión ampliada del firmware del CO2 Gadget con nuevas características interesantes:

  • Más modos de funcionamiento: Bluetooth, WIFI, y puede que ESP-Now
  • Más sensores soportados, tanto de CO2 como de temperatura, humedad y presión
  • Optimizaciones de consumo para uso con batería
  • Soporte para más pantallas
  • Envío de datos por MQTT
  • Configuración mediante página web
  • Actualizaciones a través de su página web

¡Constrúyelo ahora y actualízalo después!

Este tutorial es una versión mejorada, con pantalla en color y batería recargable, de otro proyecto publicado previamente: Medidor de CO2 en tu móvil con ESP32 y sensor Sensirion SCD30. Si aún no lo has visto, te sugiero que lo veas ahora, ya que contiene información básica:

La pantalla incorporada te permitirá visualizar la concentración actual de CO2 y su nivel en color verde, amarillo/naranja o rojo, dependiendo de si el nivel de CO2 es bueno, malo o muy malo.

Este proyecto es muy nuevo y, de momento, lo ha construido muy poca gente. Puedes considerarlo un proyecto en «fase Beta». Si lo construyes, por favor, dime cómo te ha ido, si te está funcionando bien o has encontrado algún problema. Tus comentarios en este momento son muy importantes para mejorarlo.

Si quieres ir sobre seguro, con un medidor de CO2 ampliamente probado y con cientos de unidades montadas por los usuarios, visita el siguiente tutorial:

Material necesario

Para completar este tutorial, y construir tu CO2 Gadget, vas a necesitar:

Más adelante, en la sección «La cesta de la compra» te doy algunos consejos sobre el material a comprar, así como algunos enlaces útiles a sitios donde puedes comprarlos a buen precio y con garantías.

Preparar el Hardware

La preparación del hardware del CO2 Gadget es muy sencilla.

Te doy dos opciones para su montaje: una versión en la que que sensor y placa están unidos mediante unos cablecillos y una versión super compacta en que que sensor y placa están unidos como un solo bloque compacto.

Versión cableada

Para la primera versión, conecta, con cuidado, la Placa TTGO T-Display al Sensor Sensirion SCD30 como te explico a continuación. Presta atención a cada cable para que vaya del pin correcto del sensor al pin correcto de la placa.

Tienes que conectar mediante unos cablecillos:

  • El pin VIN del SCD30 al pin marcado 3V de la placa TTGO
  • El pin GND del SCD30 al pin marcado G de la placa TTGO
  • El pin SCL del SCD30 al pin marcado 22 de la placa TTGO
  • El pin SDA del SCD30 al pin marcado 21 de la placa TTGO
Imagen con propósitos ilustrativos tomada del tutorial de Sensirion en Github

Versión sándwich

El objetivo de este montaje, es conseguir un medidor lo más compacto posible.

La versión sándwich del medidor va unida mediante unos pines o cables rígidos. De esta forma la Placa TTGO T-Display y el Sensor Sensirion SCD30 forman un único bloque.

Si estás montando esta versión, asegúrate de grabar el firmware específico para el modelo «sándwich», ya que sus pines son diferentes y esta versión del firmware está preparada para este cambio. Tienes más información sobre esto un poco más abajo.

Grabar la placa LILYGO® TTGO T-Display

Forma «extra-super-rápida y sencilla» (recomendada)

Grabar el firmware en la placa LILYGO® TTGO T-Display es super fácil. No tienes que descargar ni instalar nada en tu PC.

Pulsa el botón “Install”, seleccionar el puerto donde tienes conectada tu placa y pulsar “Conectar”. Así de simple, la grabación del ESP32 de la placa se hará en un momento sin más complicación.

Versión normal (SDA al pin IO21 y SCL al pin IO22)

En preparación (en breve lo tendrás aquí).

Versión sándwich (SDA al pin IO22 y SCL al pin IO21)

¡Tu navegador no es compatible! Tienes que usar Windows con Microsoft Edge o Google Chrome para ver el botón

Opción tradicional, utilizando el Arduino IDE

Con el Arduino IDE podrás realizar los cambios que quieras antes de grabar el firmware en el ESP32 y adaptarlo a tus gustos, necesidades y preferencias.

Puedes encontrar el código fuente original en el repositorio de Sensirion en GitHub.

Ten en cuenta, si vas a grabar tu propio firmware, que en la versión compacta del medidor (en la que el sensor SCD30 y la placa TTGO T-Display van montadas juntas, como un sándwich, unidas mediante una tira de pines), los pines SDA y SCL están invertidos respecto a como vienen definidos en Arduino por defecto.

Normalmente en el ESP32 el SDA del bus I2C debe conectarse al pin IO21 y el SCL al pin IO22. En el sándwich, está al revés: SDA al pin IO22 y SCL al IO21.

Para que funcione tendrás que hacer dos modificaciones:

1. Tienes que añadir, justo al principio del sketch, las siguientes dos línea:

2. Tienes que modificar la inicialización del bus I2C, que normalmente es Wire.begin() por Wire.begin(I2C_SDA, I2C_SCL), como aquí:

Recuerda, si utilizas cables y conectas SDA al pin IO21 y SCL a IO22 no tienes que hacer estas modificaciones.

Uso del medidor CO2 Gadget

El uso de este medidor es exactamente igual que el descrito en el tutorial original, Este tutorial es una versión mejorada, con pantalla en color y batería recargable, de otro proyecto publicado previamente (Medidor de CO2 en tu móvil con ESP32 y sensor Sensirion SCD30), con la diferencia de que en este podrás ver la concentración de CO2 en la pantalla en color.

A lo mejor también te interesa:  Datos de radiactividad de Madrid en tiempo real

La concentración de CO2 se muestra en diferentes colores dependiendo de su concentración:

  • Verde hasta 1000 ppm
  • Naranja de 1000 a 1600 ppm
  • Rojo a partir de 1600 ppm

Estos valores, para mi gusto, son más o menos correctos (un poco «generosos») en tiempos normales pero ahora, en tiempos de pandemia, deberían ser más bajos.

En la versión avanzada del medidor puedes cambiar estos rangos para adaptarlos a tus necesidades y preferencias.

Si quieres tener esta versión básica pero con unos colores ajustados a esta época de pandemia, déjame un comentario en el post del tutorial principal. Si hay suficiente demanda compilaré una versión con los rangos modificados y la dejaré aquí para su fácil instalación.

Calibración del sensor Sensirion SCD30

El Sensor Sensirion SCD30 utilizado en este tutorial debe ser calibrado, como todos los sensores.

Puedes esperar siete días, sacándolo un rato al aire fresco cada día, para que el sensor se auto-calibre o puedes hacer una calibración manual (recomendado) si no quieres esperar ese tiempo.

Calibración automática

El sensor de CO2 Sensirion SCD30 cuenta con un sistema de calibración automática, llamada por Sensirion Automatic Self-Calibration (ASC), y funciona bastante bien.

Su funcionamiento es el siguiente:

Puesto que la concentración de CO2 natural en la atmosfera es de aproximadamente 400 ppm (realmente algo menos de 420 ppm de media en el año 2021), cuando el ASC está habilitado, el sensor asume que, durante un periodo de aproximadamente 7 días, la mínima concentración de CO2 que encuentre será equivalente a 400 ppm.

Esto significa que, en una habitación bien ventilada, que en algún momento del periodo de siete días tenga aire limpio, la medida más baja será de alrededor de 400 ppm y el sensor asumirá esa concentración (sea la que sea) como punto cero, o 400 ppm.

Dicho de otra forma, el sensor asumirá que la medida más baja de cada periodo de 7 días será de 400 ppm.

Si, he explicado lo mismo de tres formas distintas pero es necesario comprenderlo bien porque eso supone que:

  • No puedes utilizar la calibración automática si vas a utilizar el sensor en un invernadero, por ejemplo, ya que el aire del invernadero nunca bajará a 400 ppm.

Esta es una forma muy cómoda de mantener el sensor calibrado, utilizando el aire limpio como valor de referencia y automatizando el proceso.

El medidor de CO2 que te estoy mostrando en este tutorial tiene la calibración automática activada y funcionando por defecto. Ten en cuenta que, cuando lo construyas, tendrás que mantener el sensor conectado y funcionando durante siete días seguidos (sin apagarlo) para que se calibre (o hacer una calibración manual, como te indico más abajo).

Calibración manual

El sensor de CO2 Sensirion SCD30 permite la calibración manual para que no tengas que esperar esos siete días para que se calibre automáticamente pero Sensirion no ha implementado esa posibilidad en su firmware.

He preparado un firmware especial de fácil uso e instalación por si quieres calibrar el sensor manualmente.

Este firmware, que solamente sirve para calibrar el sensor SCD30 a 415 ppm, hace lo siguiente:

  • Cuando lo pones en marcha, esperará cinco minutos, para que el sensor se estabilice, durante los cuales el LED de la placa (por defecto un LED conectado a GPIO2) estará parpadeando cada segundo.
  • Transcurridos los cinco minutos calibrará el sensor y, una vez calibrado, dejará encendido el LED de forma permanente.

Nota: La TTGO T-Display no tiene LED, aunque no lo necesitas para hacer la calibración. Próximamente implementaré en el firmware mensajes de estado de calibración en pantalla.

Pulsa el botón “Install”, seleccionar el puerto donde tienes conectada tu placa y pulsar “Conectar”. Así de simple, la grabación del ESP32 se hará en un momento sin más complicación.

¡Tu navegador no es compatible! Tienes que usar Windows con Microsoft Edge o Google Chrome para ver el botón

Este programa es extremadamente simple. Si quieres modificarlo, o ver cómo funciona, tienes el código fuente en el GitHub de eMariete.

Un consejo: El SCD30 es muy sensible a las corrientes de aire (todos los sensores NDIR en mayor o menor medida) por lo que es importante que al sacarlo al exterior para calibrarlo no le de mucho aire. Si hay cierto viento donde lo vayas a calibrar, puedes incluso meter el medidor en una bolsa de plástico transparente, no hermética, y pulsar el botón a través suyo). Si ya está en su caja no deberías tener problema.

La cesta de la compra

Te dejo aquí algunos consejos y enlaces a sitios de internet donde comprar los materiales.

Comprando los componentes en estos enlaces te asegurarás de tener exactamente los mismos componentes del tutorial y que todo coincida (no todas las placas, por ejemplo, aunque parezcan casi iguales y se llamen igual, tienen todos los pines en el mismo lugar o los tienen rotulados de la misma forma).

Comprar el sensor Sensirion SCD30

Sensor Sensirion SCD30

Esta es la misma tienda de AliExpress donde yo lo compré y me llegó a casa en 7 días.

Casi todos los usuarios de eMariete han comprado el sensor en este enlace y lo han recibido rápidamente.

Te recomiendo que lo compres aquí: Sensor Sensirion SCD30

Comprar la placa LILYGO® TTGO T-Display

Placa TTGO T-Display

Esta es la tienda oficial del LILYGO®, el fabricante de la placa, por lo que tienes garantía de seriedad y de que la placa es original.

Te recomiendo comprarla aquí: Placa TTGO T-Display

Verás que hay varias versiones. Te recomiendo que compres la que pone «4MB CH340K Chip».

Tienes también la opción de comprar la placa en Amazon. Es algo más cara pero la tendrás en tu casa rápidamente.

ICQUANZX T-Display ESP32 WiFi y Placa de Desarrollo del módulo Bluetooth para Arduino LCD de 1.14 Pulgadas
  • Chipset: ESPRESSIF-ESP32 (Wi-Fi y Bluetooth) Microprocesador LX6 de 32 bits Xtensa de 240MHz de un solo núcleo / doble núcleo
  • FLASH: QSPI flash 4MB / PSRAM 8MB
  • Pantalla: IPS ST7789V 1.14 pulgadas, USB: Tipo-C
  • Corriente de trabajo: aproximadamente 67MA, corriente de reposo: aproximadamente 350uA
  • Interfaz modular: UART 、 SPI 、 SDIO 、 I2C 、 LED PWM 、 TV PWM 、 I2S 、 IRGPIO 、 ADC sensor sensor táctil del capacitor pre preamplificador DACLNA

Video-tutorial paso a paso

En el siguiente video tienes instrucciones paso a paso para la construcción de este medidor de CO2 para que te resulte muy fácil montarlo.

Hacer estos videos lleva mucho trabajo. Si te gusta el video no te olvides de darle a «Me gusta» y suscribirte al canal. Eso me motivará a seguir haciendo más videos como estos.

Caja impresa en 3D

Con la idea de que el CO2 Gadget sea un medidor pequeño y compacto, que puedas llevar a cualquier sitio, aquí tienes una caja para imprimir en 3D.

Puedes descargar los archivos para imprimirla en Thingiverse.

La caja ha sido diseñada en Autodesk Tinkercad lo que la hace sencillísimo de modificar para que puedas adaptarla a tus gustos y necesidades. Puedes encontrarla en esta página de Tinkercad.

Ten en cuenta que esta caja es un diseño muy compacto y que, debido al calor generado por los componentes electrónicos, los datos de temperatura y humedad serán erróneos,

A lo mejor también te interesa:  Experimentos con ESP Easy (ESP8266) y bajo consumo - v2.0

Uso con batería

Lo primero que tienes que tener en cuenta, para tener las expectativas correctas, es que este no es un medidor de bajo consumo, aunque puedes alimentarlo con baterías para llevarlo contigo donde quieras fácilmente.

La placa TTGO T-Display cuenta con cargador de baterías incorporado y cargará la batería conectada a unos 300mA (por defecto, aunque se puede cambiar sustituyendo una resistencia) cuando esté conectada por USB.

El uso principal de este medidor es conectado a un alimentador o cargador y la batería es un extra para utilizarlo de forma autónoma durante unas horas de vez en cuando. Por supuesto, nada te impide poner una batería tan grande como quieras y conseguir autonomías mucho más largas.

El la siguiente fotografía puedes ver uno de los prototipos de caja impresa en 3D con una batería de 800mAh (o 1000mAh, la verdad es que es una batería vieja y no sé exactamente de cuánto es).

Si quieres mejorar la autonomía, te sugiero que cargues la versión ampliada y mejorada del firmware (en preparación), en la que he incluido varias optimizaciones de consumo para mejorar la autonomía. La versión del firmware de esta página, que es la «oficial» creada por Sensirion, no cuenta con ningún tipo de optimización de consumo.

En la siguiente imagen puedes ver el perfil de consumo del medidor durante 10 segundos:

Perfil de consumo del medidor sin optimizaciones

Como ves, el medidor consume aproximadamente 97mA, que podemos redondear a 100mA.

Esto significa que teóricamente tendríamos una autonomía de aproximadamente 10 horas de funcionamiento continuo con una batería de 1000mAh, 20 horas con una batería de 2000mAh y unas 35 horas si le instalamos una batería de tipo 18650 de 3500mAh. En la practica está autonomía será menor porque el hardware no está especialmente optimizado y no será capaz de exprimir toda la energía de la batería.

Al tratarse de un diseño tan nuevo todavía no he tenido mucho tiempo para hacer pruebas de consumo, por lo que no te puedo dar resultados reales. En cuanto tenga tiempo las haré y pondré los datos aquí.

Todo lo que puedo decirte, de momento, es que con la batería que has visto antes, lo he estado utilizando en varias ocasiones durante unas cinco o seis horas (nunca he llegado a apurar para comprobar cuánto duraba la batería, lo haré en breve y te contaré).

Repito, estos consumos son utilizando el firmware básico escrito por Sensirion, sin ningún tipo de optimización. Es pronto para decirlo con exactitud, pero espero, basado en experiencias previas similares, que la versión avanzada del firmware tenga una autonomía de, al menos, entre dos y cuatro veces más con la misma batería y el bluetooth encendido.

Debes tener en cuenta que, como en cualquier aparato alimentado por batería, debes utilizar una batería que cuente con las pertinentes protecciones. Como mínimo la batería debería tener protección contra cortocircuitos, sobrecarga, sobredescarga, y sobrecorriente.

Muchas baterías incluyen estas protecciones pero si la tuya no las tuviera, tendrás que poner una placa de protección como esta:

Protección batería

👉 Placa protección batería en AliExpress

Un regalo

Si has llegado hasta aquí leyendo el artículo ¡enhorabuena! Tienes interés en el CO2 Gadget y por ese motivo voy a hacerte un regalo:

La versión beta limitada de medidor avanzado.

Esta versión no difiere mucho de la versión normal que tienes más arriba (no incluye ninguna de las cosas super interesantes y emocionantes que te he prometido). pero tiene estas tres cosas que para mí son muy útiles (¡ahora con más cosas: mira más abajo!):

  • Tramos de colores adaptados a los que yo considero mis referencias en época Covid: Verde hasta 700 ppm, naranja hasta 1000 ppm y rojo a partir de 1000 ppm.
  • Calibración fácil: Solo tienes que pulsar el botón superior (junto a puerto USB-C) durante más de 3 segundos y el medidor hará una calibración manual forzada a 415 ppm (asegúrate de poner el sensor en exterior hasta que la lectura se estabilice, yo suelo dejarlo unos 5 minutos, y después pulsa el botón más de tres segundos).
  • Visualización del voltaje de la batería: Pulsa el botón superior más de 0.5 segundos y menos de 3 segundos y podrás ver en pantalla el voltaje de la batería.

Novedades del regalo

He decidido seguir añadiendo algunas cosas a esta versión beta limitada para que las puedas ir probando mientras libero el firmware avanzado completo. A continuación puedes ver las nuevas características y funcionalidades:

Changelog del regalo:

Novedades 17/10/2021

Añadido menú en pantalla para realizar varios cambios (de momento solo son funcionales algunos). Una pulsación larga (más de 300ms) en el botón superior para entrar al menú y una pulsación larga en el botón inferior para salir del menú.

Mientras estás en el menú, una pulsación corta en el botón de arriba para desplazarte arriba, una pulsación corta en el botón de abajo desplazarte abajo. Una pulsación larga en el botón de arriba para seleccionar, una pulsación larga en el botón de abajo para salir del menú.

Funcional: Ahora puedes configurar tus rangos de color personalizados para que se muestre la concentración de CO2 en verde/naranja/rojo a los niveles que tú quieras. Asegurate de que el rango para el color rojo sea superior al rango para el color naranja, de momento no se comprueba que sea así,.
Funcional: Activa y desactiva la calibración automática del sensor de CO2
Funcional: Establece la presión atmosférica a la que se encuentra el sensor para que haga una compensación automática.
Funcional: Modifica el valor de referencia de la batería para que se ajuste más al voltaje real.

Bugs: El voltaje de la batería tarda un minuto en visualizarse tras el encendido del medidor.

Nota: Para evitar problemas, mientras se prueban estas opciones, ninguno de los valores modificados es guardado permanentemente en el medidor. Cuando reinicies el medidor se perderán los valores que hayas elegido y se cargarán los valores por defecto.

Novedades 18/10/2021

Funcional: Implementada la calibración desde el menú. Ahora puedes calibrar tanto al valor fijo de 400 ppm como a cualquier valor que quieras entre 400 y 2000 ppm (Esta opción es para uso avanzado, no la utilices si no sabes lo que estás haciendo. Su uso principal es para calibrar el medidor utilizando otro medidor de referencia).

Funcional: Guardado de preferencias en memoria no volátil. Ahora las siguientes preferencias son guardadas y vuelven a cargarse en el arranque, en caso de reinicio o perdida de alimentación: Valor de calibración personalizado, metros de altitud, calibración automática, rango color naranja, rango color rojo.

Mejorada: La lectura y visualización de la batería. Ya no es necesario esperar un minuto para leer la batería.

Beta firmware avanzado versión sándwich (SDA al pin IO22 y SCL al pin IO21):

¡Tu navegador no es compatible! Tienes que usar Windows con Microsoft Edge o Google Chrome para ver el botón

Estate atento, puede que antes de publicar el artículo con el firmware avanzado y liberar su código fuente ponga aquí más betas con cosas más interesante.

¿Tienes problemas? Preguntas más frecuentes del medidor

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 verás abajo, tienes respuestas a las preguntas y dudas más habituales.

Comparte este artículo

Muchas gracias por colaborar con lo más difícil: COMPARTIRLO Y DARLO A CONOCER. De nada sirve lo mucho que yo pueda trabajar en estos tutoriales 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.

❤

3 comentarios en «Medidor de CO2 Display TFT Color con TTGO T-Display Sensirion SCD30 – El CO2 Gadget»

  1. Buenas.
    Soy primerizo y he hecho este montaje. Con el firmware del sandwich la pantalla se quedaba mostrando el logo de Sensirion. En la app se muestra siempre -45 grados Celsuis, 0 HR y 0 ppm en C02.
    He probado con la versión avanzada. Ahora sale el logo de emariete y después la pantalla ya muestra 0ppm en verde. La app también muestra lo mismo de antes.
    No sé si hay algo que pueda haber hecho mal… Ah, me costó dar con los drivers adecuados, creo que los que funcionaron bien fueron los del enlace de la página china.
    Gracias y enhorabuena por tu trabajo.
    P.

    Responder
    • Hola P.

      Es muy probable que se deba a un error en el cableado. Sería conveniente ver fotos detalladas del montaje, donde se aprecien bien las conexiones, para asegurarnos. También es muy importante cargar la versión adecuada del firmware (versión normal o sandwich), dependiendo del montaje que hayas hecho.

      De lo contrario lo mejor será conectar el medidor al ordenador por el puerto USB y con un monitor serie ver los mensajes que va sacando el medidor por el puerto USB, que son muchos e indican paso a paso lo que va sucediendo.

      Te recomiendo que te pases por el grupo de chat de Telegram dónde será mucho más fácil verlo: https://t.me/emariete_chat

      ¡Seguro que damos con el problema enseguida!

      Un saludo.

      Responder

Deja un comentario