Descubriendo el aire que respiramos: Un experimento con Arduino y MQ135 - Tecneu

Descubriendo el aire que respiramos: Un experimento con Arduino y MQ135

Comentarios

Introducción

El MQ135 es un sensor de calidad del aire versátil y eficaz que puede detectar numerosos gases nocivos, entre los que se incluyen el amoníaco, dióxido de azufre, benceno, alcohol, monóxido de carbono y otros gases volátiles presentes en el aire. En este tutorial, vamos a aprender cómo utilizarlo con un Arduino para medir las concentraciones de estos gases en partes por millón (PPM).

Además, vale la pena destacar que este tutorial puede adaptarse fácilmente para trabajar con otros sensores de la serie MQ, incluyendo el MQ-2, MQ-3, MQ-4, MQ-5, MQ-6, MQ-7, MQ-8, MQ-9, MQ-131, MQ-136, MQ-303A y MQ-309A. Esto es posible gracias a la biblioteca que usaremos, la cual ofrece un amplio soporte para estos modelos. No importa el tipo de sensor MQ que tengas, este tutorial te proporcionará una base sólida para empezar a medir y monitorear la calidad del aire de tu entorno.

Características del sensor MQ135

El MQ135 opera utilizando un material de detección de gas sensible situado en el centro del módulo. Este material cambia su resistencia en presencia de ciertos gases. El sensor mide esta resistencia para determinar la concentración de gas en el aire. Uno de los beneficios clave del MQ135 es su sensibilidad a una amplia variedad de gases, lo que lo convierte en una opción común para la monitorización de la calidad del aire.

  • Sensibilidad ajustable: El sensor tiene un potenciómetro que puedes ajustar para calibrar la sensibilidad del sensor a los gases.

  • Voltaje de operación: El sensor puede operar entre 4.5V y 5V, lo que lo hace compatible con la mayoría de las placas de desarrollo como Arduino.

  • Salida de señal: El MQ135 proporciona tanto una señal analógica como una señal digital. La salida analógica es proporcional a la concentración de gas, y la salida digital puede ser utilizada para detectar un nivel de umbral de gas.

  • Tiempo de precalentamiento: El sensor requiere un tiempo de precalentamiento antes de que pueda proporcionar lecturas precisas. Este tiempo puede ser de unos minutos hasta varias horas, dependiendo del sensor específico y de las condiciones ambientales.

  • Temperatura de funcionamiento: El MQ135 puede operar en un rango de temperatura de -20°C a 50°C.

Configuración del Circuito

  1. Conecta el pin Vcc del MQ135 a la salida de 5V del Arduino.
  2. Conecta el pin GND del MQ135 a uno de los pines GND del Arduino.
  3. Conecta el pin A0 (salida analógica) del MQ135 al pin A0 del Arduino.

 

Programación del Arduino

Haremos uso de la librería "MQUnifiedsensor" . Desde el IDE de Arduino ve a Sketch -> Include Library -> Manage Libraries, luego busca "MQUnifiedsensor" en la barra de búsqueda y haz clic en "Install".

MQ135

Esta librería es compatible con muchos mas sensores MQ por lo que aprender a usarla te da acceso a mas dispositivos diseñados para detectar la presencia de distintos componentes químicos en el aire.

Primero, debemos escribir un programa para Arduino que leerá los valores del sensor MQ135, los convertirá a PPM y luego imprimirá esos valores en el Monitor Serial.

 

 Incluye la biblioteca MQUnifiedsensor, la cual proporciona métodos para trabajar con diferentes sensores de la serie MQ.

    #include <MQUnifiedsensor.h>

 

Se definen varias constantes que se utilizarán en el código, como el tipo de placa Arduino que estás utilizando ("Arduino UNO"), la resolución del voltaje (5V), el pin de lectura analógica (A0), el tipo de sensor ("MQ-135"), la resolución del ADC (10 bits para el Arduino UNO/MEGA/NANO), y el factor de corrección para el aire limpio (3.6 para el sensor MQ-135). 

 

    #define placa "Arduino UNO"
    #define Voltage_Resolution 5
    #define pin A0              
    #define type "MQ-135"        
    #define ADC_Bit_Resolution 10  
    #define RatioMQ135CleanAir 3.6  

 

Se Crea una instancia del objeto MQUnifiedsensor para el sensor MQ-135.

    
MQUnifiedsensor MQ135(placa, Voltage_Resolution, ADC_Bit_Resolution, pin, type);

 

En el setup  se inicializa la comunicación serial a 9600 bps, configura el método de regresión para calcular las PPM, establece los coeficientes 'a' y 'b' para la ecuación de regresión, inicializa el sensor, y luego realiza una calibración del sensor realizando 10 lecturas del sensor y calculando el valor de R0 (la resistencia del sensor en aire limpio) para cada lectura. Luego, pone el valor medio de R0 en el objeto del sensor.

 

      Serial.begin(9600);
        MQ135.setRegressionMethod(1);  
        MQ135.setA(110.47);
        MQ135.setB(-2.862);
        MQ135.init();
        float calcR0 = 0;
        for (int i = 1; i <= 10; i++) {
          MQ135.update();
          calcR0 += MQ135.calibrate(RatioMQ135CleanAir);
          Serial.print(".");
        }
        MQ135.setR0(calcR0 / 10);

 

Los coeficientes de 'a' y 'b' dependiendo el gas pueden ser:

 

Gas a b
CO 605.18 -3.937
Alcohol 77.255 -3.18
CO2 110.47 -2.862
Tolueno 44.947 -3.445
NH4 102.2 -2.473
Acetona 34.668 -3.369

 

En el loop se actualizan los valores del sensor y luego se imprimen el voltaje y las PPM al Monitor Serial, en caso de C02 se añaden 400 PPM porque porque cuando la biblioteca se calibra, asume que el estado actual del aire es de 0 PPM, y se considera que hoy en día la cantidad de CO2 presente en la atmósfera está alrededor de 400 PPM.

  

El código completo queda de la siguiente forma:

En resumen, este código lee las lecturas de voltaje del sensor MQ-135, las convierte en PPM utilizando una ecuación de regresión y luego imprime los resultados al Monitor Serial. Es un gran ejemplo de cómo utilizar el sensor MQ-135 para monitorizar la calidad del aire con Arduino.

Conclusión 

Este es un tutorial básico para comenzar a trabajar con el sensor MQ135 y el Arduino. Para una implementación más avanzada, podrías medir varios gases, o realizar promedios móviles de las lecturas para obtener resultados más estables. También podrías añadir elementos adicionales al proyecto, como una pantalla LCD para visualizar los datos o conectividad a Internet para registrar los datos en línea.

Productos Relacionados

Ver artículo

Comentarios 

Sin comentarios

Dejar un comentario
Tu correo no será publicado, los campos requeridos estan marcados con *
Artículos relacionados
Suscríbete
Suscríbete a nuestro boletín y recibe las últimas ofertas y novedades.