Después de leer este artículo (ES), comencé a pensar en crear mi propia placa de sensores. Busqué qué sensor usar y el SGP30 me pareció una buena opción. Luego, hice algunas pruebas, modifiqué el código de otro proyecto y más tarde diseñé una PCB. A partir de ese diseño, construí dos prototipos que actualmente están funcionando en mi casa. El dispositivo usa una cola mqtt para enviar datos a un gateway IoT (un minipc que ejecuta Home Assistant en mi caso). Además de eso, hay tres LED para mostrar cuál es el estado actual del aire en función de las partes por millón (PPM) de CO2:
- Se muestra la luz verde si hay menos de 600 PPM de CO2.
- Luz amarilla si hay entre 600 y 800 PPM.
- Rojo cuando el CO2 es superior a 800.
El código fuente y el diseño de PCB (hecho en Kicad) se pueden encontrar aquí. En enero, el proyecto fue certificado como hardware de código abierto por la OSHWA
Cómo funciona
Todos los LED se encienden cuando se inicia el dispositivo. Después de leer si configuración, el dispositivo intentará conectarse a la red guardada. Después de eso, solo se encenderá un LED.
El sensor de CO2 toma una medición cada segundo y envía un promedio de los últimos 60 valores de CO2 y TVOC cada minuto. El sensor de temperatura y humedad se utiliza para corregir los datos obtenidos como se explica en la hoja de datos del SGP30.
Los LED del dispositivo también son útiles para conocer el estado actual en caso de error:
- Si están todos encendidos, la placa no puede conectarse a la WiFi.
- Si el LED amarillo parpadea, el detector de co2 está conectado al WiFi pero no puede alcanzar la cola MQTT.
- Si no se detecta el sensor SGP30, el LED rojo parpadea.
Los errores de DHT22 (sensor de humedad y temperatura) se detectan pero no se informan a través de los LED, ya que este sensor se usa para mejorar la precisión de las lecturas de CO2, pero no es crítico si no funciona. Es posible detectar un mal funcionamiento en el DHT22 encontrando las últimas lecturas de temperatura y humedad en Homa Assistant (por ejemplo, si ambos valores no se actualizan durante muchas horas).
Utilizo Home Assistant para recopilar todos los datos y mostrar la información. El software se ejecuta en un miniPC (SolidRun CuBox-i) que es un pequeño servidor de IoT doméstico y también tiene el broker Mosquitto mqtt. El dispositivo envía los datos de los sensores a la cola de mqtt y Home Assistant los lee y almacena todo en una base de datos. Además de eso, Home Assistant tiene una aplicación de interfaz que muestra el estado actual de todos sus sensores y gráficos históricos de un día seleccionado. Es posible utilizar cualquier otro software similar con la capacidad de suscribirse para leer desde mqtt.
Repositorio del proyecto y licencia
El proyecto está alojado actualmente en GitHub. Se pueden encontrar los esquemas de hardware y los archivos de diseño en el directorio board. El hardware se distribuye bajo la licencia Cern Open Source Hardware License 1.2. El software está disponible con la licencia Apache 2.0 y se puede encontrar en el directorio co2-detector. Finalmente, todos los documentos que se encuentran en este proyecto se distribuyen bajo licencia Creative Commons CC0.