Alarme sensor de gás com o módulo MQ-2
Inclua um importante item de segurança no seu projeto de automação residencial, criando um alarme sensor de gás com o módulo sensor de gás e fumaça MQ-2:
O módulo sensor de gás MQ-2
O sensor MQ-2 (datasheet), é um detector de gás e fumaça que pode indicar a presença de GLP (Gás liquefeito de petróleo, o famoso gás de cozinha), Propano, Metano, Hidrogênio e outros tipos de gases. Seu nível de detecção vai de 300 a 10.000 ppm (partes por milhão), ajustáveis por um potenciômetro na parte de trás do módulo. Um chip comparador LM393 é responsável por ler as informações do sensor e converter essas informações em sinais para o microcontrolador.
A tensão de alimentação do módulo é de 5V e a comunicação com o microcontrolador pode ser feita de duas maneiras : pela saída digital D0 ou pela saída analógica A0. Podemos utilizar a saída digital para simplesmente ligar uma sirene ou acionar um relé que vai fechar/abrir uma porta, cortar o fornecimento de gás, etc. Já a saída analógica informa o nível de concentração de gases detectados pelo sensor. Quanto maior a concentração, maior o nível de sinal na saída analógica A0.
Circuito do sensor com Arduino
A exemplo de outros sensores para Arduino, vamos trabalhar apenas com portas digitais e analógicas, lendo os valores enviados pelo sensor. No nosso circuito de testes, usamos a porta digital 7 para ligação ao pino D0 do módulo, e a porta analógica A2 ligada ao pino A0 do módulo.
As portas digitais 8, 9 e 10 serão utilizadas para acionar um led vermelho e um buzzer (gás detectado), e um led verde no modo normal de operação (sem alarme).
Como estamos trabalhando apenas com portas digitais e analógicas, não vamos precisar de nenhuma biblioteca específica para esse sensor.
No programa, o valor lido da porta analógica (valor_analogico), é comparado com a variável nivel_sensor para determinar em que ponto será acionado o buzzer e a também o led vermelho.
Nos nossos testes, o valor inicial da leitura ficou em 213 , e aumentou rapidamente para 550 na presença de gás. Ajuste o valor de nivel_sensor de acordo com o nível de detecção desejado.
// Programa : Alarme com sensor de gas MQ-2 // Autor : Arduino e Cia // Definicoes dos pinos dos leds e buzzer int pin_led_verm = 8; int pin_led_verde = 9; int pin_buzzer = 10; // Definicoes dos pinos ligados ao sensor int pin_d0 = 7; int pin_a0 = A2; int nivel_sensor = 250; void setup() { // Define os pinos de leitura do sensor como entrada pinMode(pin_d0, INPUT); pinMode(pin_a0, INPUT); // Define pinos leds e buzzer como saida pinMode(pin_led_verm, OUTPUT); pinMode(pin_led_verde, OUTPUT); pinMode(pin_buzzer, OUTPUT); // Inicializa a serial Serial.begin(9600); } void loop() { // Le os dados do pino digital D0 do sensor int valor_digital = digitalRead(pin_d0); // Le os dados do pino analogico A0 do sensor int valor_analogico = analogRead(pin_a0); // Mostra os dados no serial monitor Serial.print("Pino D0 : "); Serial.print(valor_digital); Serial.print(" Pino A0 : "); Serial.println(valor_analogico); // Verifica o nivel de gas/fumaca detectado if (valor_analogico > nivel_sensor) { // Liga o buzzer e o led vermelho, e // desliga o led verde digitalWrite(pin_led_verm, HIGH); digitalWrite(pin_led_verde, LOW); digitalWrite(pin_buzzer, HIGH); } else { // Desliga o buzzer e o led vermelho, e // liga o led verde digitalWrite(pin_led_verm, LOW); digitalWrite(pin_led_verde, HIGH); digitalWrite(pin_buzzer, LOW); } delay(100); }
Você pode verificar o funcionamento do alarme sensor de gás em tempo real, acompanhando o valor das variáveis valor_digital (porta D0) e valor_analogico (porta A0) no serial monitor:
Gostou? Então confira outros posts com módulos aqui mesmo no Arduino e Cia!
Ola, preciso de sua ajuda… Tenho uma assistência de fogões meu cliente quer que eu monte um sistema que ligue a lareira e detecte qualquer fuga de GLP. Isto é, preciso acionar uma solenóide com um botão no controle remoto, acionar a usina de acendimento por 3 segundos em outro botão e LEDs para identificar se ouver fuga de gás. Pode me ajudar? Não tenho conhecimento nenhum sobre o Arduíno, sente assisti muito os tutoriais, e tenho grande conhecimento na elétrica. Quais pecas comprar? Onde comprar? E relação dos comandos para funcionar desta forma citada acima. Desde já agradeço. FC com Deus, Elton 14 9 9788-7766
Boa noite,
Não tenho nenhum projeto pronto para isso, mas se você quiser, posso desenvolver sob encomenda. Por favor utilize o formulário de contato no lado direito da página para conversarmos.
Abraço !
Bom dia quais os valores dos resistores do circuito Arduíno uno sensor mq2.
Obrigado.
Boa tarde,
Pode usar de 330 ohms ou um valor próximo.
Abraço !
Conhece alguma empresa que faça a parte de plástico do detector de fumaça? Pois gostaria de usar esse sensor nos meus detectores….mas só sensor não posso usar…tenho q por ele numa base…assim como são esses que vemos em sistema de incendio…abraços
Boa noite Cristiano,
Conheço sim. Que tipo de plástico você precisa ? Se puder, entre em contato comigo utilizando o formulário no lado direito da página.
Abraço !
Muito bom, parabéns. Sou iniciante, e só havia testado aquele codigo de fazer o led piscar….
Fazia uns 15 dias que procurava um "código comentado" pro sensor MQ-5 ( funcionou perfeitamente no MQ-5 )
-sera que eu posso colocar mais 1 ou 2 sensores "apenas ligando o sensor em paralelo", digo utilizando as mesmas portas/mesmo codigo do arduino ?
-tem ideia se da pra "implementar" um pouco mais:
com um "shield ethernet e xampp" enviar uma mensagem para um E-MAIL pré estabelecido quando tiver presença de gás?
Grato
Bom dia Marcelo,
Utilizar a mesma porta não vai ser possível, utilize uma porta diferente para cada sensor, e altere o código.
Integrar esse projeto com o shield ethernet é possível sim, eu só não consegui ainda tempo para implementar, mas devo fazer isso em breve.
Abraço !
Este projeto também funciona com o MQ-7? Alguém já utilizou?
Desde já grato.
Qual a distância máxima entre o mq2 e o arduino pois no meu projeto tenho uma distância até 10 m. Será que tem algum problema essas distância ? E qual cabo usar?
Bom dia Rafael,
Tente utilizar um cabo de rede (daqueles azuis). Deve funcionar bem para essa distância.
Abraço!
Bom dia amigo, preciso de uma resposta sobre um projeto particular, a cozinha fica a 14 metros da minha central de automação, posso ligar este sensor nesta distancia usando um cabo de rede normal ou a bitola dos fios seria maior?
Bom dia Luciano,
14 metros não é tão longe… eu nunca fiz um teste à essa distância, mas já vi sensores colocados longe do Arduino, utilizando um cabo de rede (desses azuis) para ligação.
Abraço!
olá Amigo, conseguir realizar o projeto perfeitamente seguindo o seu tutorial, porém eu gostaria de assim como detectar a presença do gás, medir a concentração em ppm dos níveis dos gases e mostrar em um display lcd através do sensor através da porta analógica, sei que o sensor consegue medir concentrações entre 300ppm e 10000ppm, como eu faria a conversão do valor da porta analógica nos valores em ppm para mostrar no lcd. Abraços!!!
Tenho esse mesmo problema, ninguém sabe responder!
Hello :), can you tell me, how do you make this circuit?
I don't find any sensor MQ-2 my Proteus 8 Pro. Please help me for my final project. Sorry for my bad english.
Hi !
I tested with a real MQ-2 sensor. Unfortunately, I don´t have any information for projects using Proteus.
Best regards !
Boa Tarde
Quando eu faço o upload, o sensor funciona, mas as luzes led e o buzzer não. O que pode haver de errado?
Bom dia Igor,
Me parece alguma ligação incorreta. Verifique o circuito, por favor.
Abraço!
hi i have tested my MQ-2 sensor but i follow the steps as shown from ur coding.. but at last it telling me expected unqualified-id before '(' what it is mean
Hey!
Seems like a typo problem… Do you checked the code ?
Regards!
Bom dia, qual programa vc utilizou para desenhar o o esquema?
Bom dia Maria!
Usamos o Fritzing. 🙂
http://fritzing.org/home/
Abraço!
Obrigada, o que eu baixei não me mostra o sensor mq-2, vc incliu?
Olá! Eu também estou procurando pelo arquivo desta part do sensor MQ-2 no Fritzing. Alguém poderia me indicar como conseguir para eu inclui-la no Fritzing? Obrigado!!
Boa noite, que valor é o detectado? Seria ppm? Se não, sabe como faço essa conversãow Obrigada 😉
Oi Thamires,
Eu ainda não fiz um projeto com esse tipo de valor, mas creio que esse post tem o que você precisa:
http://sandboxelectronics.com/?p=165
Abraço!
Você poderia compartilhar o arquivo .fzz cmg?
Oi Maria,
Infelizmente eu não tenho esse arquivo, o componente foi desenhado posteriormente.
Abraço!
Gostaria de saber se esse modulo possui um regulador de tensão. Por exemplo se eu ligar esse modulo a cem metros de distancia consigo manter a tensão necessária para alimenta-lo
Olá!
A essa distância, acho difícil. Que tal montar alguma conexão sem fio, como por exemplo com módulo RF, para fazer a transferência de dados ?
Abraço!
Boa noite, eu montei o circuito o sensor funciona o led fica vermelho mas o Buzzer (no nosso caso auto falante de 0,3W) não faz barulho. Qual poderia ser o problema ?
Oi Vitor,
Coloque um led no lugar do buzzer, veja se funciona. Se funcionar, sugiro que vc use outro tipo de saída de áudio.
Abraço!
Um buzzer é diferente de um altofalante. O acionamento do buzzer é só alimentar (liga tensao ele apita), um altofalante precisa de um sinal (ex. onda quadrada de 1KHz) pra funcionar
Boa tarde, primeiramente queria parabenizar o site por este artigo. Bem, estou usando esse artigo como referencia para meu trabalho na escola, fiz um modelo no simulador fritzing, mas o unico componente q nao achei foi o MQ-2, como eu faço para obte-lo(igual ao da figura)?! Obrigado pela atenção!
Oi Dariel,
Infelizmente eu também não achei este componente no Fritzing, precisei desenhar separadamente.
Abraço!
olá meu caro! parabéns pelo site. esse módulo detecta gasolina também??
Oi Jed!
Obrigado. Eu realmente não testei com gasolina. Segundo informações do fabricante, ele detecta GLP, Metano, Propano, Butano, Hidrogêncio, Álcool, Gás Natural e outros inflamáveis. Talvez o "outros inflamáveis" inclua gasolina, mas eu teria que testar. 🙂
Abraço!
Olá!! Posso utilizar apenas a saída digital?
Oi Rodrigo!
Pode sim. Quando ele detectar gás, vai acionar a saída digital. A regulagem da sensibilidade você faz pelo potenciômetro.
Abraço!
Boa tarde! Meus parabéns pelo projeto!
Gostaria de saber em qual unidade é feita esta medição. Gostaria de exibir a concentração de gás em ppm, é possível?
Obrigado
Oi Arthur,
O sensor apresenta na saída uma variação de tensão correspondente ao gás detectado (entre 300 e 10.000 ppm). Você pode utilizar essa variação de tensão e converter para o valor que você precisa utilizando o comando map: https://www.arduino.cc/en/Reference/Map
Abraço!
Olá, fiz meu projeto como o seu. Testei para álcool e gás natural. Para gás natural não funciona. Tentei ajustar o potenciometro, mas sem sucesso. O que poderia ser?
Oi Mauro,
o sensor de álcool é o MQ-3, e o de gás e o MQ-2, que está descrito neste post. São sensores diferentes, creio q vc tenha o MQ-3.
Abraço!
Você vende a placa com um sensor MQ-138?
Caro Vendedor,
Você vende a placa com um detector MQ-138?
Grato.
Boa noite,
Infelizmente não tenho esse modelo.
Abraço!
Bom dia,
Eu ja montei o circuito e inseri o código más por algum motivo o monitor serial(A0) está dando 477 diretamente,o led verde não apaga e o buzzer não para de apitar,qual seria o problema?
Oi Bruno,
Você tentou girar o potenciômetro pra ver se ele pára de apitar ? Talvez esteja na sensibilidade máxima.
Abraço!
Esse sensor ou algum outro pode diferenciar tipos diferentes de gases?
Boa noite,
acho que esse link pode te ajudar: http://playground.arduino.cc/Main/MQGasSensors
Abraço!
Olá, estou desenvolvendo um sistema de detecção de gás. Você poderia me informar como este sensor faz a detecção de cada gás?
Eu procurei o datasheet dele,mas preciso de mais informações.
Desde já agradeço.
Boa noite,
acho que esse link pode te ajudar: http://playground.arduino.cc/Main/MQGasSensors
Abraço!
Excelente post. Estou fazendo um trabalho na faculdade e ele funcionou perfeitamente, porém gostaria de utilizar um cooler e controlar a rotação conforme a concentração. Teria como?
Bom dia,
Tem sim, não sei qual tipo de cooler vc vai utilizar, mas converta o valor da porta analógica para um valor entre 0 e 100 utilizando o comando map, e depois use esse valor convertido para acionar a saída do cooler.
Abraço!
Bom dia,
Gostaria de saber como configurar o sensor para medir diferentes gases. Eu sei que é com o potenciômetro na parte de trás do sensor, mas como sei qual gás estou medindo? Como fazer esse ajuste?
Agradeço desde já.
Boa noite,
O potenciômetro serve apenas para ajustar a sensibilidade do módulo… realmente não sei te dizer se dá pra diferenciar o tipo de gás com esse sensor.
Abraço!
Boa tarde,
Gostaria de saber se alguém pode me informar a especificação de distância na sensibilidade máxima do MQ 2? Por exemplo, em uma cozinha ambiente aberto de 20 m² é necessário mais de um sensor ou não?
Boa tarde,
Gostaria de saber se alguém sabe a especificação do alcance (em metros ou metros²) do MQ2 configurado na sensibilidade máxima? Por exemplo em uma cozinha de 20 m² é necessário apenas um sensor ou mais de um.
Boa tarde!
Como eu faço para liga o modulo relé, diretamente com o sensor MQ2?
Boa noite,
Gostaria de saber se esse nivel de sensor que aparece na porta A0 ja da o valor em ppm? Se nao for como se calculo com esse valor apresentado? GRATO.
Boa tarde. Sabe como faço para converter o valor analogico para ppm?
Fiz exatamente como está no projeto e não funcionou.
amigo aqui na industria estamos querendo detectores de gas em cada ambiente temos 7 ao todo gostaria de saber qual arduino comprar e se tem como monitorar esses sensores todos ao mesmo tempo irei usar o sensor mq135 pois como é uma industria de frios e temos camaras refrigeradas com freon e amonia obrigado
Luciano Corso
Olá, encontrei sei site pelo mercado livre e gostaria de saber se tem como fazer um programa que sinalize no celular quando tiver vazamento.
Obs: pretendo comprar todos os matérias com vocês.
Oi Rafaella,
Podemos desenvolver esse código para você. Utilize o formulário de contato no lado direito da página e conversamos por email.
Abraço!
Olá, gostaria de saber se tem como temporizar o tempo de leitura do sensor, por exemplo: detectar por 2 segundos gas e depois acionar a proteção, ou por % de concentraçã de gas no local… tem como me ajudar precisa dessa ajuda.
Como posso ter mostrar a concentração de metano em PPM?
Desde já agradeço!
Bom dia! A porta Digital possui que utilidade? Uma vez que mesmo estando desconectada do PIN D7 o sensor mostrará os valores de gás da mesma forma.
Boa noite,
A porta digital assume o valor 0 quando o sensor detecta a presença de gás e o valor 1 quando não detecta.
Abraço!
Adilson
Vitor boa tarde cara, gostei do material que você forneceu para realizar os testes com sensor MQ2.
Mas na verdade gostaria de uma ajuda, estou desenvolvendo um trabalho para ser apresentado no TCC, gostaria de sasber se pode me ajudar em um certo ponto.
No caso em especial seria para acionamento do sensor, gostaria de saber se tem algum calculo especifico que eu possa fazer para determinar o acionamento, como você disse a saída D0 vai de 0 a 5v mas tem como eu saber por exemplo qual é a leitura do sensor em 2v, 3v, qual seria a leitura, ficaria entre 500, 600.
Esse valor de 150 foi para 700, o que seria? Tensão, corrente?
Sera que poderia me dar essa força para poder finalizar esse trabalho.
Meu email é [email protected]
Se puder dar essa força eu agradeço
sei que é um pouco tarde para responder essa pergunta, mas voce pode incrementar o código, ja sabendo que o sensor mede de 300 a 10000 ppm, entao instancie no codigo:
int valor = 0; //Armazena valor lido do sensor, entre 0 e 1023
float sensor = 1; //Valor de lido começa em 1
e no loop crie
// Le o valor – digital – do sensor
valor = digitalRead(A7);
// Converte o valor lido do sensor
sensor = map(valor, 1, 1023, 330, 10000); //mapeia a resistencia da porta do sensor transformando em leitura ppm
Serial.print(valor); // imprime o valor lido na serial
Só uma dúvida.
O valor de 250 que foi colocado no código, foi escolhido ao acaso?
Não é para colocar 300, que é o valor mínimo de detecção?
meu projeto utiliza os sensores da familia Mq soq n sei como irei colocar todos os sensores no arduino uno poderia me ajudar cm essa duvida /?
Na descrição do sensor de gás você disse que é possível cortar o fornecimento de gás. Poderia me explicar melhor como tal processo seria feito?
Boa noite,
Você pode usar por exemplo uma válvula de gás controlada por solenóide, e acionar essa válvula com um relé.
Abraço!
Adilson
Montei o circuito idêntico ao do post porém a saída do pino D0 é sempre 0 (zero) e
o led da saida digital está sempre aceso.
Oi José,
Você ajustou a sensibilidade do sensor pelo potenciômetro? Se você já fez isso, talvez o seu sensor esteja com problemas.
Abraço!
Adilson