Guía de Bajo Consumo de CO2 Gadget: Deep Sleep y Batería

Modificado por última vez hace 2 meses

CO2 Gadget incluye un sistema de bajo consumo binario (HIGH_PERFORMANCE / LOW_POWER) que consigue autonomías de hasta 3 meses con una batería 18650, frente a las pocas horas de un medidor convencional. Aquí verás cómo configurar wake-up por CO₂, por timer, por botón, y las técnicas de deep sleep no-bloqueante para SCD4x y CM1106.

Documentacion en actualizacion. Estamos revisando y mejorando todas las paginas. Es posible que encuentres algun enlace roto o contenido pendiente. Si ves algo que falla, ayudanos a arreglarlo en GitHub.

Modos de funcionamiento (binario, desde v0.16.x)

Desde v0.16.015-beta, CO2 Gadget usa un modelo binario de modos (anteriormente había 4 modos que se han simplificado). La preferencia lowPowerMode toma los valores:

ModoValorDescripciónConsumo
HIGH_PERFORMANCE`0`Funcionamiento continuo, sin sueño, todas las radios activasAlto
LOW_POWER`1`Deep sleep con wakes periódicos configurablesMuy bajo

Si actualizas desde una versión anterior a v0.16, el antiguo `MEDIUM_LOWPOWER` se migra automáticamente a `LOW_POWER=1` mediante `upgradePreferences()` en el primer arranque.

Ciclo de deep sleep

En modo LOW_POWER el medidor se despierta periódicamente, toma medidas, publica datos (si corresponde) y vuelve a dormir. Los parámetros principales son:

ParámetroConstanteDefaultSignificado
`waitToDeep``timeToWaitForCaptivePortal`60 sTiempo en wake antes de volver a dormir
`timeSleeping``DEEP_SLEEP_SECONDS_DEFAULT`60 sDuración del deep sleep
Rango de sueño`DEEP_SLEEP_SECONDS_MIN/MAX`15–900 sLímites mínimo y máximo configurables
`activateWiFiEvery``cyclsWifiConn`5Ciclos de wake entre conexiones WiFi
`cycRedrawDis`5Ciclos entre refrescos de pantalla
`wakeOnCO2Alert``true`Pantalla se enciende al superar umbral naranja

Comportamiento por sensor en low power (v0.16.x)

Cada sensor tiene un handler optimizado para minimizar el consumo en wake:

  • SCD41 — single-shot no bloqueante (`measureSingleShot(true)`), conversión en 5 s de light-sleep. Resultado se consume en el siguiente wake. Esta es la mejora clave de v0.16.015.
  • SCD40 — `startLowPowerPeriodicMeasurement()`, espera limitada a 31 s en light-sleep de 0,3 s.
  • SCD30 — modo continuo, espera limitada a `(sampleTime + 1) × 1000` ms.
  • CM1106SL-NS — espera RDY activo-LOW hasta 2 s, ciclo EN HIGH→LOW, validación `CO₂ > 0`.
  • MH-Z19 / Senseair S8 — lectura continua estándar.

BTHome en low power

Cuando el BLE BTHome está activo (SUPPORTBTHOMEBLE), durante el deep sleep el medidor emite un anuncio BTHome breve (BLEWAKEADVERTISEMENTMS = 2500 ms) antes de volver a dormir. Los sensores de partículas PM se omiten en el anuncio (el ventilador no da tiempo a una medición válida); la selección se retiene y se reanuda automáticamente al volver a HIGHPERFORMANCE.

Presión barométrica en wake

Si tu build incluye SUPPORTLOWPOWER_PRESSURE y un sensor BME280, en cada wake se ejecuta un takeForcedMeasurement() para tener una lectura de presión actualizada sin salir del modo sleep. Esta presión se publica por BTHome y MQTT.

Configuración desde la web

La página /low_power.html permite configurar los umbrales de publicación del ThresholdManager (4 canales: Display, BLE, MQTT, ESP-NOW) y los flags de wake. Desde allí también se controla el modo (lowPowerMode) y la duración del sueño.

Batería

CO2 Gadget mide el voltaje de la batería con divisor 100k/100k (ratio 2.0) y promedio de 3 muestras por lectura. El display solo se actualiza cuando el delta de voltaje es ≥ 0,1 V (evita parpadeos). Puedes configurar batChargd y batDischargedMillivolts desde el menú Configuración → Battery Config (defaults: 4150 mV lleno, 3200 mV vacío tras la migración de v0.16).

Notas importantes

  • Las variables RTC se preservan en deep sleep (con fallback a NVS)
  • El T-Display S3 apaga completamente el backlight (IC DW8904)
  • La calibración en curso se preserva a través del sueño
  • CO2 Gadget ofrece una gestión de energía más avanzada que cualquier medidor comercial de precio similar

¿Te ha sido útil? Comparte este artículo. ¿Tambien consulta la Guía del Menú. Tienes dudas? Pregunta en el grupo de Telegram.

Deja un comentario