Sensor de Gás MQ-135 e a Família de sensores MQ

Sensor de Gás MQ-135 e a família MQ de detectores de Gás 

O sensor gás MQ-135 é capaz de detectar a concentração de vários gases tóxicos em um ambiente tais como: amônia, dióxido de carbono, benzeno, óxido nítrico e também fumaça ou álcool. Neste tutorial vamos aprender como usa o módulo sensor de gás MQ-135 junto a um Arduino.  Esse tutorial também pode ser aplicado para outros sensores de gás, com alguns ajustes, tais como: MQ-2, MQ-3, MQ-4, MQ-5, MQ-6, MQ-7, MQ-8,MQ-9, etc.

Detector de gás / sensor de gás MQ-135
Detector de gás / sensor de gás MQ-135

[toc]

A importância dos sistemas de proteção

Os processos industriais envolvem o uso e fabricação de substâncias altamente perigosas, especialmente produtos inflamáveis, tóxicos e oxidantes. Os gases fazem parte desses ambientes como participantes de reações, catalisadores ou produtos finais. Outras vezes são resíduos ou subprodutos indesejáveis. Escapes ocasionais de gás ocorrem e criam um perigo potencial para a planta industrial, seus funcionários e pessoas que vivem nas proximidades. Incidentes e acidentes em todo o mundo, envolvendo asfixia, intoxicação, explosões e perdas de vidas é um lembrete constante desse problema.

Por isso, sistemas automáticos de detecção de gases são fundamentais para a proteção das pessoas envolvidas nesses processos. É necessário que tenhamos sensores adequados e que sejam posicionados em lugares estratégicos, de preferência com redundância.

É claro que esse tipo de proteção não se limita a industria. Podemos ver facilmente a aplicação de sensores de gás e fumaça em uma cozinha residencial ou em ambientes públicos. Enfim, podemos usar a automação a favor da vida, evitando assim acidentes.

Sensor de gás MQ

Existe uma grande gama de sensores de gás, estre eles, temos os MQ's. Esses sensores de detecção modernos e de baixo custo para gás combustível, são do tipo eletro-catalítico. Eles são feitos de uma bobina de fio de platina aquecido eletricamente, coberto primeiro com uma base de cerâmica, tais como alumina e, em seguida, com um revestimento final exterior do catalisador de paládio ou ródio disperso em um substrato de tório.

- Por dentro do sensor MQ

Na figura a seguir podemos entender um pouco melhor como é por dentro de um sensor de gás MQ.

Dentro de um sensor de gás MQ

Na vertical temos um resistência elétrica que aquece o ar. Essa resistência é ligada através da alimentação dos pinos H's, um vai no 5V e o outro no GND (0V).

De A para B temos nosso sensor de gás. Em uma atmosfera onde possa haver gás poluidor, a resistência do sensor de gás diminui conforme a concentração do gás poluente aumenta. Ou seja, quanto mais gás poluente, menor será a resistência entre A e B. Podemos conferir as variação da resistência conforme a concentração de gases no gráfico à seguir retirado da folha de dados do MQ-135:

Comportamento da resistência entre A e B conforme a concentração de alguns gases. para o sensor de gás MQ135
Comportamento da resistência entre A e B conforme a concentração de alguns gases.

Sendo assim, podemos montar um circuito onde temos uma tensão que será proporcional à quantidade de gases  poluentes.

Esquema interno de um sensor de gás MQ 135
Esquema interno de um sensor de gás MQ

Conforme a resistência entre A e B diminuir (mais gases poluentes), maior será a tensão em cima do resistor RL. Falamos um pouco sobre esse tipo de circuito, o divisor de tensão, no tutorial sobre o sensor de luz LDR.

- Encapsulamento dos sensores MQ

Em geral, os sensores da família MQ possuem o formato como o da figura a seguir:

Encapsulamento de um MQ-135
Encapsulamento de um sensor de gás MQ-135

Como você pode ver, na parte de baixo temos alguns pinos. Ao todo são seis. Esse seis pinos dão acesso ao circuito interno já explicado.

Dentro do encapsulamento do MQ-135
Dentro do encapsulamento do sensor de gás MQ-135

Para facilitar o uso, podemos adquirir esse sensores junto a uma placa que já conta com o circuito necessário para seu pronto funcionamento alem de contar com um circuito comparador.

Família de sensores de gás MQ
Família de sensores de gás MQ

Lista de sensores de Gás

Aqui está a lista de alguns dos sensores de gás que você pode encontrar. Você pode escolher o mais adequado para o seu projeto.

Nome do Sensor  Sensível para
MQ-2 Detecção de gases inflamáveis: GLP, Metano, Propano, Butano, Hidrogênio, Álcool, Gás Natural, outros inflamáveis e fumaça.
MQ-3 Detecção de Álcool , Etanol e fumaça.
MQ-4 Detecção de Metano, Propano e Butano.
MQ-5 Detecção de GLP e gás natural
MQ-6 Detecção de gás GLP (Gás de Cozinha), Propano, Isobutano e Gás Natural Liquefeito
MQ-7 Detecção do gás Monóxido de Carbono
MQ-8 Detecção do gás hidrogênio
MQ-9 Detecção de Monóxido de Carbono e gases inflamáveis
MQ-131 Detecção de ozônio
MQ-135 Detecção de Gás Amônia, Óxido Nítrico, Álcool, Benzeno, Dióxido de Carbono e Fumaça
MQ-136 Detecção de Gás Sulfídrico H2S
MQ-137 Detecção de Gás Amônia
MQ-138 Detecção de n-hexano, benzeno, NH3, álcool, fumaça, CO, etc.

Módulo sensor de Gás MQ-135 - Gases tóxicos e Fumaça

O modulo utilizado, MQ-135 funciona bem detecção de fumaça e outros gases tóxicos, especialmente amônia, vapor de sulfeto e benzeno. Sua capacidade de detectar vários gases nocivos e menor custo faz do MQ-135 uma escolha ideal de diferentes aplicações de detecção de gás.

Ele pode detectar concentrações na faixa de 10 a 1.000ppm (partículas por milhão), possuindo um range de tensão de 0 - 5V. Os módulos do MQ135 são capazes de operar na faixa de temperatura de -10 a 70ºC, consumindo uma corrente aproximada de 150mA.

mq-135
Módulo sensor de amônia MQ-135

O módulo também conta com um potenciômetro para regular a sensibilidade do  sensor, girando ele para um dos lados o sensor ficara mais sensível aos gases.

Atrás dp Sensor de Gás MQ-135 - Gases tóxicos e Fumaça
Por trás do módulo Sensor de Gás MQ-135

Mãos a Obra - Desenvolvimento do Projeto

Componentes necessários

Montando o projeto

A montagem do circuito é bem simples e direta. Basta seguir o esquemático abaixo.

Esquema de montagem do Arduino com o Sensor de Gás MQ-135 - Gases tóxicos e Fumaça

O modulo MQ 135 possui 4 pinos: dois pinos para alimentação (Vcc e GND) e dois pinos para emissão dos sinais elétricos, sendo um sinal digital (D0) e o outro um sinal analógico (A0). Para realizar a montagem, iremos conectar os pinos na seguinte ordem:

Pinos do Sensor de Gás MQ-135 - Gases tóxicos e Fumaça

Em nossa experiência conectamos os pinos do sensor direto na placa Uno, sem o auxilio do protoboard, tal como indicado na tabela anterior. Veja como ficou o nosso montado:

Projeto montado na prática com um Arduino Uno e Sensor de Gás MQ-135 - Gases tóxicos e Fumaça

Programando

Segue o código que utilizamos nesse projeto para fazer a detecção de gás no ambiente.

#define MQ_analog A2
#define MQ_dig 7

int valor_analog;
int valor_dig;

void setup() {
   Serial.begin(9600);
   pinMode(MQ_analog, INPUT);
   pinMode(MQ_dig, INPUT);
}

void loop() {
   valor_analog = analogRead(MQ_analog); 
   valor_dig = digitalRead(MQ_dig);

   Serial.print(valor_analog);
   Serial.print(" || ");
   if(valor_dig == 0)
     Serial.println("GAS DETECTADO !!!");
   else 
     Serial.println("GAS AUSENTE !!!");
   delay(500);

}

Colocando para funcionar

Primeiramente precisamos deixar que a resistência interna do sensor de gás esquente o suficiente para que as medições se estabilizem. Espere por 3 minutos. Chamamos essa espera de tempo de queima. Explicaremos isso mais a frente.

Após deixar o sensor de gás esquentar, vamos testa-lo forçando o ambiente com um fosforo/isqueiro para gerar CO2 (fumaça). O monitor serial irá indicar o valor analógico lido pelo sensor e também indicara se o gás foi detectado ou não, isso é uma resposta ao sinal digital emitido pelo módulo, e esse será calibrado conforme nos quisermos ao girar o potenciômetro. Para calibrar a detecção digital vamos estimular o sensor com o gás do isqueiro e quando acharmos que a estimulação seja suficiente, giramos o potenciômetro até que ele altere o estado entre NÃO DETECTADO <-> DETECTADO, assim esse passa a ser o novo ponto de referencia digital.

Testando o Sensor de Gás MQ-135 - Gases tóxicos e Fumaça para calibrar
Sensor de gás sendo exposto à fumaça da queima do fósforo

As imagens a seguir mostram a sequência que o sensor digital teve alternando o estado de LOW <->HIGH quando o valor analógico estava próximo de 82, neste exemplo eu mantive o fosforo acesso por alguns segundos próximo ao sensor apenas. Veja que na sequência de valores analógicos chega até 380, então de acordo com a duração e proximidade do fosforo ao sensor podemos ir calibrando o sensor digital dele.

Detectando a fumaça
Durante a detecção da fumaça
Deixando de detectar a fumaça

Entendo a fundo

Software

– Nomeando os pinos utilizados através da diretiva #define

O primeiro passo do programa consiste fazer o uso das diretivas #define para nomear os pinos que serão utilizados no projeto, ou seja, o pinos que estarão conectados ao sensor apresentado anteriormente. Sendo assim, neste caso temos que o pino de entrada analógica do Arduino UNO A2 passa a ser identificado no código através do nome MQ_analog, enquanto, o pino de entrada digital 7 do mesmo será referenciado no código pelo nome MQ_dig.

#define MQ_analog A2
#define MQ_dig 7

– Declarando a variável responsável por armazenar o estado do sensor

Em seguida, declaramos duas variáveis para armazenar os valores que forem lidos pelas portas do Arduino UNO, sendo uma delas do tipo inteiro, para a parte analógica e a outra, booleana, para a parte digital.

int valor_analog;
bool valor_dig;

– Configurando o sistema

Dentro da função void setup() vamos configurar as portas do Arduino e a comunicação serial. Vamos iniciar a comunicação serial numa taxa de 9600 bits por segundo e as portas utilizadas devem ser setadas como ENTRADAS (INPUT), afinal eles irão receber sinais elétricos para o Arduino.

void setup() {
   Serial.begin(9600);
   pinMode(MQ_analog, INPUT);
   pinMode(MQ_dig, INPUT);
}

– Rodando o programa principal

Dentro do void loop() teremos o programa rodando em loop infinito, sendo assim iremos faremos a leitura das portas do Arduino e imprimiremos na serial os valores para que possamos ter parâmetros mensuráveis. Com a função analogRead() fazemos a leitura analógica da porta A2. Utilizaremos esse valor apenas como parâmetro para calibrar a sensibilidade digital do sensor.

valor_analog = analogRead(MQ_analog);

Utilizando a função digitalRead() temos a leitura booleana do sensor, quando a resposta for 1 o gás esta sendo detectado, e quando for 0 o gás está ausente. Veremos mais adiante que a sensibilidade do sensor precisa ser ajustada com o potenciômetro do modulo.

valor_dig = digitalRead(MQ_dig);

Por fim fazemos a impressão dos valores lidos na serial, para que assim, possamos ver o resultado das leituras.

if(valor_dig == 0)
 Serial.println("GAS DETECTADO !!!");
 else 
 Serial.println("GAS AUSENTE !!!");
Detectando o gás
Detectando o gás

Hardware

– Calibrando o módulo digital

Como dito antes é necessário calibrar o sensor digital do módulo MQ 135. Para isso rode o programa anterior e abra o monitor serial e, com auxilio de uma pequena chave Philips, gire o potenciômetro na parte de trás do módulo até que o você encontre um ponto que altere de 0 pra 1. O valor analógico irá servir como base para mediar a sensibilidade do sensor.

Atrás do sensor de gás e fumaça MQ 135 - Resistência de calibração
Atrás do módulo MQ 135 - Resistência de calibração

- Tempo de queima - Burn-in time

Para que o sensor esteja pronto para fazer as medições é necessário aguardar um tempo denominado como Burn -in time (Tempo de queima) ou preheat (pré aquecimento). Esse tempo varia de modelo para modelo, mas para testes mais simples, como para familiarizar com o sensor, podemos aguardar cerca de 3 minutos. Esse é o tempo necessário para que a resistência do sensor aqueça até a temperatura ideal de funcionamento do sensor. Durante esse período as medições podem oscilar muito.

Para aplicações oficiais, tal como implementação de um detector de incêndio, onde precisamos de uma precisão de medição maior e mais confiável,  é recomendado pelos fabricantes que o tempo de queima seja de pelo menos 24 horas. Esse é o tempo necessário para que o sensor alcance a plena estabilização das medições entre os terminais internos A e B.


Considerações finais

Este projeto apresenta uma utilização básica do sensor MQ 135. Esperamos que você tenha gostado deste conteúdo, sinta-se à vontade para nos dar sugestões, críticas ou elogios. Lembre-se de deixar suas dúvidas nos comentários abaixo.

Caso esteja começando com Arduino recomendamos que conheça a Apostila Arduino Básico.