En iberotecno, dedicamos mucho tiempo a investigar el mercado de los detectores de CO2. Siempre andamos buscando algún sensor que nos permita mejorar nuestros kits de Arduino. Lo que buscamos son sensores más precisos, pero que a la vez tengan un buen  precio. Actualmente trabajamos con el sensor de CO2 electroquímico MQ-135, pero también hemos sometido a muchas pruebas al sensor de CO2 CCS811 de los laboratorios AMS que funciona con óxido de metales. Éstos han sido los resultados.

Como mide CO2 el sensor CCS811

El sensor lleva en su interior un sensor de óxido de metal (MOX) y utiliza una tecnología única que usa un micro plato caliente para medir los Compuestos Orgánicos Volátiles del aire (VOCs). Usando un algoritmo inteligente que lleva en su micro chip, el sensor es capaz de saber el CO2 que hay en el aire sabiendo la cantidad de VOCs. Los VOCs que hay en el aire suelen ser expulsados por los humanos, por lo tanto es posible estimar el valor de CO2 ambiental, a esto se le llama eCO2.

sensor de co2 ccs811

Detector de calidad del aire CCS-811 junto al sensor de temperatura y humedad DHT-22

Qué precio tiene el sensor de CO2 CCS811

Digamos que el MQ135 tiene un precio barato. En torno a los 2€. Decimos barato, en comparación con otros sensores de CO2, por ejemplo el sensor NDR MH-Z19 que puede costar tranquilamente 20€ por unidad. Hablando del CCS811 podemos decir que tiene un precio intermedio, de unos 5€ por lo que se convierte en una opción con un precio intermedio entre las existentes. 

La auto calibración del algoritmo de medición de CO2

Una de las características interesantes del sensor de CO2 CCS811 es que lleva en su interior un microcontrolador o MCU que se encarga de los algoritmos y de procesar los datos para entregarlos a Arduino ya preparados para su lectura. Dentro de estos algoritmos, existe una función de auto calibración. Cuando está activada, la MCU del sensor, va guardando en una memoria las últimas medidas durante el período de 24 horas. Entonces, se queda con la más baja de todas y la toma como referencia para las 400ppm que suele haber en un ambiente limpio. Más adelante te comentamos los resultados de las pruebas.

La compensación de temperatura y humedad externas

La temperatura y la humedad externas siempre afectan a los medidores de CO2, sea cual sea el caso. El CCS811 no es por lo tanto una excepción.

Sin embargo, la MCU del sensor de CO2 CCS811, admite que le digamos los valores de temperatura y humedad ambiental, que hayamos medido con otros sensores independientes. Esto le va a servir al algoritmo para añadir esos datos al cálculo de CO2 y ser mucho más preciso en teoría. Esto se puede hacer de varias formas. Bien enviando esos datos a la MCU por medio de software, invocando en nuestro firmware a una función muy sencilla incorporada en la librería que más adelante te dejamos. La librería admite bien los valores de sensor de temperatura DHT22, tienen un formato compatible. La otra forma es enviando directamente estos datos a los pines del sensor. Sin pasar por nuestro software. Algo más complejo.

sensor de co2 ccs811

Pruebas del sensor de CO2 CCS811 en el laboratorio de iberotecno

Los resultados de las pruebas

Tras comprar el sensor, es recomendable dejarlo en funcionamiento unas 24 - 48 horas, a lo que se llama período de burn in.Al principio los valores no son muy exactos, pero la librería tiene incluso un modo para este supuesto. Si queremos, el software puede ir compensando los resultados del período inicial pero bueno, lo recomendable es esperarnos.

Tras el período de burn in, los resultados obtenidos por el sensor, los comparamos con el kit de Arduino que funciona con el MQ-135, con el detector de CO2 iberotecno mini con sensor electroquímico y con el detector de CO2 iberotecno Pro, con sensor NDR. Inicialmente vemos que marca unos datos correctos. Sin embargo, cuando el tiempo va pasando y la calidad del aire va variando, no vemos que el CCS811 siga muy bien los valores de los otros sensores. Si variamos la humedad relativa y la temperatura de la sala de pruebas, los valores todavía pierden más su sincronía y su consistencia con respecto al resto de sensores. 

La prueba conjunta con el sensor de temperatura y humedad DHT22 para corregir las lecturas

Como los resultados obtenidos no nos han gustado mucho, hemos probado a conectar al conjunto el sensor de temperatura y humedad DHT22, reconocido por su gran precisión. La librería admite sin mayor problema las lecturas del sensor DHT22 por lo que nos ha sido fácil implementarlo.

Sin embargo, los resultados, lejos de mejorar, prácticamente empeoran. Vemos diferencias abismales, de más de 500ppm de CO2 entre el CCS811 y el resto de sensores. Esto desde luego nos hace no estar demasiado satisfechos con los resultados del test.

La prueba del algoritmo de auto calibración del CCS811

Como última esperanza, decidimos dejar el sensor funcionando durante 72 horas en un lugar en el que de vez en cuando se ventilaba por completo. Debemos tener en cuenta que el algoritmo del CCS811 va a tomar como referencia para las 400ppm (que suele haber en un ambiente limpio), el valor más bajo que mida durante 24 horas, por lo que la sala en la que esté, deberá ventilarse por lo menos una vez al día.

Tras esperar varios días a que los datos del algoritmo cobraran consistencia, los resultados están lejos de ser buenos para nosotros. Tienen una desviación bastante grande con respecto al resto de sensores por lo que el veredicto final es que vamos a optar por seguir usando el sensor MQ-135 en nuestro Kit detector de calidad del aire para aprender Arduino.No obstante, seguiremos investigando con cada nuevo sensor de CO2 que aparezca en el mercado para mejorar nuestros productos.

sensor de co2 ccs811

Prototipo de un kit de aprendizaje de Arduino con el sensor de CO2 CCS811 en su interior

Montaje y código de ejemplo del sensor de CO2 CCS811

El cableado entre el sensor de CO2 CCS811 y nuestra placa Arduino o ESP32 es bien sencillo. Tan solo deberemos seguir el esquema adecuado para cada placa. En este enlace los tienes.

El código con varios ejemplos, así como la librería, que incluye la posibilidad de implementar la corrección de temperatura y humedad, los puedes encontrar en esta web.

También te dejamos en nuestro GitHub la versión especial y personalizada del código fuente de nuestro Kit de Aprendizaje de Arduino, tanto para el MQ-135 como para el sensor de CO2 CCS811

Aquí te dejamos también la hoja de datos o datasheet del sesnsor CCS811