Hay un chico nuevo en la ciudad entre los sensores de CO2 NDIR. Un antiguo/nuevo conocido de la comunidad maker, un sensor de CO2 NDIR de bajo consumo, el MH-Z1311A de Winsen.
Descubre lo que vamos averiguando sobre este nuevo sensor al que seguro que pronto estaremos sacando mucho partido.
Contenidos
Gracias a las aportaciones económicas de los usuarios del grupo de Telegram de eMariete, @hpsaturn, @CarlosBA2, @TeddyTodd, @GLM_BCN, @Master_hogwarts, @erguro1973, @Roberbike, @AnCaMaAl, Josep y @CoscolinSergio, hemos hecho un pedido de dos de estos sensores de bajo consumo.
Gracias a su ayuda, tenemos aquí información de primera mano del MH-Z1311A y probablemente pueda ser soportado por los medidores de CO2 CO2 Gadget y CO2 Easy.
¡Muchas gracias por esta gran aportación!
ACTUALIZACIÓN 19/2/2022 13:30: Hemos sorteado un sensor entre los usuarios y el ganador ha sido: @CarlosBA2(Carlos Botana). ¡¡¡¡Enhorabuena Carlos!!!!
El sensor NDIR de CO2 MH-Z1311A
La última incorporación es el sensor de bajo consumo MH-Z1311A. Un sensor que, aunque no continúa con la nomenclatura MH-Z19x, parece a todas luces una evolución.
Físicamente es prácticamente igual en cuanto a tamaño y conexiones.
Su carcasa esta vez imita el aluminio, aunque sigue siendo de plástico, como la del MH-Z19 (si, ambas son de plástico, aunque parezcan metálicas).
Este sensor destaca por anunciar un consumo medio de menos de 1mAh (si, concretamente un consumo de menos de 800 µAh).
Incluso su protocolo de comunicación es prácticamente idéntico, por lo que muchos proyectos preparados para funcionar con el MH-Z19 funcionarán sin ajustes (o con ajustes mínimos) con el MH-Z1311A.
Te dejo aquí dos documentos técnicos interesantes del sensor de CO2 Winsen MH-Z1311A, su datasheet y el documento describiendo el protocolo:
Calibración del MH-Z1311A
IMPORTANTE: Según lo indicado por el fabricante, es fundamental que, durante el proceso de calibración manual, el sensor esté funcionando previamente durante, al menos, 20 minutos, en un entorno de CO2 estable con una concentración de CO2 de aire fresco, 400ppm (al aire libre o junto a una ventana, por ejemplo).
Calibración por hardware
Si tenemos acceso físico a las conexiones del sensor, podemos iniciar fácilmente el procedimiento de calibración del punto cero, puenteando durante 7 segundos los terminales 5 (HD) y 7 (GND).
Antes de realizar el procedimiento, asegúrate de que el sensor ha estado durante, al menos, 20 minutos a una concentración estable de unos 400 ppm.
Calibración por software
El sensor dispone de un comando que le ordenará realizar la calibración del punto cero en ese mismo momento.
Podemos realizar la calibración a una concentración de entre 400 y 1000 ppm.
Es importante que antes de realizar la calibración cumplas con estos tres puntos:
- El sensor ha estado encendido durante más de 2 horas
- La concentración de CO2 del sensor en el entorno actual debe estar entre 400 y 1000 ppm y no puede exceder este rango, de lo contrario el envío de este comando será inválido.
- La concentración de CO2 en el entorno debe estabilizarse durante más de 10 minutos antes de enviar este comando, de lo contrario la desviación de la calibración será relativamente grande.
Para saber más sobre la calibración, te recomiendo que leas el siguiente artículo, ya que este sensor es muy parecido al MH-Z19 y, salvo lo anterior, todo lo demás es común con él:
Mis impresiones
Sin duda, lo mejor es que su compatibilidad con los principales comandos del extendidísimo sensor NDIR MH-Z19. Esto permite dotar de un sensor NDIR de bajo consumo a muchos proyectos de medidores de CO2 ya existentes.
Esto es especialmente útil cuando se quiere utilizar el medidor de CO2 con baterías ya que el MH-Z1311A consume aproximadamente 60 veces menos que el MH-Z19B, lo que puede permitir extender la autonomía del medidor varias veces.
Otra característica muy interesante es que la programación y uso es extremadamente fácil, sobre todo si lo comparamos con otros sensores de bajo consumo existentes que tienen un protocolo de comunicación bastante engorroso y muchas opciones (para bien o para mal).
Análisis del MH-Z1311A
Empiezo por dejarte aquí este adelanto en video, aunque más abajo encontrarás mucha más información que no aparece en el video:
Mientras tanto (hoy es 16 de febrero) sigo haciendo el análisis del sensor e introduciendo aquí la información por lo que seguirás encontrando actualizaciones frecuentes, hasta que el análisis esté terminado.
Unboxing y primeras impresiones
Como te adelanté, hemos pedidor DOS sensores MH-Z1311A, directamente a Winsen a través de su tienda oficial en AliExpress.
El pedido ha llegado a Madrid desde la tienda oficial de Winsen en AliExpress, en China, en unas tres semanas y como en otras ocasiones en las que he hecho pedidos a Winsen el embalaje es perfecto.
Viene en una caja robusta, con una gran cantidad de material absorbente y los sensores colocados en espuma electrostática.
Se acompaña de un informe de inspección en el que figuran algunos datos interesantes, como la precisión o los puntos de inspección con sus resultados.
En cuanto a la precisión es curioso que en el documento indica que su precisión es de +/-50ppm+5% de la lectura, cuando en el datasheet pone que es de +/-30ppm+5% de la lectura.
En el documento pone que se han hecho pruebas de medición de concentración de CO2 a 400 ppm, dando un resultado de 405ppm y a 2000 ppm, dando un resultado de 1980ppm, lo que está muy bien.
Análisis de consumo del MH-Z1311A
Se supone que el bajo consumo es la principal ventaja de este sensor. Vamos a ver si es verdad haciendo algunas pruebas y medidas…
El fabricante nos indica en su datasheet que el consumo es menor de 0,8mA (si, solo 800 µAh) ¿Será verdad?
Nos ponemos manos a la obra, utilizando un Power Profiler Kit II de Nordic Semiconductor para realizar las mediciones.
Medimos el consumo del sensor sin nada conectado, excepto la alimentación, y las mediciones arrojan los siguientes resultados:
Podemos ver los siguientes puntos interesantes:
- El consumo medio del sensor es de 1.4mA
- El pico máximo de consumo es de algo menos de 230mA
Los picos de consumo de 230mA se producen cada medio minuto y se supone que son cuando el sensor hace las medidas de CO2 y, aunque de alta intensidad, son muy breves.
Tenemos otros picos más frecuentes, de unos 80mA, en los que se supone que el microcontrolador del sensor se despierta y hace «algo» (probablemente ocuparse de las comunicaciones por si hay algún comando llegado por el puerto serie o alguno de los pines).
Aquí podemos ver en detalle ese pico de 230mA:
Podemos ver que:
- El pico de consumo mientras el sensor hace su medición dura solo 259µs (microsegundos) por lo que no contribuye demasiado al consumo, aunque este sea alto durante ese breve periodo de tiempo.
- El consumo medio durante esos 259µs que dura la medición de CO2 es de 71mA
Respecto a esos picos más rápidos, con una periodicidad mayor y de menor consumo, puedes verlos aquí:
Lo más importante es:
- Se producen cada 500ms
- El consumo en cada pico es de 78mA
- El consumo medio es de 1.38mA
Te dejo también el detalle de cada uno de esos picos rápidos:
Fíjate que el pico es realmente corto, dura solamente 228µs.
CONCLUSIONES:
El consumo del sensor está muy bien, 1.4mA de media, lo que puede ayudar mucho en proyectos con batería sin tener que ir a sensores de ultra bajo consumo, mucho más difíciles de integrar en el código. Eso sí, es casi el doble de consumo de lo que nos promete el fabricante en el datasheet (menos de 0.8mA).
Análisis del protocolo del MH-Z1311A
Una de las grandes ventajas de este sensor, que será muy importante para muchos, es que, sobre el papel, la compatibilidad de su protocolo con el extendidísimo sensor MH-Z19B debería ser total.
Esto, sin duda, tiene un enorme atractivo ya que significa que podríamos coger cualquier proyecto existente que utilize el MH-Z19B y solo con cambiar el sensor por este, conseguiríamos aumentar mucho la autonomía.
A continuación, te muestro el análisis del protocolo de comunicación e ingeniería inversa del MH-Z1311A para comprobar si esto es así.
No se trata de un análisis exhaustivo, ya que no se han buscado «comandos ocultos» ni he probado comandos que existen para el MH-Z19 pero no están documentados para el MH-Z1311A, y que es muy probable que muchos de ellos funcionen. Simplemente se ha comprobado que el protocolo sea el publicado por Winsen en el documento que nos ha hecho llegar.
Para el análisis del protocolo he utilizado dos instrumentos:
Un analizador lógico con software Seale.
Permite capturar las comunicaciones serie TTL, I2C, etc y decodificar el protocolo.
La verdad es que es una herramienta imprescindible en el arsenal de cualquier amante del cacharreo con microcontroladores.
Un osciloscopio Loto Instruments OSC482L con analizador lógico.
Lo utilizo para el análisis a bajo nivel de la comunicación y el análisis del interface analógico del puerto serie.
A pesar de tener un osciloscopio de escritorio «profesional» (un Rigol DS1054Z) es este pequeño y económico osciloscopio USB es el que utilizo en el día a día.
Adicionalmente, voy a utilizar el software de terminal y comunicaciones SerialCommunicator para el envío de comandos al analizador y captura y análisis hexadecimal de los datos junto con un adaptador USB a serie/TTL:
- ✅ ¡Obtenga 3 x UART-TTL USB Adaptador con CH340G Modulo Convertidor 3.3V y 5V con Jumper Cable a un precio especial de descuento por cantidad!
- ✅ LISTO PARA OPERAR Y FÁCIL DE UTILIZAR: No es necesaria la instalación manual de los controladores, gracias a que el ampliamente utilizado chip CH340G ya está instalado en el adaptador. Y los microcontroladores pueden ser manejados con 3.3V y 5V, un cable Jumper permite un cambio fácil de voltaje y nivel lógico.
- ✅ OPERACIÓN SEGURA: No hay riesgo de dañar un puerto USB, en caso de sobretensión el adaptador USB está protegido por un fusible.
- ✅ COMUNICACIÓN DIRECTA: Puede trabajar con microcontroladores dañados, si la comunicación vía USB ya no es posible, puede usar el adaptador para comunicarse directamente con el chip.
- ✅ Este producto incluye un E-Book que proporciona información útil sobre cómo comenzar su proyecto, ayuda con una configuración rápida y ahorra tiempo en el proceso de configuración. Proporcionamos una serie de ejemplos de aplicación, guías de instalación completas y bibliotecas.
Recibiendo datos
La primera prueba consiste en, sin investigación previa, sustituir, en un medidor CO2 Gadget que estaba ya funcionando, el sensor MH-Z19C que tenía conectado por el MH-Z1311A:
El medidor empieza a funcionar inmediatamente sin problema aparente…
Esta prueba es definitiva ya que prueba que es posible sustituir el MH-Z19, en un medidor de CO2 ya funcionando, por el MH-Z1311A sin necesidad de modificaciones adicionales.
A continuación, para seguir investigando el protocolo, lo que hago es conectar, mientras sigue conectado a CO2 Gadget, las dos líneas (RX y TX) del sensor MH-Z1311A a dos canales del analizador lógico y abrir el software Seale para capturar cualquier dato enviado o recibido por él.
Este es el resultado, los datos en bruto enviados por el MH-Z1311A:
Enviando comandos
De acuerdo con el documento de Winsen que describe el protocolo, el sensor MH-Z1311A incluye únicamente los siguientes comandos:
- 0x86: Lee la concentración de CO2 (igual que el MH-Z19)
- 0x79: Activa o desactiva la calibración automática (igual que el MH-Z19)
- 0xAD: Realiza la calibración a una concentración de entre 400 y 1000 ppm
Además, he probado el siguiente comando, ya que, aunque no está documentado, era importante saber si estaba soportado por compatibilidad con los proyectos hechos con el MH-Z19. El comando ha funcionado correctamente, lo que es una gran noticia para poder sustituir directamente el MH-Z19 por el MH-Z1311A cuando queramos ahorrar energía.
- 0x87: Calibración del punto cero (Calibrate Zero Point). Es como el comando 0xAD pero hace la calibración a una concentración fija de 400 ppm.
Estoy en ello… sigo escribiendo el artículo, vuelve en breve…
¿Y qué tal mide?
Haré pruebas de medidas de CO2 y aparecerán aquí.
Comprobaré también, como con otros sensores, qué tal le sientan las variaciones en el voltaje de alimentación.
Conclusiones
Lo escribiré cuando acabe… dejo algunas notas inconexas para mí:
A pesar de que su consumo sea más alto de lo que indica el fabricante, se trata de un muy buen sensor si lo que queremos es aumentar la autonomía de nuestro medidor.
El ahorro energético no está al nivel del de un sensor de ultra bajo consumo, como el Senseair Sunrise S11 o el Cubic CM1106SL-NS (ni se espera que lo esté), pero es mucho más sencillo de utilizar y su compatibilidad con el MH-Z19B facilita mucho las cosas.
No quiero dejar de comentar algunos puntos respecto a la «calidad de producción del sensor» ya que me parece bastante baja como producto terminado. Parece más un prototipo:
- Da la sensación de que el datasheet ha sido escrito deprisa y corriendo, con poco cuidado, utilizando partes del datasheet del MH-Z19B (incluso las imágenes son las del MH-Z19B).
- Tampoco me ha transmitido buenas vibraciones que el sensor apareciera en la tienda de Winsen durante unos días y desapareciera, sin dejar rastro, pocos días después. Me pregunto si seguirá a la venta.
- En la web de Winsen en inglés el sensor es inexistente. En la versión en chino aparece algo mínimo sobre él, sin apenas información.
Como en el caso de los MH-Z19C y MH-Z19D, el voltaje de alimentación es de entre 4.9V y 5.1V, un margen muy estrecho que puede ser difícil de conseguir sin un step up-down (casi imprescindible además para su uso con batería, que es lo que se pretende de un sensor de bajo consumo).
¿Cuál es el precio de MH-Z1311A?
Es un sensor muy reciente y todavía no está claro del todo cuál será su precio. Winsen lo puso a la venta en su tienda de AliExpress solamente unos días y lo retiró…
Las dos unidades del MH-Z1311A que hemos comprado nos han costado 90€ con envío incluido, 45€ cada sensor. ¿Es esto caro o barato?
Es difícil decir si es caro o barato, dependerá de cómo lo valore cada uno. Hay que tener en cuenta que el precio de un sensor de ultra bajo consumo como el Senseair Sunrise S11 (modelo 006-0-0007) a día de escribir este artículo es de 55,94€ + IVA (67,69€ inc. IVA) en Digi-Key.
El MH-Z1311A es aproximadamente un 30% más barato que el Senseair Sunrise S11 pero claro, mientras que el Senseair Sunrise S11 es un verdadero sensor de ultra bajo consumo (con un consumo medio de 45μA) el MH-Z1311A es simplemente un sensor de bajo consumo (que consume treinta veces más). También es cierto que el MH-Z1311A requiere un código para su funcionamiento mucho más sencillo.