Pular para o conteúdo principal

Grove - Sensor de Gás (MQ3)

pir

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

MQ2Gás combustível, Fumaça
MQ3Vapor de álcool
MQ5GLP, Gás Natural, Gás de Cidade
MQ9Monóxido de Carbono, Gás de Carvão, Gás Liquefeito
dica

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
dica

Para mais detalhes sobre módulos Grove, consulte o Sistema Grove

Especificação

ItemParâmetroMínTípicoMáxUnidade
VCCTensão de trabalho4.955.1V
PHConsumo de aquecimento0.5-750mW
RLResistência de cargaajustável
RHResistência do aquecedor-33-Ω
RsResistência de detecção1-8
ScopeConcentração detectável0.05-10mg/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:

ArduinoSensor de Gás
5VVCC
GNDGND
NCNC
Analog A0SIG

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

ArduinoRaspberryArduPy

pir

pir

pir

cuidado

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.2Base ShieldGrove - Gas Sensor(MQ3)

pir

pir

pir

Adquira AgoraAdquira AgoraAdquira Agora

pir

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.

  1. 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);

}
  1. 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.

pir

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 piGrove Base Hat para RasPiGrove - Gas Sensor(MQ3)

pir

pir

pir

Adquira agoraAdquira agoraAdquira 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.

pir

nota

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
success

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++.

nota

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 TerminalGrove - Gas Sensor(MQ3)

pir

pir

Adquira agoraAdquira 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.

pir

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.py em um local que você conheça. Execute o seguinte comando e substitua <YourPythonFilePath> pelo local do seu ArduPy-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

pir

Visualizador de Esquemático Online

Recursos

Leitura / Referências Sugeridas

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.

Loading Comments...