Sistema de sensor de calidad del aire ESPHome (SEN6x)
Table of Contents
Un simple sensor de CO2 a menudo no es suficiente para controlar con precisión la calidad del aire interior. En este proyecto muestro la construcción de un monitor de calidad del aire totalmente dinámico basado en ESPHome. Lo especial: el sistema se puede configurar completamente en tiempo de ejecución a través de una interfaz web sin necesidad de volver a flashear y resuelve los desafíos de hardware específicos de los sensores profesionales.
Base de hardware del troquel
El sistema se basa en componentes compactos y de alta calidad:
-
Microcontrolador: Un ESP32-C3-DevKitM-1 proporciona suficiente energía para la pantalla y garantiza una conexión WLAN estable.
-
Sensorio: El Sensirión SEN66 (compatible con SEN6x/SEN5x) es un sensor todo en uno para medir CO2, partículas (PM1.0, PM2.5, PM4.0, PM10), compuestos orgánicos volátiles (VOC), óxidos de nitrógeno (NOx), así como temperatura y humedad.
-
Mostrar: Una pantalla LCD redonda de 1,28 pulgadas con GC9A01 Controlador, controlado vía SPI.
También diseñé una carcasa adecuada para el proyecto que garantiza un flujo de aire óptimo para el sensor y aloja todos los componentes de forma compacta.
Características del software y aspectos técnicos destacados
El firmware se basa en ESPHome y utiliza la biblioteca LVGL para la interfaz gráfica. La atención se centró durante el desarrollo en la máxima flexibilidad y precisión física.
1. UI completamente dinámica y operación sin cabeza
El dispositivo está diseñado como un verdadero sistema autónomo. No necesariamente requiere una nube o incluso una instancia activa de Home Assistant. Gracias al servidor web ESPHome integrado, el dispositivo puede funcionar sin cabeza a través de cualquier navegador de la red local. Todas las asignaciones (qué valor medido se muestra en qué ranura de pantalla), colores, configuraciones de tema (modo oscuro/claro) y frecuencias de actualización se pueden cambiar en vivo en la interfaz de usuario web. La pantalla se ajusta en tiempo real.
2. Lógica específica del motor de gasolina Sensirion
Los sensores de gas para CO2, VOC y NOx requieren un período de calentamiento continuo para calcular las líneas de base correctas. Simplemente reiniciar el temporizador de consulta restablecería el sensor y distorsionaría los valores medidos. Por lo tanto, el firmware utiliza una lógica de consulta desacoplada: el sensor funciona internamente en funcionamiento continuo en un intervalo de 24 horas, mientras que un script independiente y personalizable recupera los datos de forma suave y asíncrona en el intervalo deseado (por ejemplo, cada 30 segundos) a través del bus I2C.
3. Compensación dinámica de humedad (fórmula Magnus)
Las carcasas compactas generan calor residual, lo que requiere una compensación de temperatura en el software. Sin embargo, la humedad relativa depende físicamente directamente de la temperatura. Si solo se calibra la temperatura, la precisión de la humedad mostrada disminuye. Por lo tanto, el firmware calcula mediante el Fórmula Magnus-Tetens La presión de vapor de saturación actual y corrige la humedad relativa para que coincida con la compensación de temperatura establecida. Esto significa que los valores medidos mostrados siguen siendo físicamente consistentes.
4. Límites de alarma individuales
Para poder evaluar la calidad del aire de un vistazo, se implementaron 21 valores límite individuales (tres niveles para siete sensores cada uno). Si un valor excede el límite definido, la hoja o el texto correspondiente en la pantalla cambia automáticamente al color de advertencia deseado (por ejemplo, amarillo, naranja o rojo). Estos valores de umbral y colores también se pueden configurar fácilmente a través de la interfaz de usuario.
Recursos y descarga
El proyecto es completamente de código abierto. Hago el código ESPHome completo (YAML) y el modelo 3D de la vivienda disponibles en GitHub y Thingiverse:
-
Firmware/código fuente: Haga clic aquí para acceder al repositorio de GitHub
-
Carcasa de impresión 3D (STL/STEP): Haga clic aquí para ver el proyecto Thingiverse
-
Conductor: El excelente controlador SEN6x del repositorio se utiliza como componente personalizado tuct/esphome-proyectos usado.
TPA3116r…









Hola, en la imagen n.° 3 hay lo que parece un inserto de espuma gris donde se coloca el sensor en la carcasa. ¿Viene con el sensor? Parece que fue cortado con una máquina. Si no, ¿de dónde sacaste eso?
Hola, esto es correcto, está cortado de espuma EVA con láser. El sensor no viene con él. Subí la forma a thingiverse.com (con suerte). Estos provienen de sensirion de la página de datos de los sensores.
Atentamente
Tienes un proyecto increíble aquí y estoy tratando de hacerlo yo mismo. Encontré tu página de thingiverse (el enlace del artículo apunta a github), pero no puedo encontrar el recorte de la espuma. Es la pieza que me falta, si pudieras subirla, te lo agradecería mucho. ¿Qué espesor tenía la espuma que usaste para ajustarlo bien al estuche? Supongo que estás ubicado en Alemania. Estoy en Suiza. ¿Alguna recomendación sobre el corte de EVA? Nunca había hecho eso antes.
Modificaciones que planeo hacer a su diseño: actualizaré a ESP32-C6 (aproximadamente 3 mm más largo) e intentaré agregar un sensor de luz ambiental para controlar la pantalla. ¿Entiendo que lo ha codificado (o lo está controlando a través de HA)?
También me alegrará que me envíes los detalles por correo electrónico.
El brillo de la pantalla y el modo Día/Noche están disponibles en HA para su manipulación. Nada está codificado. Utilizo el modificador solar para decidir cambiar el brillo. Todo está en el código ESPHome.
El EVA mide 2 o 3 mm de un paquete de hojas de varios colores, nada especial. Corté esto con un láser UV barato de 5 W a potencia/velocidad “media”.
Encontré el archivo STEP de espuma en la página de sensiron, consulte el enlace a continuación.
¿Enlace?
Intenté manipularlo pero se metió un bollo por todos lados.
¿Qué pasó?
Hola, estoy interesado en construir el mismo proyecto. ¿Puedes solicitar más detalles?
Porque no sé programar arduino.
Gracias
¿Puedes enviarme el diagrama de los cables? ¿Cómo conectarse?