## Medidor Analógico de CO₂ con Motor Paso a Paso y Tasmota
Hemos desarrollado un dispositivo para monitorear los niveles de CO₂, mostrado en un medidor de aguja que imita los instrumentos automovilísticos o de aviación. Utiliza el sensor SenseAir S8, el motor paso a paso X27-168 con driver VID6608, y el firmware Tasmota. El dispositivo se integra con sistemas de hogar inteligente y soporta una interfaz web para configuración y actualizaciones OTA. Todos los componentes están disponibles globalmente, y el ensamblaje no requiere partes raras.
Requisitos del dispositivo: mediciones precisas de CO₂, temperatura, humedad y presión; indicador analógico con retroiluminación; opciones de estilo (aviación/retro) y retroiluminación (filamento/RGB); operación por el usuario final sin necesidad de programador.
Selección de Componentes y Mecánica
El motor paso a paso X27-168 es estándar en paneles de instrumentos automovilísticos (OPEL, VAZ-2110). La familia de motores incluye variantes sin sensor cero y modelos de doble aguja. El driver VID6608 implementa microstepping (división 1/12, ~0.028° por paso), reduciendo el ruido y mejorando la precisión según la hoja de datos.
Se rechazaron alternativas como servos por su ruido, baja precisión y ángulo de rotación limitado. Los voltímetros analógicos no sirven: ángulo pequeño (90°), fragilidad, partes exóticas. Los medidores listos de AliExpress están orientados a carreras callejeras y son incómodos para integrar.
Sensor de CO₂: SenseAir S8 (estándar de la industria). Sensores climáticos adicionales (temperatura, humedad, presión). Sin sensores, el dispositivo opera con comandos de hogar inteligente.
Prototipado del Driver:
- Probado inicialmente vía H-Bridge: baja precisión, alto ruido.
- Con VID6608: movimiento suave, dinámica natural de la aguja.
Integración con Tasmota
La librería SwitecX25 para ESP32 tiene errores: desbordamiento de char (unsigned en ESP32), falta de timeouts según la hoja de datos de VID6608. Se desarrolló una nueva librería basada en SwitecX25:
- Soporte solo para drivers tipo VID6608 (el control directo es ineficiente).
- Curvas de aceleración configurables.
- Timeouts adecuados y microstepping.
- Integración directa en Tasmota (sin submodules).
Se eligió Tasmota por su soporte integrado para hogar inteligente (MQTT, HTTP), interfaz web y OTA. Se añadió soporte para motores paso a paso de instrumentos.
Ejemplo de configuración básica de Tasmota (vía interfaz web):
SwitecX25:
enable: true
driver: VID6608
steps: 28800 # Rotación completa
acceleration: 500
Carcasa e Impresión 3D
Carcasa basada en cajas de relojes despertador donantes. Piezas impresas en Ender-3: escalas (aviación/retro), aguja, soportes. Ángulo de rotación ~300° asegura legibilidad.
Opciones de configuración:
- Estilo: aviación (aspecto metálico) / retro (vintage).
- Retroiluminación: ninguna / filamento (imitación incandescente) / RGB (tira addressable).
- Sensores: CO₂ + clima / solo clima / solo CO₂ / sin sensores.
Ensamblaje: PCB con ESP32, driver, conectores. Disponibilidad global: motores ~2€, drivers ~1.5€, SenseAir S8 ~25€.
Funcionalidad y Calibración
La pantalla muestra el CO₂ actual (400-2000 ppm, escala con zonas: normal/ventilar/crítico). Actualizaciones cada 5-10 seg con suavizado para movimiento fluido.
Algoritmo de movimiento de la aguja:
- Cálculo de pasos:
target_pos = map(co2_ppm, 400, 2000, 0, max_steps). - Aceleración/desaceleración vía curva S para inercia realista.
- Microstepping minimiza vibraciones.
Integración: temas MQTT para CO₂, temp, humedad. Interfaz web: gráficos, calibración cero, modo prueba.
Puntos Clave
- Precisión: SenseAir S8 ±50 ppm ±3% a 30°C, respuesta <20 seg.
- Compatibilidad: Tasmota + Home Assistant/MQTT sin firmware extra.
- Reproducibilidad: todas las partes en DigiKey/AliExpress, Gerbers en el repo.
- Licencia: GNU GPLv3, código/3D/STL de código abierto.
- Extensibilidad: la aguja muestra cualquier métrica vía MQTT.
— Editorial Team
Aún no hay comentarios.