Construye tu Propio Monitor de Calidad del Aire DIY: PM2.5, CO2, VOC, Ozono, Temp y Humedad con Arduino
¿Te has preguntado alguna vez por la calidad del aire que respiras, o por qué a veces te sientes somnoliento en la oficina o cansado por la mañana tras dormir toda la noche? La mala calidad del aire causa muchos efectos negativos en salud: cansancio, dolores de cabeza, pérdida de concentración, taquicardia… Monitorizarla es más importante de lo que crees. En este tutorial aprendemos a construir nuestro propio Monitor de Calidad del Aire capaz de medir PM2.5, CO2, VOC, Ozono, temperatura y humedad. Video o tutorial escrito abajo. Explicaré cómo afecta cada parámetro y cómo funcionan los sensores. Cerebro: Arduino Pro Mini + pantalla táctil Nextion 2,8" para interfaz decente. Vemos medidas de todos los sensores en tiempo real. Al pulsar un sensor, muestra histórico 24 h de ese sensor. Función de atenuación: bajar brillo o apagar pantalla (útil para monitorizar dormitorio de noche). Apagamos pantalla de noche y al día siguiente consultamos valores individuales. Recorreremos todo el proceso de construcción y funcionamiento. Al final podrás construir el tuyo. ¡Vamos! El dispositivo tiene 4 sensores principales. PMS5003 mide PM2.5 (partículas ~2,5 µm). Las partículas son la contaminación más dañina: penetran pulmones, torrente sanguíneo y cerebro. Principio: dispersión láser. Ventilador crea flujo controlado para que particulas pasen por haz láser enfocado. Partículas dispersan luz → fotodiodo detecta → microprocesador convierte a concentración PM. Resultados fiables; también da PM1 y PM10. MH-Z19 mide CO2. La respiración humana eleva CO2 interior fácilmente. CO2 alto no solo es peligroso, también causa somnolencia, cansancio, baja productividad… Principio: infrarrojo no dispersivo (NDIR). Fuente IR dirige luz por tubo con aire a medir. Al otro lado, filtro óptico + detector IR mide luz que pasa. Moléculas CO2 absorben banda IR específica dejando pasar otras longitudes. Nivel CO2 = diferencia entre luz emitida y recibida. Resultados precisos. Para VOC y Ozono: MP503 y MQ-131. Sensores de óxido metálico calentado; detectan cambio de resistencia ante gases objetivo. Corriente eléctrica pasa por sustrato metálico; resistencia cambia según cantidad de gas. MQ-131: objetivo = Ozono. En hogares: purificadores, vaporizadores faciales, lámparas germicidas UV… MP503: múltiples gases (alcohol, humo, isobutano, formaldehído…). VOC = Compuestos Orgánicos Volátiles: emisiones de detergentes, limpiadores, ambientadores, pintura, maquillaje… Causan cefaleas, irritación ocular, reacciones cutáneas, mareos… Veamos conexiones: Componentes: Divulgación: enlaces de afiliado. Como asociado de Amazon gano por compras que califican. Valores resistencias correctos: R1=1K, R2=2K, R6=100K o 1M, R7=1K PM2.5: serie con Arduino. Funciona a 5 V pero RX a 3,3 V → divisor tensión. CO2 y Nextion: también serie. VOC y Ozono: entradas analógicas Arduino. DHT22: pin digital. Dos transistores activan calentadores sensores. RTC DS3231 (I2C) para timestamp al guardar valores. Alimentación: 5 V vía Mini USB. Ver también: Los 8 Mejores Kits Inicio Arduino [Actualización 2021] Conectando todo directamente → lío de cables. ¡Hace falta PCB! Diseñé PCB con Altium Designer (patrocinador). Altium Designer = décadas de innovación para entorno unificado. Equilibrio potencia/facilidad → solución PCB más usada. Cómo diseñé la PCB: Esquemático listo → generé PCB. Colocación componentes + Auto Route (clic) → trazas automáticas. Ajuste manual si hace falta. Reglas de diseño para auto-ruteo, anchos por red, etc. Vista 3D y exportación archivo 3D para diseñar carcasa luego. Gracias Altium por patrocinar. Más info y prueba: Altium Designer prueba gratis – https://www.altium.com/yt/howtomechatronics Archivos proyecto Altium: Archivos Altium (proyecto, librerías, .STEP modelos 3D componentes): Gerber PCB: Generé Gerber + NC Drill → zip → listo para fabricación. Pedí a JCLPCB: arrastras zip → info visual PCB. Eliges propiedades → pides a buen precio. PCBs llegados en días. Calidad genial, igual al diseño. Montaje: componentes pequeños primero (resistencias, transistores). Arduino Pro Mini: primero soldar pin headers. No hacen falta todos los pines, pero asegura A4, A5, DTR. Verifica que sea exactamente ese layout (a veces varían). DHT22: doblar pines 90°. A veces uso Blu-tack para sujetar al soldar. Condensadores estabilizan alimentación. Entrada 5 V por Mini USB. Sobre conector alimentación: dos interruptores. Uno = encendido/apagado. Otro = modo subida sketch a Arduino. Pin headers para USB-UART, display, PM2.5, VOC, Ozono, CO2. RTC DS3231: doblar pines 90°, soldar, poner pila (mantiene hora sin alimentación principal). PCB lista. Falta cables para PM2.5 y display. Soldé pin headers macho al cable del sensor → conexión fácil a PCB. Display: 4 hilos soldados en trasera de su conector → PCB. Monitor listo. Falta caja/carcasa. Con modelo 3D PCB de Altium, importar a CAD y diseñar carcasa. Usé SOLIDWORKS. Carcasa simple: 2 piezas + tornillos/tuercas. Material: acrílico transparente 4 mm (me gusta ver PCB/componentes a la vista, buen modo de lucir proyecto DIY). Descarga modelo 3D en Thangs: Descarga modelo 3D en Thangs. Acrílico 4 mm → encaja perfecto con display. Sin CNC, corté a mano con sierra de metal. Hueco display: 2 agujeros broca → sierra mini por dentro → recortar forma. Lima para suavizar. Broca 3 mm para todos los agujeros (fijar PCBs, unir placas). Quité film protector (muy satisfactorio). PCB a base: tornillos/tuercas M3. Sensor PM2.5 a placa: tornillos M2. Uní placas con espaciadores: hembra + macho → distancia exacta. Me encanta el resultado: funcional, aire circula bien alrededor de sensores. Alimentamos y subimos programa. Alimentación 5 V por Mini USB (adaptador USB, cargador móvil, powerbank). Subir sketch a Arduino Pro Mini: interfaz USB-serie UART en header programación. Importante: encender alimentación principal ANTES de conectar USB al PC (USB da solo 500 mA, puede no ser suficiente). Al subir sketch, activar interruptor de subida en PCB. Descarga código Arduino y programa Nextion: En Arduino IDE: Board = Arduino Pro Mini, Processor = versión correcta, Port, Programmer = "USBasp". También hay que subir programa a pantalla Nextion. Tienen controlador ARM integrado que gestiona la pantalla. Grádicos (botones, textos, imágenes, variables…) generados y controlados por la propia pantalla. Editor Nextion dedicado para crearlos. Comunicación Arduino-Display: 2 hilos (serie). Arduino envía valores sensores a display; display envía datos a Arduino cuando hace falta. Subida programa display: tarjeta microSD con archivo .TFT generado por editor Nextion. Display tiene lector tarjeta: insertar microSD con alimentación OFF. Encender → programa se sube a display. Quitar tarjeta, encender de nuevo → monitor funcionando. Librerías por sensor (enlaces abajo): MHZ19, PMS, MQ131, DHT, DS3231. Para entender lectura de cada sensor, leer doc de librerías y probar ejemplos. Usamos Arduino lee sensores y envía datos a Nextion. Ejemplo: Variable en Nextion "tempV". Para actualizar valor: comando "tempV.val=22" (nombre + ".val" + valor). Dos primeras líneas hacen eso. Nextion necesita tres En programa Nextion: timer en bucle (como En evento timer: código para cambiar color fondo por sensor según valor. Página 2: forma de onda (waveform) con valores históricos desde Arduino. Horas y eje Y también vienen de Arduino. Sobre waveform y números pantalla principal: objetos transparentes "Hotspots" en editor Nextion = botones. Pulsar hotspot en waveform → evento envía a "page 0". Así funciona el programa. Para entenderlo del todo, hay que saber cómo trabaja cada sensor con su librería y cómo funciona Nextion. Nota VOC: solo leemos dato bruto (analógico 0-1024). Valor alto = presencia VOC. No ppm/ppb. Nota Ozono: para mayor precisión, ajustar ¡Espero que disfrutaras y aprendieras! Si te gustó, considera apoyarme en Patreon. Preguntas en comentarios y mira mi Colección Proyectos Arduino.Resumen


Sensor PM2.5 – PMS5003


Sensor CO2 – MH-Z19


Sensores VOC y Ozono – MP503 y MQ-131


Diagrama de circuito – Monitor Calidad Aire Arduino DIY


PCB para Monitor Calidad Aire Arduino




Visor Altium 365: https://www.altium.com/viewer

Montaje PCB






Fabricación de la carcasa




Programación





Explicación del código
SoftwareSerial porque MH-Z19 y PMS5003 usan serie. Arduino-Nextion: puerto serie hardware (por defecto).
Serial.print("tempV.val="); Serial.print(temp); Serial.write(0xff); Serial.write(0xff); Serial.write(0xff);write(0xff) finales para aceptar cualquier comando.loop() Arduino) actualiza números constantemente.

setTimeToRead() y setR0() según ejemplo calibración librería. Pero setTimeToRead largo bloquea programa muestreando. Hay formas de evitarlo. Incluso sugeriría no usar sensor ozono salvo necesidad real.
Proceso de manufactura
- Construya una estación meteorológica y de calidad del aire con Raspberry Pi, InfluxDB y Grafana
- Medición de la Calidad del Aire con OpenSensors: Guía para Arduino y Python
- Sensor de Calidad del Aire Solar con Helium: Guía de Diseño y Despliegue
- Crea un Impresionante Sistema Ambilight para Monitor con Arduino
- Sensor K30 CO₂: Monitorización en tiempo real de la calidad del aire interior
- Construye un Voltímetro Inteligente con Arduino y Smartphone – Proyecto DIY Fácil
- Monitor de Frecuencia Cardíaca IoT en Tiempo Real con Arduino y MAX30100
- Monitor de Temperatura y Reloj en Tiempo Real con Arduino Due y Pantalla TFT 3.2"
- Construye un Skateboard VR Casero con Arduino, Google Cardboard y Bluetooth
- Construye un monitor de calidad del aire preciso con el sensor Sharp GP2Y1010AU0F
- Construye un dispositivo de tratamiento radiónico EMR con Arduino DIY