- Componentes requeridos
- Módulo de pantalla OLED de 0.96 '
- Preparación del sensor MQ-135
- Diagrama de circuito para interconectar MQ135 con Arduino
- Calculando la R
- Código para medir CO2 usando el sensor Arduino MQ135
- Prueba de la interfaz del sensor MQ-135
El nivel de CO2 atmosférico de la Tierra aumenta día a día. El dióxido de carbono atmosférico promedio mundial en 2019 fue de 409,8 partes por millón y en octubre de 2020 es de 411,29. El dióxido de carbono es un gas de efecto invernadero clave y responsable de aproximadamente las tres cuartas partes de las emisiones. Por tanto , el control del nivel de CO2 también ha comenzado a ganar importancia.
En nuestro proyecto anterior, utilizamos el sensor de CO2 infrarrojo de gravedad para medir la concentración de CO2 en el aire. En este proyecto, vamos a utilizar un sensor MQ-135 con Arduino para medir la concentración de CO2. Los valores de concentración de CO2 medidos se mostrarán en el módulo OLED y, por último, también compararemos las lecturas del sensor Arduino MQ-135 con las lecturas del sensor de CO2 infrarrojo. Además del CO2, también hemos medido la concentración de gas LPG, humo y amoníaco utilizando Arduino.
Componentes requeridos
- Arduino Nano
- Sensor MQ-135
- Cables de puente
- Módulo de pantalla OLED SPI de 0.96 '
- Tablero de circuitos
- Resistencia 22KΩ
Módulo de pantalla OLED de 0.96 '
OLED (diodos emisores de luz orgánicos) es una tecnología de autoemisión de luz, construida colocando una serie de películas delgadas orgánicas entre dos conductores. Se produce una luz brillante cuando se aplica una corriente eléctrica a estas películas. Los OLED utilizan la misma tecnología que los televisores, pero tienen menos píxeles que en la mayoría de nuestros televisores.
Para este proyecto, estamos usando una pantalla OLED monocromática de 7 pines SSD1306 de 0.96 ”. Puede funcionar en tres protocolos de comunicación diferentes: modo SPI de 3 cables, modo SPI de cuatro cables y modo I2C. También puede obtener más información sobre los conceptos básicos de la pantalla OLED y sus tipos leyendo el artículo vinculado. Los pines y sus funciones se explican en la siguiente tabla:
Nombre de PIN |
Otros nombres |
Descripción |
Gnd |
Suelo |
Pin de tierra del módulo |
Vdd |
Vcc, 5 V |
Pin de alimentación (3-5 V tolerable) |
SCK |
D0, SCL, CLK |
Actúa como el pin del reloj. Utilizado tanto para I2C como para SPI |
SDA |
D1, MOSI |
Pin de datos del módulo. Utilizado tanto para IIC como para SPI |
RES |
RST, RESET |
Restablece el módulo (útil durante SPI) |
corriente continua |
A0 |
Pin de comando de datos. Utilizado para el protocolo SPI |
CS |
Selección de chip |
Útil cuando se usa más de un módulo bajo el protocolo SPI |
Especificaciones OLED:
- IC del controlador OLED: SSD1306
- Resolución: 128 x 64
- Ángulo visual:> 160 °
- Voltaje de entrada: 3,3 V ~ 6 V
- Color de píxel: azul
- Temperatura de trabajo: -30 ° C ~ 70 ° C
Preparación del sensor MQ-135
El sensor de gas MQ-135 es un sensor de calidad del aire para detectar una amplia gama de gases, incluidos NH3, NOx, alcohol, benceno, humo y CO2. El sensor MQ-135 se puede comprar como módulo o solo como sensor. En este proyecto, estamos utilizando un módulo sensor MQ-135 para medir la concentración de CO2 en PPM. El diagrama de circuito de la placa MQ-135 se muestra a continuación:
La resistencia de carga RL juega un papel muy importante en el funcionamiento del sensor. Esta resistencia cambia su valor de resistencia según la concentración de gas. De acuerdo con la hoja de datos MQ-135, el valor de la resistencia de carga puede oscilar entre 10 KΩ y 47 KΩ. La hoja de datos recomienda que calibre el detector para 100 ppm de NH3 o 50 ppm de concentración de alcohol en el aire y utilice un valor de resistencia de carga (RL) de aproximadamente 20 KΩ. Pero si rastrea los rastros de su PCB para encontrar el valor de su RL en la placa, puede ver una resistencia de carga de 1KΩ (102).
Entonces, para medir los valores apropiados de concentración de CO2, debe reemplazar la resistencia de 1KΩ con una resistencia de 22KΩ.
Diagrama de circuito para interconectar MQ135 con Arduino
Los esquemas completos para conectar el sensor de gas MQ-135 con Arduino se muestran a continuación:
El circuito es muy simple ya que solo estamos conectando el sensor MQ-135 y el módulo de pantalla OLED con Arduino Nano. El sensor de gas MQ-135 y el módulo de pantalla OLED se alimentan con + 5V y GND. El pin Analog Out del sensor MQ-135 está conectado al pin A0 de Arduino Nano. Dado que el módulo de pantalla OLED utiliza comunicación SPI, hemos establecido una comunicación SPI entre el módulo OLED y Arduino Nano. Las conexiones se muestran en la siguiente tabla:
S. No |
Pin del módulo OLED |
Pin de Arduino |
1 |
GND |
Suelo |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
corriente continua |
11 |
7 |
CS |
12 |
Después de conectar el hardware de acuerdo con el diagrama del circuito, la configuración del sensor Arduino MQ135 debería verse como a continuación:
Calculando la R
Ahora que conocemos el valor de RL, procedamos a calcular los valores de R o en aire limpio. Aquí vamos a utilizar MQ135.h para medir la concentración de CO2 en el aire. Así que primero descargue la biblioteca MQ-135, luego precaliente el sensor durante 24 horas antes de leer los valores de R o. Después del proceso de precalentamiento, use el siguiente código para leer los valores de R o:
#include "MQ135.h" void setup () {Serial.begin (9600); } bucle vacío () {MQ135 gasSensor = MQ135 (A0); // Conecte el sensor al pin A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); retraso (1000); }
Ahora, una vez que obtenga los valores de R o, vaya a Documentos> Arduino> bibliotecas> carpeta MQ135-master y abra el archivo MQ135.h y cambie los valores RLOAD & RZERO.
/// La resistencia de carga en la placa #define RLOAD 22.0 /// Resistencia de calibración al nivel de CO2 atmosférico #define RZERO 5804.99
Ahora desplácese hacia abajo y reemplace el valor ATMOCO2 con el CO2 atmosférico actual que es 411.29
/// Nivel de CO2 atmosférico para fines de calibración #define ATMOCO2 397.13
Código para medir CO2 usando el sensor Arduino MQ135
El código completo para interconectar el sensor MQ-135 con Arduino se encuentra al final del documento. Aquí estamos explicando algunas partes importantes del código Arduino MQ135.
El código utiliza el Adafruit_GFX , y Adafruit_SSD1306 , y MQ135.h bibliotecas. Estas bibliotecas se pueden descargar desde el Administrador de bibliotecas en el IDE de Arduino e instalarlas desde allí. Para eso, abra el IDE de Arduino y vaya a Sketch <Incluir biblioteca <Administrar bibliotecas . Ahora busque Adafruit GFX e instale la biblioteca Adafruit GFX de Adafruit.
Del mismo modo, instale las bibliotecas Adafruit SSD1306 de Adafruit. La biblioteca MQ135 se puede descargar desde aquí.
Después de instalar las bibliotecas en Arduino IDE, inicie el código incluyendo los archivos de bibliotecas necesarios.
#include "MQ135.h" #include
Luego, defina el ancho y la altura de OLED. En este proyecto, usamos una pantalla OLED SPI de 128 × 64. Se puede cambiar el SCREEN_WIDTH y SCREEN_HEIGHT variables de acuerdo a su pantalla.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Luego defina los pines de comunicación SPI donde se conecta la pantalla OLED.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Luego, cree una instancia de visualización de Adafruit con el ancho y alto definidos anteriormente con el protocolo de comunicación SPI.
Pantalla Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Después de eso, defina el pin Arduino donde está conectado el sensor MQ-135.
int sensorIn = A0;
Ahora, dentro de la función setup () , inicialice Serial Monitor a una velocidad de 9600 baudios para fines de depuración. Además, inicialice la pantalla OLED con la función begin () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
Dentro de la función loop () , primero lea los valores de la señal en el pin analógico de Arduino llamando a la función analogRead () .
val = analogRead (A0); Serial.print ("raw =");
Luego, en la siguiente línea, llame a gasSensor.getPPM () para calcular los valores de PPM. Los valores de PPM se calculan utilizando la resistencia de carga, R 0, y la lectura del pin analógico.
flotar ppm = gasSensor.getPPM (); Serial.print ("ppm:"); Serial.println (ppm);
Después de eso, establezca el tamaño y el color del texto usando setTextSize () y setTextColor () .
display.setTextSize (1); display.setTextColor (BLANCO);
Luego, en la siguiente línea, defina la posición donde comienza el texto usando el método setCursor (x, y) . E imprima los valores de CO2 en la pantalla OLED utilizando la función display.println () .
display.setCursor (18,43); display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (ppm);
Y en el último, llame al método display () para mostrar el texto en la pantalla OLED.
display.display (); display.clearDisplay ();
Prueba de la interfaz del sensor MQ-135
Una vez que el hardware y el código están listos, es hora de probar el sensor. Para eso, conecte el Arduino a la computadora portátil, seleccione la placa y el puerto, y presione el botón de carga. Luego abra su monitor en serie y espere un tiempo (proceso de precalentamiento), luego verá los datos finales. Los valores se mostrarán en la pantalla OLED como se muestra a continuación:
Así es como se puede utilizar un sensor MQ-135 para medir con precisión el CO2 en el aire. El código completo de Arduino del sensor de calidad del aire MQ135 y el video de trabajo se muestran a continuación. Si tienes dudas déjalas en la sección de comentarios.