Grove - Sensor de Gás (MQ3)

O módulo Grove - Gas Sensor(MQ3) é útil para detecção de vazamento de gás (em casa e na indústria). Ele é adequado para detectar Álcool, Benzeno, CH4, Hexano, GLP, CO. Devido à sua alta sensibilidade e rápido tempo de resposta, as medições podem ser feitas o mais rápido possível. A sensibilidade do sensor pode ser ajustada usando o potenciômetro.
Nota
O valor do sensor apenas reflete a tendência aproximada da concentração de gás dentro de uma faixa de erro permissível, ele NÃO representa a concentração exata de gás. A detecção de certos componentes no ar normalmente requer um instrumento mais preciso e caro, o que não pode ser feito com um único sensor de gás. Se o seu projeto tem como objetivo obter a concentração de gás em um nível muito preciso, então não recomendamos este sensor de gás.Sensor | Tipo de Gás | Adquira Agora |
| MQ2 | Gás combustível, Fumaça | |
| MQ3 | Vapor de álcool | |
| MQ5 | GLP, Gás Natural, Gás de Cidade | |
| MQ9 | Monóxido de Carbono, Gás de Carvão, Gás Liquefeito |
Lançamos o Guia de Seleção de Sensores de Gás Seeed, que ajudará você a escolher o sensor de gás que melhor atende às suas necessidades.
Recursos
- Alta sensibilidade ao álcool e baixa sensibilidade ao Benzeno
- Estável e de longa vida útil
- Resposta rápida e alta sensibilidade
Para mais detalhes sobre módulos Grove, consulte o Sistema Grove
Especificação
| Item | Parâmetro | Mín | Típico | Máx | Unidade |
|---|---|---|---|---|---|
| VCC | Tensão de trabalho | 4.9 | 5 | 5.1 | V |
| PH | Consumo de aquecimento | 0.5 | - | 750 | mW |
| RL | Resistência de carga | ajustável | |||
| RH | Resistência do aquecedor | - | 33 | - | Ω |
| Rs | Resistência de detecção | 1 | - | 8 | MΩ |
| Scope | Concentração detectável | 0.05 | - | 10 | mg/L |
Aplicação
- Medidor de álcool.
- Bafômetro.
- Brinquedos.
Visão Geral de Hardware
Este é um sensor de saída analógica. Ele precisa ser conectado a qualquer soquete analógico no Grove Base Shield. Os exemplos usados neste tutorial utilizam o pino analógico A0. Conecte este módulo à porta A0 do Base Shield.
É possível conectar o módulo Grove ao Arduino diretamente usando jumpers, fazendo a conexão conforme mostrado na tabela abaixo:
| Arduino | Sensor de Gás |
|---|---|
| 5V | VCC |
| GND | GND |
| NC | NC |
| Analog A0 | SIG |
A tensão de saída do sensor de gás aumenta quando a concentração de gás aumenta. A sensibilidade pode ser ajustada variando o potenciômetro. Observe que o melhor tempo de pré-aquecimento para o sensor é acima de 24 horas. Para informações detalhadas sobre o sensor MQ-3, consulte o datasheet fornecido na seção Recursos.
Plataformas Suportadas
| Arduino | Raspberry | ArduPy |
|---|---|---|
|
|
|
As plataformas mencionadas acima como suportadas são uma indicação da compatibilidade teórica ou de software do módulo. Na maioria dos casos, fornecemos apenas biblioteca de software ou exemplos de código para a plataforma Arduino. Não é possível fornecer biblioteca de software / código de demonstração para todas as plataformas de MCU possíveis. Portanto, os usuários precisam escrever sua própria biblioteca de software.
Primeiros Passos
Brincar com Arduino
| Seeeduino V4.2 | Base Shield | Grove - Gas Sensor(MQ3) |
|---|---|---|
|
|
|
| Adquira Agora | Adquira Agora | Adquira Agora |

Conecte o Grove - Gas Sensor(MQ3) à porta A0 como mostrado na imagem acima.
Detecção de Gás: Exemplo Básico
Neste exemplo, o sensor está conectado ao pino A0. A tensão lida do sensor é exibida. Este valor pode ser usado como um limite para detectar qualquer aumento/diminuição na concentração de gás.
void setup() {
Serial.begin(9600);
}
void loop() {
float sensor_volt;
float sensorValue;
sensorValue = analogRead(A0);
sensor_volt = sensorValue/1024*5.0;
Serial.print("sensor_volt = ");
Serial.print(sensor_volt);
Serial.println("V");
delay(1000);
}
Medição: Aproximação
Este exemplo demonstra uma maneira de conhecer a concentração aproximada de gás. De acordo com o datasheet dos sensores MQ3, essas equações são testadas para condições padrão e não são calibradas. Elas podem variar com base em mudanças de temperatura ou umidade.
- Mantenha o sensor de gás em um ambiente com ar limpo. Envie o programa abaixo.
void setup()
{
Serial.begin(9600);
}
void loop()
{
float sensor_volt;
float RS_air; // Get the value of RS via in a clear air
float R0; // Get the value of R0 via in Alcohol
float sensorValue;
/*--- Get a average data by testing 100 times ---*/
for(int x = 0 ; x < 100 ; x++)
{
sensorValue = sensorValue + analogRead(A0);
}
sensorValue = sensorValue/100.0;
/*-----------------------------------------------*/
sensor_volt = sensorValue/1024*5.0;
RS_air = (5.0-sensor_volt)/sensor_volt; // omit *RL
R0 = RS_air/60.0; // The ratio of RS/R0 is 60 in a clear air from Graph (Found using WebPlotDigitizer)
Serial.print("sensor_volt = ");
Serial.print(sensor_volt);
Serial.println("V");
Serial.print("R0 = ");
Serial.println(R0);
delay(1000);
}
- Em seguida, abra o monitor serial da IDE do Arduino. Anote o valor de R0, pois ele precisa ser usado no próximo programa. Anote o R0 depois que a leitura estabilizar.
Substitua o R0 abaixo pelo valor de R0 testado acima . Exponha o sensor a qualquer um dos gases listados acima.
void setup() {
Serial.begin(9600);
}
void loop() {
float sensor_volt;
float RS_gas; // Get value of RS in a GAS
float ratio; // Get ratio RS_GAS/RS_air
int sensorValue = analogRead(A0);
sensor_volt=(float)sensorValue/1024*5.0;
RS_gas = (5.0-sensor_volt)/sensor_volt; // omit *RL
/*-Replace the name "R0" with the value of R0 in the demo of First Test -*/
ratio = RS_gas/R0; // ratio = RS/R0
/*-----------------------------------------------------------------------*/
Serial.print("sensor_volt = ");
Serial.println(sensor_volt);
Serial.print("RS_ratio = ");
Serial.println(RS_gas);
Serial.print("Rs/R0 = ");
Serial.println(ratio);
Serial.print("\n\n");
delay(1000);
}
Agora, podemos obter a concentração do gás a partir da figura abaixo.

De acordo com a figura, podemos ver que a concentração mínima que podemos testar é 0,1mg/L e a máxima é 10mg/L. Entretanto, não podemos fornecer uma fórmula porque a relação entre a razão e a concentração é não linear. Mas também podemos converter mg/L para ppm, pode ser conveniente para observarmos o valor.
Brincar com Raspberry Pi (com Grove Base Hat para Raspberry Pi)
Hardware
- Passo 1. Itens usados neste projeto:
| Raspberry pi | Grove Base Hat para RasPi | Grove - Gas Sensor(MQ3) |
|---|---|---|
|
|
|
| Adquira agora | Adquira agora | Adquira agora |
- Passo 2. Conecte o Grove Base Hat ao Raspberry.
- Passo 3. Conecte o Grove - Gas Sensor(MQ3) à porta A0 do Base Hat.
- Passo 4. Conecte o Raspberry Pi ao PC através de um cabo USB.

No passo 3 você pode conectar o Grove - Gas Sensor(MQ3) a qualquer Porta Analógica, mas certifique-se de alterar o comando com o número de porta correspondente.
Software
- Passo 1. Siga Setting Software para configurar o ambiente de desenvolvimento.
- Passo 2. Baixe o arquivo-fonte clonando a biblioteca grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- Passo 3. Execute os comandos abaixo para escrever o código.
cd grove.py/grove
nano grove_gas_sensor_mq3.py
Então você deve copiar o seguinte código para este arquivo e pressionar ++ctrl+x++ para sair e salvar.
import math
import sys
import time
from grove.adc import ADC
class GroveGasSensorMQ3:
def __init__(self, channel):
self.channel = channel
self.adc = ADC()
@property
def MQ3(self):
value = self.adc.read(self.channel)
return value
Grove = GroveGasSensorMQ3
def main():
if len(sys.argv) < 2:
print('Usage: {} adc_channel'.format(sys.argv[0]))
sys.exit(1)
sensor = GroveGasSensorMQ3(int(sys.argv[1]))
print('Detecting...')
while True:
print('Gas value: {0}'.format(sensor.MQ3))
time.sleep(.3)
if __name__ == '__main__':
main()
- Passo 4. Execute os comandos abaixo para rodar o código.
python grove_gas_sensor_mq3.py 0
Se tudo correr bem, você conseguirá ver o seguinte resultado
pi@raspberrypi:~/grove.py/grove $ python grove_gas_sensor_mq3.py 0
Detecting...
Gas value: 564
Gas value: 564
Gas value: 564
Gas value: 565
Gas value: 565
Gas value: 565
Gas value: 566
Gas value: 566
Gas value: 566
Gas value: 566
Gas value: 566
^CTraceback (most recent call last):
File "grove_gas_sensor_mq3.py", line 69, in <module>
main()
File "grove_gas_sensor_mq3.py", line 66, in main
time.sleep(.3)
KeyboardInterrupt
Você pode sair deste programa simplesmente pressionando ++ctrl+c++.
Você deve ter notado que, para a porta analógica, o número do pino na serigrafia é algo como A0, A1, entretanto no comando usamos os parâmetros 0 e 1, exatamente como na porta digital. Portanto, certifique-se de conectar o módulo na porta correta, caso contrário pode haver conflitos de pinos.
Brincar com Wio Terminal (ArduPy)
Hardware
- Passo 1. Prepare os itens abaixo:
| Wio Terminal | Grove - Gas Sensor(MQ3) |
|---|---|
|
|
| Adquira agora | Adquira agora |
-
Passo 2. Conecte o Grove - Gas Sensor(MQ3) à porta A0 do Wio Terminal.
-
Passo 3. Conecte o Wio Terminal ao PC através de um cabo USB Tipo-C.

Software
-
Passo 1. Siga ArduPy Getting Started para configurar o ambiente de desenvolvimento ArduPy no Wio Terminal.
-
Passo 2. Certifique-se de que o firmware ArduPy está gravado no Wio Terminal. Para mais informações, por favor siga aqui.
aip build
aip flash
- Passo 3. Copie o código a seguir e salve-o como
ArduPy-mq3.py:
from machine import Pin, ADC
from machine import LCD
from machine import Sprite
import time
mq3 = ADC(Pin(13))
lcd = LCD()
spr = Sprite(lcd) # Create a buff
def main():
spr.createSprite(320, 240)
while True:
spr.setTextSize(2)
spr.fillSprite(spr.color.BLACK)
spr.setTextColor(lcd.color.BLUE)
spr.drawString("MQ3 Reading", 90, 10)
spr.drawFastHLine(40, 35, 240, lcd.color.DARKGREY)
spr.setTextColor(lcd.color.WHITE)
spr.drawString("- Current Level: ", 20, 50)
spr.drawNumber(mq3.read(), 220,50)
spr.pushSprite(0,0)
time.sleep_ms(500)
print("MQ3 Gas Sensor Reading is: ", mq3.read())
if __name__ == "__main__":
main()
- Passo 4. Salve o
ArduPy-mq3.pyem um local que você conheça. Execute o seguinte comando e substitua<YourPythonFilePath>pelo local do seuArduPy-mq3.py.
aip shell -n -c "runfile <YourPythonFilePath>"
# Example:
# aip shell -n -c "runfile /Users/ansonhe/Desktop/ArduPy-mq3.py"
- Passo 5. Veremos o valor do gás sendo exibido no terminal como abaixo, e exibido na tela LCD do Wio Terminal.
ansonhe@Ansons-Macbook-Pro ~:aip shell -n -c "runfile /Users/ansonhe/Desktop/ArduPy-mq3.py"
Positional argument (/dev/cu.usbmodem1413101) takes precedence over --open.
Connected to ardupy
MQ3 Gas Sensor Reading is: 609
MQ3 Gas Sensor Reading is: 611
MQ3 Gas Sensor Reading is: 614
MQ3 Gas Sensor Reading is: 616
MQ3 Gas Sensor Reading is: 618
MQ3 Gas Sensor Reading is: 621
MQ3 Gas Sensor Reading is: 623
MQ3 Gas Sensor Reading is: 625
MQ3 Gas Sensor Reading is: 627
MQ3 Gas Sensor Reading is: 628
MQ3 Gas Sensor Reading is: 629
MQ3 Gas Sensor Reading is: 632

Visualizador de Esquemático Online
Recursos
Leitura / Referências Sugeridas
- Como escolher um Sensor de Gás
- O que é LEL
Esquemático
Datasheet
Suporte Técnico & Discussão de Produto
Atualizável para Sensores Industriais
Com o controlador S2110 e o registrador de dados S2100 da SenseCAP, você pode facilmente transformar o Grove em um sensor LoRaWAN®. A Seeed não apenas ajuda você na prototipagem, mas também oferece a possibilidade de expandir seu projeto com a série SenseCAP de robustos sensores industriais.
O invólucro IP66, a configuração via Bluetooth, a compatibilidade com a rede global LoRaWAN®, a bateria interna de 19 Ah e o forte suporte do APP fazem do SenseCAP S210x a melhor escolha para aplicações industriais. A série inclui sensores para umidade do solo, temperatura e umidade do ar, intensidade de luz, CO2, EC e uma estação meteorológica 8 em 1. Experimente o mais recente SenseCAP S210x em seu próximo projeto industrial de sucesso.








