Arduino Nano ESP32 - Sensor de gases

Este tutorial te guiará a través del proceso de utilizar Arduino Nano ESP32 y el sensor de gas MQ-2 para evaluar la calidad del aire al examinar los niveles de varios gases inflamables, como GLP, humo, alcohol, propano, hidrógeno, metano y monóxido de carbono. Abordaremos los siguientes aspectos en detalle:

Hardware Requerido

1×Arduino Nano ESP32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Sensor de Gas MQ2
1×Protoboard
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del sensor de gas MQ-2

El sensor de gas MQ2 puede detectar la presencia de varios gases como LPG, humo, alcohol, propano, hidrógeno, metano y monóxido de carbono en el entorno circundante. Ofrece dos opciones de salida: un pin de salida digital y un pin de salida analógica.

Es importante señalar que el sensor de gas MQ2 no proporciona información específica sobre cada gas de forma individual. En su lugar, nos informa sobre la combinación de gases o la presencia de gases en su conjunto.

Al utilizar el sensor MQ2, podemos identificar si hay una fuga de gas o si la calidad del aire es deficiente. Esta información nos permite tomar las medidas adecuadas para garantizar nuestra seguridad, como activar una alarma o encender sistemas de ventilación.

Disposición de pines

El sensor de gas MQ-2 consta de cuatro pines con funciones específicas:

  • Pin VCC: Este pin debe conectarse al VCC (5 V).
  • Pin GND: Este pin debe conectarse a GND (0 V).
  • Pin DO: Es un pin de salida digital que indica la presencia de gases inflamables. Cuando se detecta una concentración de gas inflamable, la salida del pin es una señal de nivel bajo; de lo contrario, es una señal de nivel alto. El valor umbral para detectar la concentración de gas se puede ajustar con un potenciómetro integrado.
  • Pin AO: Es un pin de salida analógica que genera una tensión analógica proporcional a la concentración de gas. Cuando la concentración de gas aumenta, la tensión de salida también aumenta, y cuando la concentración de gas disminuye, la tensión de salida disminuye en consecuencia.
Disposición de pines del sensor de gas MQ-2

Además, el sensor de gas MQ2 está equipado con dos indicadores LED:

  • Indicador PWR-LED: Este LED funciona como indicador de alimentación, indicando que el sensor está recibiendo energía. Se enciende cuando el sensor está alimentado y funcionando.
  • Indicador DO-LED: Este LED está vinculado al pin DO del sensor. Proporciona una representación visual de la concentración de gas basada en el valor recibido del pin DO. Cuando la concentración de gas está presente y el pin DO está configurado en nivel bajo, el indicador DO-LED se enciende. Por el contrario, si no se detecta concentración de gas y el pin DO está configurado en nivel alto, el indicador DO-LED se apaga.

Cómo funciona

Con respecto al pin DO:

  • El módulo MQ2 cuenta con un potenciómetro integrado que le permite ajustar la sensibilidad o el umbral para la concentración de gas.
  • Si la concentración de gas en el entorno circundante excede el umbral establecido, el pin de salida del sensor se establece en nivel bajo, y el DO-LED se enciende.
  • Por el contrario, si la concentración de gas desciende por debajo del umbral establecido, el pin de salida del sensor se establece en nivel alto, y el DO-LED se apaga.

Con respecto al pin AO:

  • A medida que la concentración de gas aumenta, el voltaje en el pin AO también aumenta de forma proporcional.
  • Por el contrario, cuando la concentración de gas disminuye, el voltaje en el pin AO disminuye en consecuencia.

Es importante señalar que ajustar el potenciómetro no afecta el valor en el pin AO.

El calentamiento del sensor MQ2

El sensor de gas MQ-2 requiere un período de calentamiento antes de poder utilizarse de forma eficaz. Aquí están los detalles:

  • Cuando se use el sensor por primera vez después de un largo periodo de almacenamiento (alrededor de un mes o más), es necesario calentarlo durante 24-48 horas. Este tiempo de calentamiento prolongado garantiza un funcionamiento preciso.
  • Si el sensor ha sido utilizado recientemente, el tiempo de calentamiento es significativamente más corto. Típicamente toma solo de 5 a 10 minutos para que el sensor se caliente por completo. Durante este periodo de calentamiento, el sensor puede proporcionar inicialmente lecturas altas, pero estas lecturas disminuirán gradualmente hasta que el sensor se estabilice.

Para precalentar el sensor MQ2, simplemente conecte sus pines VCC y GND a una fuente de alimentación o conéctelos a los pines VCC y GND de un Arduino Nano ESP32. Permita que el sensor permanezca en este estado durante el período de precalentamiento requerido.

Diagrama de Cableado

Dado que el módulo de sensor de gas MQ2 tiene dos salidas, puedes elegir usar una o ambas, dependiendo de lo que necesites.

  • El diagrama de cableado entre Arduino Nano ESP32 y el sensor de gas MQ-2 cuando se alimenta a través del puerto USB.
Diagrama de cableado del sensor de gas MQ-2 para Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

  • El diagrama de cableado entre Arduino Nano ESP32 y el sensor de gas MQ2 cuando se alimenta a través del pin Vin.
Diagrama de cableado para la calidad del aire con Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Código de Arduino Nano ESP32 - Leer el valor del pin DO

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-gas-sensor */ #define DO_PIN D2 // The Arduino Nano ESP32's pin connected to DO pin of the MQ2 sensor void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(DO_PIN, INPUT); Serial.println("Warming up the MQ2 sensor"); delay(20000); // wait for the MQ2 to warm up } void loop() { int gasState = digitalRead(DO_PIN); if (gasState == HIGH) Serial.println("The gas is NOT present"); else Serial.println("The gas is present"); }

Pasos R\u00e1pidos

  • Si es la primera vez que usas Arduino Nano ESP32, consulta cómo configurar el entorno para Arduino Nano ESP32 en Arduino IDE.
  • Copia el código anterior y ábrelo con Arduino IDE.
  • Haz clic en el botón Subir en Arduino IDE para subir el código al Arduino Nano ESP32.
  • Coloca el sensor de gas MQ2 cerca del humo o gas que quieras detectar.
  • Consulta el resultado en el Monitor Serial.
COM6
Send
The gas is NOT present The gas is NOT present The gas is NOT present The gas is NOT present The gas is NOT present The gas is present The gas is present The gas is present The gas is present The gas is present
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Tenga en cuenta que si nota que el estado del LED permanece encendido constantemente o apagado, puede ajustar el potenciómetro para afinar la sensibilidad del sensor.

Código de Arduino Nano ESP32 - Leer valor del pin AO

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-gas-sensor */ #define AO_PIN A5 // The Arduino Nano ESP32's pin connected to AO pin of the MQ2 sensor void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); Serial.println("Warming up the MQ2 sensor"); delay(20000); // wait for the MQ2 to warm up } void loop() { int gasValue = analogRead(AO_PIN); Serial.print("MQ2 sensor AO value: "); Serial.println(gasValue); }

Pasos R\u00e1pidos

  • Copia el código anterior y ábrelo con Arduino IDE
  • Haz clic en el botón Subir en el Arduino IDE para subir el código al Arduino Nano ESP32
  • Coloca el sensor de gas MQ2 cerca del humo o gas que quieras detectar
  • Consulta el resultado en el Monitor Serial
COM6
Send
MQ2 sensor AO value: 135 MQ2 sensor AO value: 136 MQ2 sensor AO value: 136 MQ2 sensor AO value: 573 MQ2 sensor AO value: 674 MQ2 sensor AO value: 1938 MQ2 sensor AO value: 1954 MQ2 sensor AO value: 2000 MQ2 sensor AO value: 3002 MQ2 sensor AO value: 4014 MQ2 sensor AO value: 4017
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

A partir de los valores leídos de DO u AO, se puede inferir la calidad del aire según su norma, o activar una alarma o encender los sistemas de ventilación.

※ Nota:

Este tutorial utiliza la función analogRead() para leer valores de un ADC (Convertidor Analógico a Digital) conectado a un sensor o componente.

El ADC del Arduino Nano ESP32 es adecuado para proyectos que no requieren alta precisión.

Sin embargo, para proyectos que requieren mediciones precisas, tenga en cuenta lo siguiente:

  • El ADC del Arduino Nano ESP32 no es perfectamente preciso y podría requerir calibración para obtener resultados correctos. Cada placa Arduino Nano ESP32 puede variar ligeramente, por lo que la calibración es necesaria para cada placa individual.
  • La calibración puede ser desafiante, especialmente para principiantes, y podría no siempre obtener los resultados exactos que desea.

Para proyectos que requieren alta precisión, considere utilizar un ADC externo (por ejemplo, ADS1115) con el Arduino Nano ESP32 o usar otro Arduino, como el Arduino Uno R4 WiFi, que tiene un ADC más fiable. Si todavía desea calibrar el ADC del Arduino Nano ESP32, consulte el ESP32 ADC Calibration Driver.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Referencias de Funciones

Tutoriales Relacionados

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!