Monitor de calidad del aire de bricolaje - PM2.5, CO2, COV, ozono, temperatura y zumbido Arduino Meter
¿Alguna vez te has preguntado acerca de la calidad del aire que respiras, o tal vez, por qué a veces te sientes somnoliento en la oficina o cansado por la mañana, incluso después de haber dormido toda la noche? La mala calidad del aire puede provocar muchos efectos negativos para la salud, así como cansancio, dolores de cabeza, pérdida de concentración, aumento del ritmo cardíaco, etc. Monitorear la calidad del aire en realidad puede ser más importante de lo que cree. Entonces, en este tutorial, aprenderemos cómo construir nuestro propio monitor de calidad del aire que es capaz de medir PM2.5, CO2, VOC, ozono, así como la temperatura y la humedad.
Puede ver el siguiente video o leer el tutorial escrito a continuación.
Resumen
Explicaré cómo nos afecta cada uno de los parámetros de calidad del aire y cómo funcionan los sensores. El cerebro de este proyecto es una placa Arduino Pro Mini que, en combinación con una pantalla táctil Nextion de 2,8", proporciona una interfaz de usuario decente.
Podemos ver las mediciones de todos los sensores en tiempo real, y si hacemos clic en un sensor en particular, obtendremos los valores de las últimas 24 horas de ese sensor. También hay una función de atenuación a través de la cual podemos reducir el brillo de la pantalla o incluso apagarla por completo. Esto es conveniente, por ejemplo, si queremos rastrear la calidad del aire en nuestra habitación durante la noche.
Podemos apagar la pantalla durante la noche y al día siguiente podemos comprobar los valores de cada sensor individualmente.
Sin embargo, ahora lo guiaré a través de todo el proceso de construcción y le explicaré cómo funciona todo. Al final de este video, podrás construir uno por tu cuenta. Entonces, comencemos.
El sensor PM2.5:PMS5003
Este dispositivo tiene cuatro componentes principales o sensores de calidad del aire. Estamos utilizando el sensor PMS5003 para medir PM2.5 o partículas en el aire con un diámetro de alrededor de 2,5 micrones. Las partículas son la forma más dañina de contaminación del aire porque pueden penetrar profundamente en los pulmones, el torrente sanguíneo y el cerebro, causando muchos problemas de salud.
Este sensor funciona según el principio de dispersión láser. El sensor tiene un ventilador que crea un flujo de aire controlado para que las partículas ambientales pasen a través de un rayo láser enfocado.
Las partículas causan la dispersión de la luz que es detectada por un fotodiodo y luego convertida en concentración de PM con la ayuda de su microprocesador. Encontré que los resultados de este sensor son bastante confiables y junto con PM2.5 también puede generar valores de PM1 y PM10.
El sensor de CO2 – MH-Z19
A continuación, estamos utilizando el sensor MH-Z19 para medir CO2 o dióxido de carbono. Como las personas emiten dióxido de carbono al respirar, la concentración interior de CO2 puede llegar a ser muy alta fácilmente. El CO2 no solo es peligroso en altas concentraciones, sino que también puede causar somnolencia, cansancio, disminuir nuestro nivel de productividad, etc.
El sensor utiliza el principio infrarrojo no dispersivo para medir el CO2 en el aire. Una fuente infrarroja dirige la luz a través de un tubo que se llena con el aire que estamos midiendo. Al otro lado de la fuente de infrarrojos, hay un filtro óptico y un detector de IR que mide la cantidad de luz IR que pasa.
Las moléculas de gas CO2 que están presentes en el aire que estamos midiendo absorben una banda específica de luz IR mientras dejan pasar algunas longitudes de onda. Entonces, el nivel de CO2 se calcula según la diferencia entre la cantidad de luz emitida y la cantidad de luz IR recibida por el detector. Los resultados de este sensor también son bastante precisos.
Los sensores de COV y ozono:MP503 y MQ-131
Para medir VOC y Ozono estamos usando los sensores de gas MP503 y MQ131. Estos son sensores de óxido de metal calentado y su principio de funcionamiento se basa en la detección de cambios en la resistencia ante la presencia de gases objetivo.
Una corriente eléctrica específica pasa a través de un sustrato metálico y la resistencia cambia según la cantidad de gas presente.
El gas objetivo del sensor MQ131 es solo ozono, que en un hogar normal puede ser generado por productos como ciertos purificadores de aire, vaporizadores faciales, lámparas germicidas que producen luz ultravioleta, etc.
Por otro lado, el sensor MP503 tiene múltiples gases objetivo, incluidos alcohol, humo, isobutano, metanal y otros. VOC significa Compuestos Orgánicos Volátiles y estos son emisiones orgánicas de productos que usamos a diario como detergentes para ropa, limpiadores, ambientadores, pintura, maquillaje, etc. Los COV pueden causar muchos efectos negativos para la salud, incluidos dolores de cabeza, irritación de los ojos, reacciones en la piel, mareos, etc.
Monitor de calidad del aire DIY Arduino – Diagrama de circuito
Sin embargo, echemos un vistazo al diagrama del circuito ahora y expliquemos cómo se debe conectar todo.
Puede obtener los componentes necesarios para este monitor de calidad del aire Arduino en los siguientes enlaces:
PMS5003 Sensor de PM …………………….
Sensor de CO2 MH-Z19 ……………………..
Sensor de ozono MQ-131 …………………..
Sensor de COV MP503 ……………………….
Sensor de temperatura y zumbido DHT22………….
Próxima pantalla de 2,8″ ……………………..
DS3231 RTC …………………………………….
Arduino Pro Mini………………..…….…..
Distancia/tuercas espaciadoras M3 ……………
Conector mini USB …………………….
Encabezados de pines ……………………………….
Interruptor de 2 posiciones …………………………
Valores de capacitores:0.1uF cerámico y 10uF electrolítico
Transistores:2N3904
Interruptor
Divulgación:estos son enlaces de afiliados. Como asociado de Amazon, gano con las compras que califican.
Valores correctos de las resistencias:R1 =1K, R2 =2K, R6=100K o 1M, R7=1K
El sensor PM2.5 se comunica con el Arduino a través de una interfaz serial. Funciona a 5V, pero el nivel lógico de recepción RX funciona a 3,3v, por lo que necesitamos un divisor de voltaje para ello. El sensor de CO2 y la pantalla Nextion también utilizan comunicación en serie. Para leer los sensores de COV y Ozono usamos entradas analógicas del Arduino, mientras que el sensor de temperatura y humedad DHT22 usa un pin digital para ese propósito.
Los dos transistores se utilizan para activar los calentadores de los sensores. También estamos utilizando un módulo de reloj en tiempo real para realizar un seguimiento del tiempo al almacenar los valores de los sensores, y utiliza la comunicación I2C. Todo el dispositivo se alimenta con 5V a través de un conector Mini USB.
Ver también: Los 8 mejores kits de inicio de Arduino [Actualización de 2021]
Ahora bien, si tratamos de conectar todo junto, nos complicaremos bastante debido a las muchas conexiones.
Entonces, definitivamente necesitamos una PCB para este proyecto.
Haciendo una PCB para el monitor de calidad de aire de Arduino
Para hacer una placa de circuito impreso para este proyecto, usaré Altium Designer, que en realidad es el patrocinador de este video.
Altium Designer representa décadas de innovación y desarrollo dedicadas a crear un entorno de diseño verdaderamente unificado. Al lograr el equilibrio perfecto entre potencia y facilidad de uso, Altium Designer ha asegurado su posición como la solución de diseño de PCB más utilizada en el mercado.
Ahora les mostraré cómo diseñé la PCB para este proyecto usando Altium Designer. Empecé con hacer el esquema para el proyecto. Altium Designer tiene bibliotecas integradas con componentes electrónicos básicos, pero aún mejor, puede buscar componentes directamente de los fabricantes, lo que hace que el abastecimiento de componentes para su proyecto sea muy conveniente.
Como ejemplo, encontré el conector Mini USB usando esta función de búsqueda de piezas del fabricante. Desde aquí también puede acceder fácilmente a los datos relacionados con los componentes, como modelos 3D, huellas, dimensiones, etc.
También puede crear sus propias bibliotecas de componentes. Creé la mayoría de los componentes para este proyecto por mi cuenta, ya que quería crear mis propias huellas en 3D para cada parte para que, al final, obtuviera todo el PCB en 3D. Para crear modelos 3D para las huellas de PCB, puede usar cualquier software CAD, guardar los archivos como archivos .STEP e importarlos en Altium Designer.
Una vez que terminé el esquema, generé el PCB. Dispuse los componentes como quería, y con solo un simple clic usando la función Auto Route, el software generó todos los rastros automáticamente.
Si es necesario, podemos crearlos o ajustarlos manualmente. Además, podemos establecer reglas de diseño sobre cómo el enrutamiento automático hará las trazas, establecer diferentes anchos para cada red, etc. En este punto, también vemos la placa de circuito impreso en 3D y exportamos un archivo 3D de todo el ensamblaje de la placa de circuito impreso que se usará para diseñar una carcasa más adelante.
No obstante, me gustaría agradecer a Altium por patrocinar contenido educativo como este. Si desea obtener más información sobre este software y también probarlo, puede consultar los enlaces a continuación. También puede probar el visor Altium 365 basado en la web para obtener vistas previas y archivos de proyectos.
Prueba gratuita de Altium Designer:https://www.altium.com/yt/howtomechatronics Visor de Altium 365:https://www.altium.com/viewer
Estos son los archivos del proyecto de Altium Designer:
Archivos de Altium Designer, incluido el archivo de proyecto, las bibliotecas y los archivos .STEP de los modelos 3D de los componentes electrónicos:
Archivo PCB Gerber:
Bien, una vez que terminé la PCB, generé los archivos Gerber y NC Drill, los puse en un solo archivo zip y estaba listo para ordenar la fabricación de la PCB.
Pedí el PCB de JCLPCB. Aquí podemos simplemente arrastrar y soltar el archivo zip y, una vez cargado, obtendremos toda la información visual sobre nuestra PCB.
Luego podemos seleccionar las propiedades que queremos y pedir nuestro PCB a un precio razonable.
Ensamblaje de la PCB
Después de varios días han llegado los PCB. La calidad de la PCB es excelente y todo es exactamente igual que en el diseño.
Entonces, ahora estamos listos para comenzar a ensamblar la PCB. Empecé insertando y soldando primero los componentes más pequeños, las resistencias y los dos transistores.
Luego podemos soldar la placa Arduino Pro Mini en su lugar. Sin embargo, primero tenemos que soldarle los cabezales de los pines. Tenga en cuenta que no necesitamos todos sus pines, pero asegúrese de no perderse el que necesitamos, como el pin A4, A5 y DTR. También asegúrese de tener exactamente la misma placa Arduino Pro Mini con este diseño de pines, porque a veces pueden ser diferentes.
A continuación, podemos insertar el sensor DHT22 en su lugar. Para ello, primero debemos doblar sus pines 90 grados. A veces también uso adhesivo Blu-tack para mantener los componentes en su lugar al soldar.
Los dos condensadores utilizados en este proyecto son para estabilizar la fuente de alimentación. La alimentación de la placa vendrá de un conector mini-USB al que podemos conectar 5V.
Justo encima del conector de la fuente de alimentación, necesitamos soldar los dos interruptores. Uno es para encender y apagar el dispositivo, y el otro se usa cuando queremos subir un boceto a la placa Arduino. Luego, podemos insertar los encabezados de los pines para la interfaz USB a UART, la pantalla y el sensor PM2.5, así como los sensores VOC, Ozono y CO2 en su lugar.
A continuación, para volver a soldar el módulo del reloj en tiempo real DS3231, primero debemos doblar los pines 90 grados. Una vez soldada, podemos insertar la batería que realiza un seguimiento del tiempo incluso cuando la PCB principal pierde energía. Con esto el PCB ya está hecho, y lo que queda por hacer ahora es preparar los cables que usaremos para conectar el sensor PM2.5 y la pantalla al PCB. Soldé los cabezales de pines macho al cable que viene con el sensor, y así pude conectarlo fácilmente a la placa de circuito impreso. Para conectar la pantalla a la placa de circuito impreso, soldé cuatro cables en la parte posterior del conector de la pantalla y luego los conecté a la placa de circuito impreso.
Y eso es todo, nuestro Monitor de calidad del aire ya está listo. Por supuesto, lo que tenemos que hacer ahora es hacer algún tipo de caja o estuche para ello. Como tenemos el modelo 3D de todo el ensamblaje de PCB de Altium Designer, podemos importarlo en un software CAD y diseñar una caja para él.
Usé SOLIDWORKS para ese propósito e hice el caso más simple posible que constaba de solo dos partes y algunos pernos y tuercas. Decidí hacer la carcasa con acrílico transparente porque me gusta cómo se ven expuestos el PCB y los componentes y también es una excelente manera de mostrar su proyecto de bricolaje.
Puede descargar este modelo 3D del monitor de calidad del aire DYI, así como explorarlo en su navegador en Thangs.
Descarga el modelo 3D en Thangs.
Haciendo el Caso para el Monitor de Calidad del Aire
El acrílico que usaré es un tick de 4 mm que encaja perfectamente con la pantalla. Como actualmente no tengo una máquina CNC, corto las formas manualmente con una simple sierra para metales.
Para hacer la abertura para exhibición, primero hice dos agujeros con un taladro. Luego pasé por una hoja de una mini sierra para metales y con cuidado corté la forma. Usando una simple escofina, alisé la forma. Luego, con un taladro de 3 mm, hice todos los agujeros para unir las PCB y conectar las dos placas acrílicas.
En este punto, quité la lámina protectora del acrílico que, para ser honesto, es un proceso bastante satisfactorio. Para unir la PCB a la placa base, utilicé algunos tornillos y tuercas M3. Para fijar el sensor PM2.5 a la placa necesitamos pernos M2.
A continuación, utilizando unas tuercas distanciadoras podemos unir las dos placas. Al usar una tuerca espaciadora hembra y una macho, pude obtener fácilmente la distancia deseada entre las dos placas.
Personalmente, me gusta mucho cómo resultó este estuche, además, es funcional ya que el aire puede circular fácilmente alrededor de los sensores.
Programación
Muy bien, ahora podemos encender el dispositivo y cargar el programa. Podemos alimentar el monitor de calidad del aire a través del conector Mini USB y podemos obtener los 5 voltios de un adaptador USB de 5V, un cargador de teléfono de 5V o un banco de energía.
Para cargar el programa en la placa Arduino Pro Mini, necesitamos una interfaz USB a serie UART que se pueda conectar al encabezado de programación. Antes de conectarlo al USB de la computadora, primero debemos encender la alimentación principal del dispositivo, porque de lo contrario, la energía proveniente del USB de la computadora, que es de solo 500 mA, podría no ser suficiente para funcionar correctamente. Al cargar el boceto de Arduino, también debemos cambiar el interruptor de carga en la PCB.
Aquí puede descargar el código Arduino y el programa de visualización Nextion:
Para cargar un boceto en una placa Arduino Pro Mini, en Arduino IDE primero debemos seleccionar esta placa, seleccionar la versión adecuada del procesador, seleccionar el puerto y seleccionar el método de programación para "USBasp".
Una vez que cargamos el código en Arduino, también debemos cargar un código en la pantalla de Nextion. Las pantallas Nextion tienen un controlador ARM integrado que en realidad controla la pantalla por sí solo.
Todos los gráficos, como botones, texto, imágenes, variables, etc., son generados y controlados por la propia pantalla. La pantalla de Nextion tiene un editor de Nextion dedicado donde podemos crear todas estas cosas. La pantalla y la comunicación de Arduino con solo dos cables utilizando la comunicación en serie. El Arduino simplemente envía los valores del sensor a la pantalla y viceversa, la pantalla envía datos al Arduino cuando es necesario.
Para cargar el programa de visualización, necesitamos una tarjeta microSD donde podamos guardar el archivo .TFT de salida desde el editor Nextion.
La pantalla tiene un lector de tarjetas donde podemos insertar la tarjeta microSD mientras está apagada. Luego podemos encender el dispositivo y el programa se cargará en la pantalla. Ahora solo tenemos que quitar la tarjeta, volver a encenderla y nuestro monitor de calidad del aire comenzará a funcionar.
Explicación del código
Entonces, estamos usando bibliotecas para cada sensor y que se pueden encontrar en los siguientes enlaces, MHZ19, PMS, MQ131, DHT, DS3231. Para comprender mejor cómo leemos los datos de cada sensor, recomiendo leer la documentación de las bibliotecas y probar sus ejemplos.
También estamos usando la biblioteca SoftwareSerial porque tanto los sensores MH-Z19 como los PMS5003 usan la comunicación en serie. El Arduino y la pantalla Nextion también utilizan el puerto serie para la comunicación y, en este caso, estamos utilizando el puerto serie de hardware predeterminado.
Entonces, el Arduino lee los sensores y envía esos datos a la pantalla Nextion. He aquí un ejemplo.
Serial.print("tempV.val=");
Serial.print(temp);
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Code language: Arduino (arduino)
Así que tenemos una variable en la pantalla de nextion llamada "tempV" y para actualizar su valor necesitamos enviar un comando a nextion de la siguiente manera "tempV.val=22". Entonces, el nombre de la variable, luego ".val", luego el valor, digamos 22. Las dos primeras líneas del código hacen eso, y para que la pantalla Nextion acepte este comando o cualquier comando, necesitamos enviar los tres únicos Comandos de “escribir”.
En el programa de visualización Nextion, tenemos un temporizador que se ejecuta en un bucle, al igual que el bucle de código de Arduino, y actualiza constantemente los números en la pantalla.
En este evento de temporizador también tenemos un código para cambiar el color de fondo de cada sensor en función de su valor.
En la segunda página tenemos forma de onda, que obtiene los valores de los valores almacenados del Arduino. Tenga en cuenta que puede encontrar más información sobre el propio código Arduino, ya que hay una explicación en los comentarios del código.
Las horas y los valores del eje Y también obtienen sus valores del Arduino.
Además de la forma de onda, así como los números en la pantalla principal, puede notar que tenemos objetos transparentes, llamados "Hotstops" en el editor de Nextion, y actúan como botones. Si presionamos el hotstop en la forma de onda, podemos ver en la sección Evento que nos envía de vuelta a la "página 0".
En general, así es como funciona el programa de este monitor de calidad del aire Arduino. Por supuesto, para comprender completamente cómo funciona, debe aprender y saber cómo funciona cada sensor con sus bibliotecas, así como también cómo funciona la pantalla Nextion.
Tenga en cuenta que para el sensor VOC solo estamos leyendo datos sin procesar de este sensor, no valores de ppm o ppb. Solo valores analógicos de 0 a 1024. Los valores más altos significan que hay presencia de VOC.
En cuanto al sensor de ozono, para obtener resultados más precisos, debemos establecer correctamente los valores setTimeToRead() y setR0() según el ejemplo de calibración de la biblioteca. Sin embargo, un setTimeToRead más largo significa que el programa se bloqueará durante el muestreo y todo lo demás se congelará. Por supuesto, hay maneras de solucionar esto. Incluso sugeriría no usar el sensor de ozono a menos que realmente lo necesite.
Espero que hayas disfrutado este video y hayas aprendido algo nuevo. Si lo hiciste, considera apoyarme en Patreon. No dude en hacer cualquier pregunta en la sección de comentarios a continuación y consulte mi Colección de proyectos de Arduino.