Se recuerda que este Blog esta realizado con fines educativos y, a medida que vaya creciendo, se explicará con más detalle los pasos realizados por medio de guías dedicadas, actualizaciones y nuevas entradas.
Todos programas realizados pueden ser descargados y compartidos con referencia al autor.
Pincha AQUÍ para descargar todos los programas de esta entrada.
Objetivo:
Desarrollo de un dispositivo de control del nivel de CO2 y registro en un aula mediante, un sensor MG811 y un ESP32 con Node-RED
Materiales necesarios:
- Sensor MG-811 CO2 sensor V1.2 (Mostrado en la Figura 1)
Figura 1: "Sensor MG-811"
- ESP32 MINI D1 (Ambas caras mostradas en la Figura 2)
Figura 2: "ESP32 MINI D1"
- Fuente de alimentación +5V DC (Mostrado en Figura 3)
Figura 3: "Fuente de alimentación +5V"
- PCB CO2 (PCB dedicada Figura 4 cara Botton y Figura 5 Cara Top)
Figura 4: "PCB CO2cara Botton"
Figura 5:
"PCB CO2 cara Top"
- Módulo zumbador Arduino (Mostrado en Figura 6)
Figura 6: "Módulo zumbador Arduino"
Programas utilizados:
- Proteus 8 Professional
Proceso de diseño y fabricación:
Paso 1: Programación del ESP32
Para la programación del ESP32 se empleará el entorno de programación Arduino IDE 1.8.12. Se llevarán a cabo en el las lecturas del sensor y el envió de la información a Node-RED para ser tratada. También se encargará de enviar las señales al zumbador para que se emita una señal acústica ("Escapa" en morse) y led de información de estado.
El programa "co2.ino" ha sido realizado bajo un ajuste de los datos proporcionados por el fabricante y las mediciones empíricas obtenidas.
Se muestra en la Figuras 7 la gráfica de respuesta del sensor, cabe destacar que esta señal se interpretará aumentada 8,5 veces debido a su amplificador de señal incorporado.
Figura 7: "Gráfica de respuesta del MG811"
Conocida la gráfica de respuesta, se debe obtener la ecuación de funcionamiento que más se aproxima a la mostrada previamente. Esta labor de puede realizar utilizando Excel y midiendo los pixeles de la imagen para obtener reglas de 3. La tabla Excel adjunta en las descargas de esta entrada, alberga varias pruebas de aproximación hasta encontrar la más fiel a la realidad obtenida. Se muestra en la Figura 8 el fragmento de código empleado para realizar el ajuste junto a varias alternativas más inestables.
Figura 8: "Fragmento del código empleado"
La ecuación de ajuste, responde correctamente tras las 2 horas de funcionamiento siempre y cuando no se encuentre en una zona muy aireada.
Paso 2: Fabricación de PCB CO2 (PCB dedicada)
La fabricación de la PCB CO2 consiste en el diseño de una placa de circuito impreso (PCB) a doble cara (cara Top solo para serigrafia mecanizada, cara Botton conexiones) la cual, agrupará el ESP32, el sensor MG-811, 3 tipos distintos de conexión de alimentación, 3 LEDs y un módulo de zumbador.
El esquema eléctrico, el Layout, los archivos CADCAM de fabricación y las librerías empleadas se pueden descargar
AQUÍ
Se dejará para otras entradas posteriores las siguientes guías: (Esté atento)
- Guía de diseño de componentes en Proteus
- Guía de diseño de PCB en Proteus
Se muestra en la Figura 9 el esquema eléctrico realizado para la fabricación de la PCB.

Figura 9: "Esquema eléctrico"
Siguiendo este esquema, se realiza el diseño de la PCB como se muestra en la Figura 10.
Figura 10:
"Layout de la PCB"
Toda la información mostrada, es obtenida del archivo Proteus adjunto a la descarga de esta entrada. Tanto en este programa como en el resto de los añadidos en este blog, tienen desarrollada las pestañas de plano esquemático, layout, costes y diseño 3D (Schematic Capture, PCB Layout, Bill of Materials y 3D Visualizer). Se muestra en la Figura 11 el coste de materiales de esta PCB.
Figura 11: "Presupuesto de la PCB"
Paso 3: Programación de Node-RED
El flujo empleado para monitorizar y registrar en una base de datos las lecturas de CO2, es complejo debido al diseño personal del sistema de base de datos empleada. Existen otros métodos para realizar una base de datos como SQL o empleando la librería csv en Python3, pero el objetivo que se pretende es estudiar la forma de crear una base de datos.
Se expone a continuación de forma breve en qué consisten los nodos más importantes de este flujo.
- Figura 12: Se usan pulsos cada 10 segundos para registrar la hora actual en UTC y desglosar la información de forma que pueda ser mostrada en el Dashboard.
Figura 12: "Obtención de fecha"
- Figura 13: Se muestra la información del flujo anterior en el Dashboard
Figura 13: "Fecha actual en el Dashboard"
- Figura 14: En este flujo se realiza el muestreo y registro de los datos actuales de las publicaciones realizadas por el ESP32. Esto se logra gracias a que cada nuevo pulso de tiempo, se lee la última publicación del ESP32 de ambos canales y se unen. Después, estos datos se desfragmentan por tipo de dato y de registran en formato "csv".
Figura 14: "Flujo de registro y muestreo de datos actuales"
- Figuras 15, 16 y 17: Flujo para el envió de e-mail en caso de alarma. Funciona tras recibir una publicación por su canal y con la programación configurada. Se debe modificar los nodos de la función y de email con el remitente y destinatario que desee.
Figura 15: "Flujo de envió de email"
Figura 16: "Configuración del nodo de función"
Figura 17: "Configuración del nodo de email"
- Figura 18: Flujo de muestreo de la base de datos. Tras una entrada del día seleccionado en el calendario del Dashboard o por defecto en el día actúa; se actualiza la tabla tomando lecturas de los CSV almacenados y mostrándolos de forma gráfica y en una tabla de datos dinámica.
Figura 18: "Lectura y muestreo de la base de datos"
- Figura 19: Aspecto de la tabla de datos en el Dashboard
Figura 19: "Muestreo del registro de datos"
Si desea ver el Dashboard completo, puede descargarse el archivo "Flow_CO2.json" e importarlo a su Node-RED. Después, solo tendrá que activarlo y configurarlo como se ha explicado en esta entrada. Se muestra en las Figuras 20 y 21 el proceso de importación y activación del flujo.
Figura 20: "Importar flujos"
Figura 21: "Selección de archivo a importar"
Finalmente, si desea utilizar el Dashboard, asegúrese de activarlo en las configuraciones de edición como se muestra en la Figura 22.
Figura 22: "Activación del Dashboard"
Última revisión 30/05/2021
No hay comentarios:
Publicar un comentario