ESP32 - sensor de gas

Este tutorial te guiará a través del proceso de utilizar el ESP32 y el sensor de gas MQ-2 para evaluar la calidad del aire examinando 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×Módulo de Desarrollo ESP32 ESP-WROOM-32
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 ESP32
1×(Recomendado) Breakout Expansion Board for ESP32
1×(Recomendado) Divisor de Alimentación para ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
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 MQ2

El sensor de gas MQ-2 puede detectar la presencia de varios gases, como GLP, 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 MQ-2 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 MQ-2, podemos identificar si hay una fuga de gas o si la calidad del aire es mala. Esta información nos permite tomar las medidas adecuadas para garantizar nuestra seguridad, como activar una alarma o encender los sistemas de ventilación.

Diagrama de pines

El sensor de gas MQ2 consta de cuatro pines con funciones específicas:

  • Pin VCC: Este pin debe conectarse a la VCC (5V).
  • Pin GND: Este pin debe conectarse a la GND (0V).
  • Pin DO: Es un pin de salida digital que indica la presencia de gases inflamables. Cuando se detecta la concentración de gas inflamable, el pin emite una señal baja; de lo contrario, emite una señal alta. El valor umbral para detectar la concentración de gas puede ajustarse mediante 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 salida de voltaje también aumenta, y cuando la concentración de gas disminuye, la salida de voltaje disminuye correspondientemente.
Disposición de pines del sensor de gas MQ2

Además, el sensor de gas MQ-2 está equipado con dos indicadores LED:

  • Indicador PWR-LED: Este LED funciona como indicador de potencia, 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 desde el pin DO. Cuando la concentración de gas está presente y el pin DO está configurado en BAJO, el indicador DO-LED se enciende. Por el contrario, si no se detecta ninguna concentración de gas y el pin DO está configurado en 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 permite ajustar la sensibilidad o el umbral de la concentración de gas.
  • Si la concentración de gas en el entorno circundante supera el umbral establecido, la salida del sensor se establece en estado bajo y el DO-LED se enciende.
  • Por el contrario, si la concentración de gas cae por debajo del umbral establecido, la salida del sensor se establece en estado alto y el DO-LED se apaga.

Con respecto al pin AO:

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

Es importante notar que ajustar el potenciómetro no afecta el valor en el pin AO.

Calentamiento del sensor MQ-2

El sensor de gas MQ-2 requiere un período de calentamiento antes de que pueda utilizarse de manera efectiva. A continuación se presentan los detalles:

  • Cuando se utiliza 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. Por lo general, solo toma de 5 a 10 minutos para que el sensor se caliente por completo. Durante este periodo de calentamiento, el sensor puede presentar inicialmente lecturas altas, pero estas lecturas disminuirán gradualmente hasta que el sensor se estabilice.

Para calentar el sensor MQ-2, simplemente conecte sus pines VCC y GND a una fuente de alimentación o conéquelos a los pines VCC y GND de un ESP32. Permita que el sensor permanezca en este estado durante el período de calentamiento requerido.

Diagrama de Cableado

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

  • Cómo conectar el ESP32 y el sensor de gas usando una placa de pruebas (alimentado vía un cable USB)
Diagrama de cableado del sensor de gas MQ-2 para ESP32

This image is created using Fritzing. Click to enlarge image

Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.

  • Cómo conectar ESP32 y sensor de gas usando placa de pruebas (alimentado vía el pin Vin)
Instrucciones de cableado del sensor de gas MQ-2 para ESP32

This image is created using Fritzing. Click to enlarge image

Cómo conectar el ESP32 y un sensor de gas
  • Cómo conectar el ESP32 y el sensor de gas usando [la placa de terminales de tornillo] (alimentada a través del pin Vin)
Cómo cablear un ESP32 y un sensor de gas

Código ESP32 - Leer valor del pin DO

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-gas-sensor */ #define DO_PIN 16 // ESP32's pin GPIO16 connected to DO pin of the MQ2 sensor void setup() { // initialize serial communication 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 ESP32, consulta cómo configurar el entorno para 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 cargar el código en ESP32
  • Coloca el sensor de gas MQ2 cerca del humo o gas que quieras detectar
  • Ver 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  

Por favor, tenga en cuenta que si nota que el LED permanece encendido todo el tiempo o apagado, puede ajustar el potenciómetro para afinar la sensibilidad del sensor.

Código ESP32 - Leer el valor del pin AO

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-gas-sensor */ #define AO_PIN 36 // ESP32's pin GPIO36 connected to AO pin of the MQ2 sensor void setup() { // initialize serial communication 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 el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE de Arduino para subir el código al 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 o AO, puedes inferir la calidad del aire según tu estándar, o activar una alarma o encender los sistemas de ventilación.

※ Nota:

Este tutorial usa la función analogRead() para leer valores de un ADC (Convertidor Analógico-Digital) conectado a un sensor de gas. El ADC de ESP32 es bueno para proyectos que NO requieren alta precisión. Sin embargo, para proyectos que necesitan mediciones precisas, ten en cuenta:

  • El ADC de ESP32 no es perfectamente preciso y podría necesitar calibración para obtener resultados correctos. Cada placa ESP32 puede ser un poco diferente, así que necesitas calibrar el ADC para cada placa de forma individual.
  • La calibración puede ser difícil, especialmente para principiantes, y podría no dar siempre los resultados exactos que deseas.

Para proyectos que necesitan alta precisión, considera usar un ADC externo (por ejemplo ADS1115) con el ESP32 o usar un Arduino, que tiene un ADC más confiable. Si aún quieres calibrar el ADC del ESP32, consulta 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!