Pular para o conteúdo principal

Grove - Sensor de Gás (MQ9)

pir

O módulo Grove - Sensor de Gás (MQ9) é útil para detecção de vazamento de gás (em casa e na indústria). Ele é adequado para detectar LPG, CO, CH4. Devido à sua alta sensibilidade e tempo de resposta rápido, as medições podem ser feitas o mais rápido possível. A sensibilidade do sensor pode ser ajustada usando o potenciômetro.

Note

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 geralmente requer um instrumento mais preciso e caro, o que não pode ser feito com um único sensor de gás. Se o objetivo do seu projeto é 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
MQ5LPG, 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 da Seeed, ele irá ajudá-lo a escolher o sensor de gás que melhor se adapta às suas necessidades.

Recursos

  • Ampla faixa de detecção
  • Estável e longa vida útil
  • Resposta rápida e alta sensibilidade
dica

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

Especificação

ItemParâmetroMínTípicoMáxUnidade
VCCTensão de operação4.955.1V
PHConsumo de aquecimento0.5-340mW
RLResistência de cargaajustável
RHResistência do aquecedor-33Ω±5%-Ω
RsResistência de detecção2-20000Ω
Escopo CO/CH4/LPGConcentração de detecção200-1000/10000/10000ppm

Ideias de Aplicação

  • Detecção de vazamento de gás.
  • 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 fazem uso do pino analógico A0. Conecte este módulo à porta A0 do Base Shield.

É possível conectar o módulo Grove diretamente ao Arduino usando jumpers, utilizando a conexão mostrada 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-9, consulte o datasheet fornecido na seção Recursos.

Plataformas Suportadas

ArduinoRaspberry Pi

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 - Sensor de Gás (MQ9)

pir

pir

pir

Adquira AgoraAdquira AgoraAdquira Agora

pir

Conecte o Grove - Sensor de Gás (MQ9) à porta A0 como mostrado na imagem acima.

Detecção de Gás : Exemplo Básico

Neste exemplo, o sensor é conectado ao pino A0. A tensão lida do sensor é exibida. Este valor pode ser usado como um limiar 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 forma de saber a concentração aproximada de gás. De acordo com o datasheet dos sensores MQ9, 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 de ar limpo. Faça o upload do 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 LPG
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/9.9; // The ratio of RS/R0 is 9.9 in LPG gas 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. Então, abra o monitor serial da IDE 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 de gás a partir da figura abaixo.

pir

De acordo com a figura, podemos ver que a concentração mínima que podemos testar é 200ppm e a máxima é 10000ppm, em outras palavras, podemos obter uma concentração de gás entre 0,02% e 1%. Entretanto, não podemos fornecer uma fórmula porque a relação entre a razão e a concentração é não linear.

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(MQ9)

pir

pir

pir

Adquira agoraAdquira agoraAdquira agora
  • Passo 2. Conecte o Grove Base Hat ao Raspberry.
  • Passo 3. Conecte o Grove - Gas Sensor(MQ9) à 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(MQ9) 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_mq9.py

Então você deve copiar o código a seguir neste arquivo e pressionar ++ctrl+x++ para sair e salvar.


import math
import sys
import time
from grove.adc import ADC


class GroveGasSensorMQ9:

def __init__(self, channel):
self.channel = channel
self.adc = ADC()

@property
def MQ9(self):
value = self.adc.read(self.channel)
return value

Grove = GroveGasSensorMQ9


def main():
if len(sys.argv) < 2:
print('Usage: {} adc_channel'.format(sys.argv[0]))
sys.exit(1)

sensor = GroveGasSensorMQ9(int(sys.argv[1]))

print('Detecting...')
while True:
print('Gas value: {0}'.format(sensor.MQ9))
time.sleep(.3)

if __name__ == '__main__':
main()

  • Passo 4. Execute os comandos abaixo para rodar o código.

python grove_gas_sensor_mq9.py 0

success

Se tudo correr bem, você poderá ver o seguinte resultado


pi@raspberrypi:~/grove.py/grove $ python grove_gas_sensor_mq9.py 0
Detecting...
Gas value: 345
Gas value: 348
Gas value: 351
Gas value: 354
Gas value: 357
Gas value: 360
Gas value: 363
Gas value: 365
Gas value: 368
Gas value: 370
^CTraceback (most recent call last):
File "grove_gas_sensor_mq9.py", line 69, in <module>
main()
File "grove_gas_sensor_mq9.py", line 66, in main
time.sleep(.3)
KeyboardInterrupt


Você pode sair deste programa simplesmente pressionando ++ctrl+c++.

nota

Você pode ter notado que, para a porta analógica, o número do pino serigrafado é algo como A0, A1, contudo no comando usamos os parâmetros 0 e 1, exatamente como na porta digital. Portanto, certifique-se de conectar o módulo à porta correta, caso contrário pode haver conflitos de pinos.

Recursos

Leitura Sugerida / Referências

Esquemático

Datasheet

Suporte Técnico & Discussão sobre o 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.

A carcaça IP66, a configuração via Bluetooth, a compatibilidade com a rede global LoRaWAN®, a bateria integrada 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 de 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...