Tutorial sobre cómo implementar un detector de CO con NB-IoT

Back To Blog
Tutorial sobre cómo implementar un detector de CO con NB-IoT

Tutorial sobre cómo implementar un detector de CO con NB-IoT

En este tutorial, veremos cómo podemos implementar un detector de CO con posibilidad de añadir comunicación NB-IoT utilizando un microcontrolador de Holtek destinado a gestionar sensores externos y un módulo de comunicación de MeiG.

 

Introducción

La producción y acumulación de monóxido de carbono en espacios mal ventilados representa un grave peligro para la salud de las personas. Los detectores de CO pueden utilizarse para detectar y mostrar los niveles de concentración de CO en tiempo real. Cuando una acumulación de CO en el interior ha alcanzado una determinada concentración, el detector transmitirá un sonido audible y una señal de alarma LED para reducir la posibilidad de intoxicación por CO en la casa.

Holtek ha desarrollado un MCU, el BA45F6746, que está dedicada para su uso en detectores de CO que tienen una pantalla LCD. La parte de detección de CO/ GAS integrada del dispositivo incluye un OPA y una resistencia de realimentación ajustable que ayuda a eliminar muchos componentes externos en comparación con las soluciones tradicionales. El sensor de temperatura interno se utiliza para compensar la temperatura y mejorar la adaptabilidad ambiental del producto. El convertidor A/D de 12 bits puede utilizarse para convertir los datos actuales de concentración de CO en tiempo real. El LDO interno proporciona múltiples salidas de tensión estables para reducir la influencia de las fluctuaciones de potencia en el detector. El controlador LCD puede configurarse para tener múltiples opciones, generar automáticamente señales variables en tiempo y amplitud, que accionan directamente el panel LCD. Junto con sus múltiples interfaces de comunicación, este dispositivo proporciona una amplia gama de funciones requeridas por los detectores de CO.

Además, esta solución viene preparada para poder añadir un módulo de comunicaciones que se controle mediante un puerto serie. Para este diseño, usaremos el SLM130-G del fabricante MeiG, un módulo NB-IoT.

Figura 1. Diagrama de la solución global

 

MCU BA45F6746

El BA45F6746 es un microcontrolador de arquitectura RISC de alto rendimiento de 8 bits tipo A/D con memoria Flash y controlador LCD totalmente integrado, especialmente diseñado para aplicaciones de detectores de CO/Gases que requieren una función de pantalla LCD/LED.

En cuanto a las funciones de memoria, la Memoria Flash ofrece a los usuarios la comodidad de las funciones de multiprogramación. Otras memorias incluyen un área de memoria de datos RAM, así como un área de memoria EEPROM real para el almacenamiento de datos no volátiles como números de serie, datos de calibración, etc.

Las funciones analógicas incluyen un convertidor analógico-digital multicanal, un circuito integrado de sensor de temperatura y una función de amplificador operacional. Los módulos de temporizador múltiples y extremadamente flexibles proporcionan funciones de temporización, generación de impulsos y generación PWM. La comunicación con el mundo exterior está garantizada gracias a las funciones de interfaz SPI, I2C y UART totalmente integradas, tres interfaces muy populares que ofrecen a los diseñadores un medio de comunicación sencillo con el hardware periférico externo.
hardware periférico externo. Además, una función LDO interna proporciona varias opciones de voltaje fijo a los módulos internos y dispositivos externos. Funciones de protección como un temporizador de vigilancia interno, reinicio por baja tensión y detector de baja tensión, junto con una excelente inmunidad al ruido y protección ESD, garantizan un funcionamiento fiable en entornos eléctricos hostiles.

El dispositivo también incluye osciladores de alta y baja velocidad totalmente integrados que no requieren componentes externos para su implementación. La capacidad de operar y conmutar dinámicamente entre una gama de modos de funcionamiento utilizando diferentes fuentes de reloj ofrece a los usuarios la posibilidad de optimizar el funcionamiento del microcontrolador y minimizar el consumo de energía.

La inclusión de funciones flexibles de programación de E/S, funciones de base de tiempos junto con muchas otras características garantizan que el dispositivo encontrará un uso excelente en aplicaciones de detectores de CO/Gases con pantalla LCD/LED.

Figura 2. Diagrama de bloques del MCU BA45F6746

Puede consultar el datasheet completo del BA45F6746 en el siguiente enlace BA45F6746v130

Módulo NB-IoT SLM130-G

El módulo SLM130-G es una solución de alto rendimiento para Internet de las cosas (IoT) utilizando tecnología NB-IoT (Narrowband IoT), caracterizado por su consumo extremadamente bajo de energía. Su formato ultra compacto y unificado de 17.7×15.8×2.0mm lo convierte en una opción perfecta para una amplia gama de aplicaciones de IoT NB-IoT, que van desde la detección inteligente de humo, medición inteligente, compartición de bicicletas, estacionamiento inteligente, ciudades inteligentes, seguridad, seguimiento de activos, electrodomésticos inteligentes para el hogar, dispositivos portátiles inteligentes, monitoreo agrícola y ambiental, entre otros.

Una de las ventajas principales del SLM130-G por las que destaca es por su consumo ultra bajo de energía y su sensibilidad ultra alta, lo que lo hace ideal para aplicaciones NB-IoT donde la eficiencia energética es crucial. También es notable por su capacidad multi-banda y por estar integrado con abundantes protocolos de servicios de Internet, lo que lo hace versátil y compatible con una variedad de sistemas y redes.

El módulo opera con un suministro de energía de bajo voltaje, que va desde 2.2V a 4.5V, lo que lo hace adecuado para entornos donde se requiere una gestión eficiente de la energía. Además, cuenta con un eSIM incorporado reservado, lo que permite adaptarse a necesidades personalizadas. Su diseño de bajo consumo de energía y ahorro de energía lo convierte en una opción atractiva para aplicaciones NB-IoT que requieren un funcionamiento continuo y fiable con recursos limitados de energía.

Figura 3. Diagrama de bloques del SLM130-G

Características de la solución

  1. Alto nivel de integración funcional: el dispositivo incluye un circuito amplificador frontal analógico de CO/GAS integrado y un LDO para reducir el número de componentes externos.
    El BA45F6746 proporciona un circuito AFE (Analog Front End) detector de CO/GAS que puede utilizarse para amplificar la señal del sensor de CO. Incluye un amplificador operacional, una resistencia de realimentación ajustable internamente y un LDO, que genera potencia estable para proteger la señal del sensor de las fluctuaciones de potencia. Utilizando estos circuitos internos se pueden eliminar muchos componentes externos para fabricar productos de gran precisión.
  2. Pantalla LCD: siempre encendida con un bajo consumo de energía, pantalla estable. En el circuito interno de generación de señales LCD, se pueden generar automáticamente las señales variables de tiempo y amplitud necesarias para controlar directamente el panel LCD mediante múltiples ajustes opcionales. Admite múltiples tensiones de referencia y proporciona una visualización estable durante mucho tiempo con un bajo consumo de energía.

Principios de funcionamiento

Los detectores de CO son de varios tipos, pero suelen utilizar un sensor semiconductor, un sensor electroquímico o un sensor de infrarrojos. La solución presentada aquí utiliza un tipo de sensor electroquímico. Cuando el sensor se enciende, reacciona con el gas que se desea medir. Los electrones que fluyen debido a esta reacción producirán una corriente externa que será proporcional a la concentración de CO. Esta señal de salida tiene una buena relación lineal con la concentración de gas, donde los niveles de concentración de CO ambiental más altos dan lugar a señales de salida de corriente más altas. Después de que la señal ha sido amplificada usando los circuitos internos y luego convertida, el nivel de concentración de CO ambiental puede ser obtenido por las operaciones de procesamiento de la MCU.

 

Figura 4. Principio de funcionamiento

 

Descripción funcional

Especificación del producto

  • Tensión de funcionamiento: DC 3.6V~4.8V – tres pilas AA para la fuente de alimentación.
  • Corriente de funcionamiento: el consumo de corriente en modo de espera es de 11μA, el consumo de corriente de alarma es de 3,5mA
  • Método de detección: detección electroquímica
  • Sonoridad de la alarma: 84dB – sólo como referencia, la prueba debe utilizarse junto con la carcasa en la aplicación real
  • Tiempo de precalentamiento: 120 segundos
  • Umbral de concentración de CO para la alarma: 120ppm
  • Condiciones de temperatura: -40℃~85℃

Función del producto

Este producto es un detector de CO que entrará en el modo de precalentamiento tras el encendido y, a continuación, entrará en el modo de espera. Cuando el valor de concentración supere las 120ppm, o cuando se pulse la tecla de prueba, entrará en el estado correspondiente. Los diagramas físicos del producto se muestran en la Figura 5 y la Figura 6.

 

Figura 5

Figura 6

 

Calibración

Cuando se utiliza por primera vez o cuando se está recalibrando, al conectar las conexiones de calibración PB7 y GND, situadas en la posición etiquetada «BD» que se muestra en la Figura 6, el detector entrará en el modo de calibración. Una vez completada con éxito la operación de calibración, el detector volverá al modo de espera.

Prueba de alarma

Tras pulsar la tecla de prueba, los LED verde y amarillo estarán siempre encendidos, el LED rojo parpadeará y sonará el zumbador. Una pulsación larga de la tecla de prueba activará una alarma continua si es necesario.

Modo de funcionamiento

  • Modo de precalentamiento: el detector entrará automáticamente en el modo de precalentamiento tras el encendido. Se proporciona un tiempo de 120 segundos para que el sensor se precaliente antes de entrar en el modo normal. Durante este tiempo, la pantalla LCD mostrará una cuenta atrás de 120 segundos. Una vez finalizada con éxito la operación de calibración, el LED verde parpadeará una vez cada 2 segundos. Si no está calibrado, el LED rojo y el LED verde parpadearán una vez cada 2 segundos.
  • Modo de espera: la pantalla LCD mostrará «0 ppm». El LED verde parpadea una vez cada 40 segundos.
  • Modo de alerta temprana: Cuando la concentración de CO es superior a 30 ppm, la pantalla LCD mostrará la concentración actual. El LED verde parpadea una vez cada 40 segundos.
  • Modo de alarma: cuando la concentración de CO sea superior a 120ppm, entrará en modo de alarma y la pantalla LCD mostrará la concentración actual. El valor máximo es 999ppm. El LED rojo parpadeará y sonará el zumbador. Cuando la concentración de CO detectada sea inferior a 100ppm, saldrá del modo de alarma.
  • Modo de calibración: cuando la interfaz de calibración está conectada, entrará en el modo de calibración. Durante el precalentamiento no entrará en el modo de calibración. La operación de calibración tampoco puede activarse repetidamente. El tiempo de calibración es de 120 segundos, el LED verde parpadeará una vez por segundo y la pantalla LCD mostrará «bd2». Este método de calibración es una calibración de aire. Una vez finalizada con éxito la operación de calibración, el detector entrará en el modo de alarma. Si la calibración falla, la pantalla LCD mostrará «bdE» y todos los LED permanecerán encendidos.
  • Modo de prueba: pulse la tecla de prueba para entrar en este modo en el modo de precalentamiento o de espera. En este momento, la pantalla LCD muestra «000 ppm». Los LED verde y amarillo permanecen siempre encendidos, el LED rojo parpadeará y sonará el zumbador.
  • Modo de fallo: cuando el sensor tiene un fallo de circuito abierto o cortocircuito, entrará en el modo de fallo. La pantalla LCD mostrará «Err», el LED amarillo parpadeará dos veces cada 40 segundos y el zumbador sonará dos veces al mismo tiempo.
  • Modo de bajo voltaje: en el modo de espera, cuando la fuente de alimentación es inferior a 3,6 V, entrará en el modo de bajo voltaje y el LED amarillo parpadeará una vez cada 40 segundos y el zumbador sonará una vez al mismo tiempo.
  • Modo reposo: reposo durante 8 segundos en el modo de espera.

 

Descripción del diseño de la solución

El microcontrolador BA45F6746 está conectado al sensor de CO para detectar la concentración de CO utilizando el amplificador operacional interno. La MCU está conectada al zumbador para conseguir una función de alarma sonora. El circuito de hardware se describe en la siguiente sección.

Descripción Hardware

Figura 7. Esquemático de la solución

El componente principal del detector de CO es un sensor electroquímico de CO que convierte la concentración de CO en una corriente mediante una reacción química con el gas que se está midiendo. Una vez convertida la corriente y amplificada la señal mediante el circuito interno CO/GAS AFE, se obtiene la concentración de CO en el ambiente mediante operaciones de la MCU. Además, la concentración se mostrará en la pantalla LCD utilizando el circuito controlador LCD interno. El LED-G es verde y se utiliza como indicador de señal de ALIMENTACIÓN, el LED-R es rojo y se utiliza como señal de ALARMA y el LED-Y es amarillo y se utiliza como señal de FALLO. La operación de calibración puede ejecutarse cortocircuitando la interfaz de calibración «BD». Además, este circuito también está diseñado para soportar una conexión a un módulo IoT NB, como puede ser el SLM130-G de MeiG.

En el siguiente enlace puede consultar la solución completa en la web de Holtek, desde donde podrá descargar los esquemáticos, diseño de la PCB, el BOM, así como los códigos fuentes para utilizar con el microcontrolador.

Descripción Software

Figura 8. Diagrama de flujo del software

Inicialización

Tras el encendido, el programa inicializará los ajustes de registro y todos los ajustes de inicialización de funciones.

Bucle principal

En el bucle principal, el programa realizará primero un barrido de teclas para determinar si se ha pulsado la tecla TEST. Si el tiempo de retención de la tecla excede el tiempo de rebote (el debounce time), el programa entrará en el modo de prueba y se actualizará la pantalla LCD.

Cuando se produce una interrupción del temporizador, que se ejecuta una vez cada 8 milisegundos, el LED parpadeará y sonará el zumbador. Después de 1 segundo, se ejecutará la operación de procesamiento del ciclo de operación. Tras el procesamiento, se determinará el modo de funcionamiento y el programa entrará en el modo correspondiente.

El zumbador, el controlador LED y las operaciones de actualización de datos del LCD se ejecutarán una vez cada 8 milisegundos. El zumbador, el LED y la pantalla LCD tienen diferentes acciones según el estado de alarma actual. Consulte la sección de evaluación del modo de funcionamiento para más detalles.

El procesamiento del ciclo de operación y la evaluación del modo de operación se ejecutarán una vez cada segundo. Los detalles detrás del flujo del programa serán introducidos en la siguiente sección.
Finalmente, el programa determinará si se entra en modo reposo de acuerdo con el estado de alarma actual. Si no hay anomalías de alarma, se despertará después de un tiempo de reposo de 8 segundos o, de lo contrario, volverá al bucle principal para operaciones posteriores.

Procesamiento del Ciclo de Operación

Figura 9. Operaciones del ciclo de funcionamiento

Como se muestra en la Figura 9, el proceso del ciclo de funcionamiento puede dividirse en cinco pasos, siendo estos, la lectura de la señal del sensor de CO, conversión de la concentración, calibración, detección de alarmas y detección de baja tensión.

Tras la lectura de la señal del sensor de CO, se lleva a cabo la conversión de la concentración para convertir la señal del sensor en un valor de concentración en PPM. La MCU decidirá si entra en el modo de calibración en función de si ya se ha realizado una calibración. Una vez finalizada la calibración, la MCU detectará y determinará si debe emitir una alarma en función del valor de concentración obtenido y comprobará si el valor de la fuente de alimentación es inferior a 3,6 V para garantizar la precisión y fiabilidad de los datos.

Figura 10. Diagrama de flujo de los modos de funcionamiento

Como se muestra en la Figura 10, hay ocho modos de funcionamiento que deben determinarse. El orden es el siguiente: modo de precalentamiento, modo de fallo, modo de calibración, modo de prueba, modo de alarma, modo de alerta temprana, modo de baja tensión y modo normal. El modo normal incluye el modo de espera y el modo de reposo. Una vez finalizado un modo, saltará al bucle principal para volver a ejecutar el escaneo de teclas. En la siguiente tabla se muestra cada modo de funcionamiento y el estado correspondiente.

Comunicación NB-IoT

Para hacer uso del módulo SLM130-G de MeiG lo haremos mediante los comandos AT a través del puerto serie incorporado. En función de las necesidades de la aplicación, deberemos utilizar los comandos necesarios.

Podemos configurar el dispositivo para que se envíen las lecturas del sensor de CO cada 10 minutos por ejemplo, permitiendo así aumentar la duración de la batería.

En el siguiente enlace puede consultar todos los comandos AT para gestionar el SLM130-G MEiG SLM130 NB-IoT AT Command Manual V1.13

Conclusión

Este diseño de referencia ha presentado una solución Holtek de detector de CO autónomo basada en la MCU maestra BA45F6746. Las funciones incluyen autocomprobación, fallo, alarma, bajo voltaje de la batería y otras funciones de aviso de estado. El dispositivo BA45F6746 también proporciona un circuito AFE de detector de CO/GAS y un circuito controlador de LCD, lo que lo hace adecuado para una amplia gama de productos de detector de CO/GAS. Además, gracias a la posibilidad de añadir un módulo NB-IoT, como el SLM130-G de MeiG, incorporamos la posibilidad de enviar las lecturas e información del dispositivo a la nube o nuestros servidores con el fin de poder procesar dicha información en tiempo real.

    Contacta con nosotros:


    Madrid: +34 91 366 01 59
    Barcelona: +34 93 224 02 83

    Bilbao: +34 94 463 60 66
    Portugal: +351 219 376 267