Arduino Nano ESP32 - Sensor de Gás

Este tutorial vai guiar você no uso do Arduino Nano 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 abordar os seguintes aspectos em detalhes:

Hardware Necessário

1×Arduino Nano ESP32
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×Sensor de Gás MQ2
1×Protoboard
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

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 notar que o sensor de gás MQ2 não fornece informações específicas sobre cada gás individualmente. Em vez disso, ele nos informa sobre a combinação de gases ou a presença de gases como um todo.

Ao usar 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 adequadas para garantir nossa segurança, como ativar um alarme ou ligar sistemas de ventilação.

Pinagem

O sensor de gás MQ2 tem quatro pinos com funções específicas:

  • Pino VCC: este pino precisa ser conectado ao VCC (5V).
  • Pino GND: este pino precisa ser conectado ao GND (0V).
  • Pino DO: é um pino de saída digital que indica a presença de gases inflamáveis. Quando uma concentração de gás inflamável é detectada, o pino emite um sinal LOW; caso contrário, emite um sinal HIGH. O valor limite para detectar a concentração de gás pode ser ajustado usando 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.
Pinagem do sensor de gás MQ2

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

  • Indicador PWR-LED: este LED serve como indicador de alimentação, mostrando que o sensor está recebendo energia. Ele fica aceso quando o sensor está alimentado e funcionando.
  • Indicador DO-LED: este LED está ligado ao pino DO do sensor. Ele mostra visualmente a concentração de gás com base no valor recebido do pino DO. Quando há concentração de gás e o pino DO está em LOW, o indicador DO-LED acende. Por outro lado, se nenhuma concentração de gás é detectada e o pino DO está em HIGH, o indicador DO-LED 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 passa do limite definido, o pino de saída do sensor vai para LOW e o DO-LED acende.
  • Por outro lado, se a concentração de gás fica abaixo do limite definido, o pino de saída do sensor vai para HIGH e o DO-LED apaga.

Sobre o pino AO:

  • Conforme a concentração de gás aumenta, a tensão no pino AO também aumenta proporcionalmente.
  • Por outro lado, quando a concentração de gás diminui, a tensão no pino AO diminui de forma correspondente.

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

O Aquecimento do Sensor MQ2

O sensor de gás MQ2 precisa de um período de aquecimento antes de poder 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-48 horas. Esse tempo de aquecimento prolongado garante um funcionamento preciso.
  • Se o sensor foi usado recentemente, o tempo de aquecimento é bem menor. Normalmente leva apenas 5-10 minutos para o sensor aquecer por completo. Durante esse período de aquecimento, o sensor pode inicialmente dar leituras altas, mas essas leituras vão diminuindo aos poucos até o sensor se estabilizar.

Para aquecer o sensor MQ2, basta conectar os pinos VCC e GND dele a uma fonte de alimentação ou aos pinos VCC e GND de um Arduino Nano ESP32. Deixe o sensor nesse estado durante o período de aquecimento necessário.

Diagrama de Ligação

Como o módulo do sensor de gás MQ2 tem duas saídas, você pode escolher usar uma delas ou as duas, dependendo do que precisa.

  • O diagrama de ligação entre o Arduino Nano ESP32 e o sensor de gás MQ2 quando alimentado pela porta USB.
Diagrama de ligação do sensor de gás MQ2 com o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

  • O diagrama de ligação entre o Arduino Nano ESP32 e o sensor de gás MQ2 quando alimentado pelo pino Vin.
Diagrama de ligação de qualidade do ar com o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Código do Arduino Nano ESP32 - Ler o valor do pino DO

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

Passos Rápidos

  • Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente para o Arduino Nano ESP32 no Arduino IDE.
  • Copie o código acima e abra no Arduino IDE
  • Clique no botão Upload do Arduino IDE para fazer o upload do código para o Arduino Nano 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
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' 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
Arduino Nano ESP32 on COM15
2

Lembre-se de que, se você notar que o status do LED fica sempre aceso ou sempre apagado, você pode ajustar o potenciômetro para regular a sensibilidade do sensor.

Código do Arduino Nano ESP32 - Ler o valor do pino AO

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

Passos Rápidos

  • Copie o código acima e abra no Arduino IDE
  • Clique no botão Upload do Arduino IDE para fazer o upload do código para o Arduino Nano 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
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' 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
Arduino Nano ESP32 on COM15
2

A partir dos valores lidos de DO ou AO, você pode inferir a qualidade do ar com base no seu padrão, ou disparar 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 ou componente. O ADC do Arduino Nano ESP32 é adequado para projetos que não exigem alta precisão. No entanto, para projetos que precisam de medições precisas, tenha em mente o seguinte:

  • O ADC do Arduino Nano ESP32 não é perfeitamente preciso e pode precisar de calibração para obter resultados corretos. Cada placa Arduino Nano ESP32 pode variar um pouco, então a calibração é necessária para cada placa individualmente.
  • A calibração pode ser difícil, especialmente para iniciantes, e nem sempre dá os resultados exatos que você quer.

Para projetos que exigem alta precisão, considere usar um ADC externo (ex.: ADS1115) com o Arduino Nano ESP32 ou usar outro Arduino, como o Arduino Uno R4 WiFi, que tem um ADC mais confiável. Se você ainda quiser calibrar o ADC do Arduino Nano 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!