Medidor CO2 Gadget Low Power con Lilygo TTGO T5 ePaper y sensor Sensirion SCD41

Modificado por última vez hace 3 semanas

Una de las formas más sencillas de tener un medidor de CO2 de bajo consumo es utilizar el firmware CO2 Gadget Advanced junto con una Placa LilyGo TTGO T5 2.13″ con ePaper y un sensor Sensor Sensirion SCD41 de CO2, temperatura y humedad.

Esta combinación no es la de más bajo consumo posible, pero es muy fácil de replicar, de resultados garantizados y con componentes muy fáciles de encontrar.

Y aunque no sea la combinación con el consumo más bajo posible, te ofrece de una forma sencilla hasta tres meses de autonomía con una sola carga.

Por cierto, que, aunque parezca obvio no es menos importante: el efecto de la pantalla de tinta electrónica, con su excelente visualización es increíble.

La placa ESP32 Lilygo TTGO T5

La Placa LilyGo TTGO T5 2.13″ está optimizada para bajo consumo y consta de un microcontrolador ESP32, una pantalla de tipo e-Ink (tinta electrónica (ePaper, como lo llama el fabricante), el controlador de pantalla y un cargador de baterías, todo integrado en una sola placa.

Una de las mejores características de esta placa (junto con su bajo consumo y estar preparada para funcionar con batería recargable) es que incluye una pantalla de tinta electrónica de 2.13″.

La principal ventaja de las pantallas de tinta electrónica es que son capaces de mantener la imagen en pantalla sin consumir energía. Esto es: una vez que pintamos lo que queremos en pantalla podemos incluso cortar la alimentación y la imagen seguirá mostrándose durante meses sin ningún consumo de energía.

Lilygo TTGO T5

El sensor de CO2 Sensirion SCD41

Hasta hace poco tiempo, comprar un sensor de CO2 de bajo consumo era complicado (no se encontraban fácilmente) y, sobre todo, caro (no solían bajar de 60€ o más).

Sensor de CO2, temperatura y humedad Sensirion SCD41 Placa Azul

Todo esto ha cambiado con la llegada del Sensor Sensirion SCD41 y, sobre todo, con la posibilidad de comprarlo muy fácilmente en sitios como AliExpress a precios muy interesantes (sobre los 20€ con envío incluido). Es realmente bueno midiendo, flexible y su consumo energético es más que aceptable.

Montaje del medidor con TTGO T5 y SCD41

El montaje es realmente fácil: Solamente tienes que conectar el Sensor Sensirion SCD41 a la Placa LilyGo TTGO T5 2.13″ mediante solo cuatro cables y ya está. ¿Puede ser más fácil?

El firmware CO2 Gadget Advanced

El firmware CO2 Gadget Advanced es probablemente el firmware para makers más completo y avanzado que existe.

Se trata de un firmware que puede funcionar con la mayoría de medidores de CO2 basados en ESP32 (yo diría que el 99% de ellos), tal cual o con modificaciones mínimas.

Al ser Open Source y estar todo su código fuente publicado puedes adaptarlo y modificarlo como quieras. Si eres programador, o simplemente sientes curiosidad, puedes encontrar el código fuente y mucha más información en el repositorio de CO2 Gadget en GitHub.

Te sugiero que leas el post general sobre CO2 Gadget para descubrir todas sus posibilidades:

Puedes instalarlo de fácilmente desde el instalador que encontrarás en ese mismo artículo, con solo un par de clicks en tu navegador. Sin necesidad de instalar nada en tu PC.

A día 30 de Marzo de 2024: Las funcionalidades para el soporte de pantallas de tinta electrónica y de bajo consumo están en desarrollo en este momento, en un estado bastante avanzado y posiblemente esté listo para beta testing en las próximas semanas.

Para más información, o si quieres ser beta tester, visita el repositorio de CO2 Gadget en GitHub.

Autonomía del medidor

La autonomía de este medidor, el firmware CO2 Gadget Advanced, es de unos tres meses, dependiendo de cómo lo configures (en base a tus necesidades).

Por ejemplo, con esta configuración, bastante típica: Cada 5 minutos toma una medida de CO2, temperatura y humedad, la muestra en pantalla y la envía por Bluetooth, (donde puede ser recibida en el teléfono móvil o puedes introducirlo en tu sistema domótico como Home Assistant con un Bluetooth Proxy para almacenar y visualizar los datos): La autonomía estimada del medidor será de unos 90 días.

Vamos a ponernos un poco técnicos (sin que sirva de precedente):

Aquí tienes el consumo del medidor, con la configuración indicada anteriormente, durante 10 minutos de su vida:

Como ves, la mayor parte del tiempo está durmiendo, sin hacer nada, y cada cinco minutos ves en el gráfico que hay un pico de consumo que corresponde a la medida de sensor, la presentación en pantalla y el envío de los datos por bluetooth.

Concretamente es un ciclo que consiste en estar 398,3 segundos sin hacer nada y 8,618 segundos midiendo, presentando en pantalla y enviando por bluetooth (y vuelta a empezar).

Como calcular la autonomía puede ser un poco tedioso, vamos a hacer uso de la inteligencia artificial y le vamos a preguntar cuál es la autonomía con un prompt como este:

Hola ChatGPT,
¿Puedes ayudarme a calcular la duración de la batería para mi circuito?
Quiero que calcules los ciclos y el tiempo completo de autonomía. Aquí está la información:
1. Duración del funcionamiento activo del circuito (en segundos): 7.8 sec
2. Duración del deep sleep del circuito (en segundos): 398.5 segundos
3. Consumo por hora durante el tiempo de funcionamiento activo (en mA): 28.16mAh
4. Consumo por hora durante el tiempo de deep sleep (en µA): 519uAh
5. Capacidad de la batería (en mAh): 2500mAh

ChatGPT nos responderá al momento algo como esto:

Claro, puedo calcular la duración de la batería para tu circuito con esa información. Vamos a realizar los cálculos:

Convertir las duraciones del funcionamiento activo y del deep sleep a horas:

  • Duración del funcionamiento activo: 7.8 \, \text{seg} = 0.00217 \, \text{horas}
  • Duración del deep sleep: 398.5 \, \text{seg} = 0.11069 \, \text{horas}

Calcular el consumo de energía total durante un ciclo de funcionamiento y deep sleep:

  • Consumo total durante el ciclo:
    • Duración del funcionamiento activo: 0.00217 \, \text{horas} \times 28.16 \, \text{mA} = 0.0611 \, \text{mAh}
    • Duración del deep sleep: 0.11069 \, \text{horas} \times 519 \, \text{µA} = 0.05742 \, \text{mAh}
  • Consumo total durante el ciclo: 0.0611 \, \text{mAh} + 0.05742 \, \text{mAh} = 0.11852 \, \text{mAh}

Calcular cuántos ciclos completos de funcionamiento y deep sleep caben en la capacidad total de la batería:

  • Capacidad de la batería: 2500 \, \text{mAh}
  • Número de ciclos completos: \frac{2500 \, \text{mAh}}{0.11852 \, \text{mAh}} \approx 21100.85

Multiplicar este número de ciclos por la duración total de un ciclo para obtener el tiempo total de autonomía:

  • Tiempo total de autonomía: 21100.85 \, \text{ciclos} \times (0.00217 \, \text{horas} + 0.11069 \, \text{horas})
  • Tiempo total de autonomía: 21100.85 \, \text{ciclos} \times 0.11286 \, \text{horas} \approx 2383.76 \, \text{horas}

Por lo tanto, con una capacidad de batería de 2500 mAh y los ciclos de funcionamiento y deep sleep proporcionados, la autonomía estimada del circuito sería aproximadamente 2383.76 horas, o alrededor de 99 días y 7 horas.

Actualización 5 de abril de 2024

Sigo trabajando en optimizar la eficiencia energética del medidor.

Mis esfuerzos de la última semana se han centrado en reducir la energía durante el tiempo que el medidor está «activo».

Con las nuevas mejoras en el código, el tiempo activo (en las mismas condiciones que la prueba anterior) se ha reducido de los 7.8 segundos a solo 6.8 segundos y además el consumo durante ese tiempo ha bajado de 28.16mAh a 23.14mAh. También el consumo en deep sleep ha bajado ligeramente, de 519uAh a tan solo 378.90uAh.

Para tener la estimación, le preguntamos de nuevo a ChatGPT:

Hola ChatGPT,
¿Puedes ayudarme a calcular la duración de la batería para mi circuito?
Quiero que calcules los ciclos y el tiempo completo de autonomía.
Aquí está la información:
1. Duración del funcionamiento activo del circuito (en segundos): 6.8 sec
2. Duración del deep sleep del circuito (en segundos): 398.5 segundos
3. Consumo por hora durante el tiempo de funcionamiento activo (en mA): 23.14mAh
4. Consumo por hora durante el tiempo de deep sleep (en µA): 378.90uAh
5. Capacidad de la batería (en mAh): 2500mAh

Para calcular la duración de la batería en ciclos y el tiempo total de autonomía para tu circuito, necesitamos considerar el consumo de energía durante el funcionamiento activo y el deep sleep.

Paso 1: Calcular el consumo total de energía por ciclo

Consumo durante el tiempo activo (en mAh):

  • Consumo activo por hora: 23.14 mAh
  • Duración activa por ciclo: 6.8 sec
  • Convertir duración activa a horas (6.8 sec -> horas): \frac{6.8}{3600} hrs
  • Consumo total durante tiempo activo por ciclo: 23.14 \, \text{mAh} \times \frac{6.8}{3600} hrs

Consumo durante el deep sleep (en mAh):

  • Consumo en deep sleep por hora: 378.90 uAh (o 0.3789 mAh)
  • Duración en deep sleep por ciclo: 398.5 sec
  • Convertir duración en deep sleep a horas (398.5 sec -> horas): (\frac{398.5}{3600} hrs
  • Consumo total durante deep sleep por ciclo: 0.3789 \, \text{mAh} \times \frac{398.5}{3600} hrs
Paso 2: Calcular el consumo total por ciclo

Sumamos los consumos durante el tiempo activo y el deep sleep:

\text{Consumo total por ciclo} = \text{Consumo en activo por ciclo} + \text{Consumo en deep sleep por ciclo}

Paso 3: Calcular la duración de la batería en ciclos

\text{Duración de la batería (en ciclos)} = \frac{\text{Capacidad de la batería}}{\text{Consumo total por ciclo}}

Paso 4: Calcular la duración total de la batería en horas

\text{Duración total de la batería (en horas)} = \text{Duración de la batería (en ciclos)} \times \left( \frac{\text{Duración en activo por ciclo}}{3600} + \frac{\text{Duración en deep sleep por ciclo}}{3600} \right)

Ahora realizamos los cálculos:

Cálculos:
  1. Consumo durante el tiempo activo por ciclo (en mAh):
    23.14 \, \text{mAh} \times \frac{6.8}{3600} \, \text{hrs} = 0.0432 \, \text{mAh}
  2. Consumo durante el deep sleep por ciclo (en mAh):
    0.3789 \, \text{mAh} \times \frac{398.5}{3600} \, \text{hrs} = 0.0418 \, \text{mAh}
  3. Consumo total por ciclo (en mAh):
    0.0432 \, \text{mAh} + 0.0418 \, \text{mAh} = 0.085 \, \text{mAh}
  4. Duración de la batería en ciclos:
    \frac{2500 \, \text{mAh}}{0.085 \, \text{mAh}} = 29411.76 \, \text{ciclos}
  5. Duración total de la batería (en horas):
    29411.76 \, \text{ciclos} \times \left( \frac{6.8}{3600} + \frac{398.5}{3600} \right) \, \text{hrs}
    = 29411.76 \, \text{ciclos} \times \left( \frac{405.3}{3600} \right) \, \text{hrs}
    = 29411.76 \, \text{ciclos} \times 0.11258 \, \text{hrs}
    = 3308.82 \, \text{horas}
Respuestas:
  • La duración de la batería en ciclos sería aproximadamente 29,412 ciclos.
  • El tiempo total de autonomía de la batería para tu circuito sería aproximadamente 3,308.82 horas.

Por lo tanto, con una capacidad de batería de 2500 mAh y los ciclos de funcionamiento y deep sleep proporcionados, la autonomía estimada del circuito sería aproximadamente 3308.82 horas, o casi 138 días.

La actualización total del display o «Full refresh»

Voy a provechar ahora para ampliar la información para el cálculo de la autonomía con algo que he tocado solo de refilón. Para ello me pasaré en la actualización de la autonomía del 5 de abril de 2024.

Hay que tener en cuenta que con las pantallas e-Paper hay que hacer una actualización total de vez en cuando (momento en el que el display parpadea, cambiando entre negro y blanco varias veces).

Esta actualización dependerá (tanto en tiempo como en frecuencia) de la pantalla que utilicemos.

Cuando toca hacer un «Full refresh» la pantalla está ocupada durante más tiempo que en una actualización parcial, y consume más energía.

En los ejemplos que hemos visto la pantalla no hacía una actualización total.

Vamos a ver, en términos de consumo energético, la diferencia entre una actualización parcial y una total.

En el siguiente perfil de consumo, tienes una actualización parcial y seguida de una total:

Como ves a simple vista, la actualización parcial (la primera) es más rápida y con menor consumo que la actualización parcial o «Full Refresh» (la segunda).

Vemos cada una de las dos por separado, empezando por la actualización parcial:

Puedes ver que dura aproximadamente 6.8 segundos y que su consumo medio es de 23.11mA

Veamos la actualización total o «Full refresh»:

Como ves, en la actualización total, el tiempo es de aproximadamente 10.8 segundos y en consumo medio es de unos 15.98mA.

Como la proporción entre ciclos de actualización parcial y total la configuras tú, tendrás puedes tenerla en cuenta según tus preferencias.

Fíjate en que la diferencia efectiva entre ambos periodos no es tan grande como pueda parecer. Una consume más durante menos tiempo y otra consume menos durante más tiempo. Te invito a hacer algún cálculo rápido para ver cuál es la diferencia energética real.

La cesta de la compra

Placa LilyGo TTGO T5 2.13″ . Ten cuidado porque hay varias placas muy parecidas (que incluso pone que son la misma versión, pero no es así). No todas las placas están soportadas por CO2 Gadget. Este es el enlace donde yo la compré. Asegúrate de pedir la que pone «DEPG0213BN 9102 Chip».

Sensor de CO2, temperatura y humedad Sensirion SCD41 Placa Azul

Sensor Sensirion SCD41: El último SCD41 lo compré en AliExpress, en este enlace el día 20 de marzo y el día 28 ya lo tenía en casa. Es una tienda con muchos votos positivos (4.8 estrellas) y que lleva funcionando muchos años (está en AliExpress desde 2012), por lo que no creo que tengas problemas. Asegúrate de comprar el que pone «SCD41 placa azul».

Caja impresa en 3D

Si tienes acceso a una impresora 3D, he adaptado una caja impresa en 3D para este proyecto.

Incluye un espacio para alojar el sensor SCD41 con entradas de aire y aislado del resto de la caja para evitar en lo posible que se vea influenciado por el calor emitido por la electrónica y que las medidas de temperaturas no se vean afectadas (o, al menos, para reducir el efecto).

Tienes dos traseras para la caja. Una está pensada para poder meter una batería de tipo 18650 la otra, con menos fondo, es para baterías más estrechas.

Puedes encontrarla en Tinkercad para descargarla o incluso modificarla para adaptarla a tus necesidades.

Deja un comentario