ESP32 - Sensor de Gás

Este tutorial vai guiar você no uso do ESP32 e do sensor de gás MQ2 para avaliar a qualidade do ar examinando os níveis de vários gases inflamáveis, como GLP, fumaça, álcool, propano, hidrogênio, metano e monóxido de carbono. Vamos ver os seguintes pontos em detalhes:

Sobre o Sensor de Gás MQ2

O sensor de gás MQ2 pode detectar a presença de vários gases, como GLP, fumaça, álcool, propano, hidrogênio, metano e monóxido de carbono, no ambiente ao redor. Ele oferece duas opções de saída: um pino de saída digital e um pino de saída analógica.

É importante saber que o sensor de gás MQ2 não dá informação específica sobre cada gás individualmente. Em vez disso, ele informa sobre a combinação dos gases ou a presença de gases como um todo.

Com o sensor MQ2, podemos identificar se há um vazamento de gás ou se a qualidade do ar está ruim. Essa informação nos permite tomar as ações certas para garantir a nossa segurança, como ativar um alarme ou ligar sistemas de ventilação.

Pinagem

O sensor de gás MQ2 tem quatro pinos, cada um com uma função:

  • Pino VCC: este pino deve ser conectado ao VCC (5V).
  • Pino GND: este pino deve ser conectado ao GND (0V).
  • Pino DO: é um pino de saída digital que indica a presença de gases inflamáveis. Quando a concentração de gás inflamável é detectada, o pino envia um sinal LOW; caso contrário, envia um sinal HIGH. O valor limite para detectar a concentração de gás pode ser ajustado com um potenciômetro embutido.
  • Pino AO: é um pino de saída analógica que gera uma tensão analógica proporcional à concentração de gás. Quando a concentração de gás aumenta, a tensão de saída também aumenta, e quando a concentração de gás diminui, a tensão de saída diminui da mesma forma.
MQ2 Gas Sensor Pinout

Além disso, o sensor de gás MQ2 tem dois LEDs indicadores:

  • LED PWR: este LED indica a alimentação, mostrando que o sensor está recebendo energia. Ele fica aceso quando o sensor está alimentado e funcionando.
  • LED DO: este LED está ligado ao pino DO do sensor. Ele mostra visualmente a concentração de gás com base no valor do pino DO. Quando há concentração de gás e o pino DO está em LOW, o LED DO acende. Por outro lado, se nenhuma concentração de gás é detectada e o pino DO está em HIGH, o LED DO apaga.

Como Funciona

Sobre o pino DO:

  • O módulo MQ2 tem um potenciômetro embutido que permite ajustar a sensibilidade ou o limite da concentração de gás.
  • Se a concentração de gás no ambiente ao redor passar do limite definido, o pino de saída do sensor vai para LOW e o LED DO acende.
  • Por outro lado, se a concentração de gás ficar abaixo do limite definido, o pino de saída do sensor vai para HIGH e o LED DO apaga.

Sobre o pino AO:

  • Quando a concentração de gás aumenta, a tensão no pino AO também aumenta de forma proporcional.
  • Por outro lado, quando a concentração de gás diminui, a tensão no pino AO diminui na mesma proporção.

É importante saber que ajustar o potenciômetro não afeta o valor no pino AO.

Aquecimento do Sensor MQ2

O sensor de gás MQ2 precisa de um período de aquecimento antes de ser usado de forma eficaz. Veja os detalhes:

  • Ao usar o sensor pela primeira vez depois de um longo período guardado (cerca de um mês ou mais), é necessário aquecê-lo por 24 a 48 horas. Esse tempo de aquecimento mais longo garante o funcionamento correto.
  • Se o sensor foi usado há pouco tempo, o tempo de aquecimento é bem menor. Normalmente leva só de 5 a 10 minutos para o sensor aquecer por completo. Durante esse período, o sensor pode dar leituras altas no início, mas essas leituras vão diminuir aos poucos até o sensor se estabilizar.

Para aquecer o sensor MQ2, basta conectar os pinos VCC e GND a uma fonte de alimentação ou aos pinos VCC e GND de um ESP32. Deixe o sensor assim pelo tempo de aquecimento necessário.

Diagrama de Ligação

Como o módulo do sensor de gás MQ2 tem duas saídas, você pode usar uma delas ou as duas, conforme a sua necessidade.

  • Como conectar o ESP32 e o sensor de gás usando protoboard (alimentado pelo cabo USB)
The wiring diagram between ESP32 MQ2 gas sensor

This image is created using Fritzing. Click to enlarge image

Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.

  • Como conectar o ESP32 e o sensor de gás usando protoboard (alimentado pelo pino Vin)
ESP32 MQ2 gas sensor wiring instruction

This image is created using Fritzing. Click to enlarge image

How to connect ESP32 and gas sensor
How to wire ESP32 and gas sensor

Código ESP32 - Lendo o valor do pino DO

/* * Este código de ESP32 foi desenvolvido por pt.newbiely.com * Este código de ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.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"); }

Passos Rápidos

  • Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente do ESP32 na Arduino IDE.
  • Copie o código acima e abra na Arduino IDE
  • Clique no botão Upload da Arduino IDE para fazer o upload do código para o ESP32
  • Coloque o sensor de gás MQ2 perto da fumaça/gás que você quer detectar
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
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
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Lembre-se: se o LED ficar sempre aceso ou sempre apagado, você pode ajustar o potenciômetro para regular a sensibilidade do sensor.

Código ESP32 - Lendo o valor do pino AO

/* * Este código de ESP32 foi desenvolvido por pt.newbiely.com * Este código de ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.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); }

Passos Rápidos

  • Copie o código acima e abra na Arduino IDE
  • Clique no botão Upload da Arduino IDE para fazer o upload do código para o ESP32
  • Coloque o sensor de gás MQ2 perto da fumaça/gás que você quer detectar
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
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
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Com os valores lidos do DO ou do AO, você pode inferir a qualidade do ar com base no seu próprio padrão, ou acionar um alarme ou ligar sistemas de ventilação.

※ Nota:

Este tutorial usa a função analogRead() para ler valores de um ADC (Conversor Analógico-Digital) conectado a um sensor de gás. O ADC do ESP32 é bom para projetos que NÃO precisam de alta precisão. Porém, para projetos que precisam de medições precisas, observe:

  • O ADC do ESP32 não é perfeitamente preciso e pode precisar de calibração para dar resultados corretos. Cada placa ESP32 pode ser um pouco diferente, então você precisa calibrar o ADC de cada placa individualmente.
  • A calibração pode ser difícil, principalmente para iniciantes, e nem sempre dá o resultado exato que você quer.

Para projetos que precisam de alta precisão, considere usar um ADC externo (por exemplo, o ADS1115) com o ESP32, ou usar um Arduino, que tem um ADC mais confiável. Se mesmo assim você quiser calibrar o ADC do ESP32, consulte o ESP32 ADC Calibration Driver

Vídeo

Referências de Funções

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!