- Sensores de gás da série MQ
- Preparando seu Hardware:
- Abordagem para medir PPM de sensores de gás MQ:
- Calculando o valor de Ro no ar puro:
- Meça o valor de Rs:
- Relacionando a razão Rs / Ro com PPM:
- Programa para calcular PPM usando sensor MQ:
- Mostrando o valor PPM no hardware com Arduino e MQ-137:
Desde a era industrial, nós, a humanidade, temos nos desenvolvido rapidamente. A cada progresso, também poluímos nosso meio ambiente e, eventualmente, o degradamos. Agora o aquecimento global é uma ameaça alarmante e até mesmo o ar que respiramos está ficando crítico. Portanto, o monitoramento da qualidade do ar também começou a ganhar importância. Portanto, neste artigo, aprenderemos como usar qualquer sensor de gás da série MQ com Arduino e mostraremos a saída em PPM (partes por milhão). PPM também é expresso em miligramas por litro (mg / L). Esses sensores estão comumente disponíveis e também são confiáveis para medir diferentes tipos de gás mostrados abaixo
Sensores de gás da série MQ
- Dióxido de carbono (CO2): MG-811
- Monóxido de carbono (CO): MQ-9
- Compostos orgânicos voláteis totais (TVOCs): CCS811
- Dióxido de carbono equivalente (eCO2): CCS811
- Óxido de metal (MOX): CCS811
- Amônia: MQ-137
- Qualidade do ar: MQ-135
- GLP, álcool, fumo: MQ2
Já usamos MQ2 para detecção de fumaça e MQ-135 para projeto de monitoramento de qualidade do ar. Aqui, vou usar o sensor MQ-137 da sainsmart para medir a amônia em ppm. Com o sensor em mãos, percorri todos os tutoriais disponíveis e descobri que não existe uma documentação adequada sobre como medir o gás em ppm. A maioria dos tutoriais lida apenas com os valores analógicos ou introduz algumas constantes que não são confiáveis para medir todos os tipos de gás. Então, depois de brincar online por um longo tempo, finalmente descobri como usar esses sensores de gás da série MQ para medir ppm usando o Arduino. Estou explicando as coisas do fundo, sem nenhuma biblioteca, para que você possa usar este artigo para qualquer sensor de gás disponível com você.
Preparando seu Hardware:
Os sensores de gás MQ podem ser adquiridos como um módulo ou apenas como um sensor sozinho. Se o seu objetivo é medir apenas ppm, então é melhor comprar o sensor sozinho, pois o módulo é bom para usar apenas o pino digital. Portanto, se você já comprou o módulo, deve realizar um pequeno hack que será discutido mais adiante. Por enquanto, vamos supor que você comprou o sensor. A pinagem e a conexão do sensor são mostradas abaixo
Como você pode ver, você só precisa conectar uma extremidade de 'H' para fornecer e a outra extremidade de 'H' para aterrar. Em seguida, combine os A's e os B's. Conecte um conjunto para fornecer tensão e o outro para seu pino analógico. O resistor R L desempenha um papel muito importante no funcionamento do sensor. Portanto, anote qual valor você está usando, um valor de 47k é recomendado.
Se você já comprou um módulo, você deve rastrear seus traços de PCB para encontrar o valor de seu R L na placa. Grauonline já fez esse trabalho para nós e o diagrama do circuito da placa do sensor de gás MQ é fornecido abaixo.
Como você pode ver, o resistor R L (R2) está conectado entre o pino Aout e o aterramento, portanto, se você estiver tendo um módulo, o valor de R L pode ser medido usando um multímetro no modo de resistência entre o pino Vout e o pino Vcc de o módulo. No meu sensor de gás sainsmart MQ-137, o valor de RL era 1K e estava localizado aqui conforme mostrado na imagem abaixo.
No entanto, as reivindicações do Web site que fornece um pote variável de R L que não é verdade, como você pode ver claramente no diagrama de circuito, o pote é usado para definir a tensão variável para op-amp e não tem nada a ver com R L. Portanto, temos que soldar manualmente o resistor SMD (1K) mostrado acima e temos que usar nosso próprio resistor no aterramento e no pino Vout que atuará como RL. O melhor valor para RL será 47K conforme sugerido pelo datasheet, portanto, usaremos o mesmo.
Abordagem para medir PPM de sensores de gás MQ:
Agora que sabemos o valor de R L, vamos continuar como realmente medir o ppm desses sensores. Como todos os sensores, o lugar para começar é sua folha de dados. A folha de dados MQ-137 é fornecida aqui, mas certifique-se de encontrar a folha de dados correta para o seu sensor. Dentro da folha de dados, precisamos apenas de um gráfico que será plotado em relação a (Rs / Ro) VS PPM, este é o que precisamos para nossos cálculos. Portanto, gabar-se e mantê-lo em algum lugar acessível. O do meu sensor é mostrado abaixo.
Acontece que o sensor MQ137 pode medir NH3, C2H6O e até mesmo CO. Mas, aqui estou interessado apenas nos valores de NH3. No entanto, você pode usar o mesmo método para calcular ppm para qualquer sensor de sua preferência. Este gráfico é a única fonte para encontrarmos o valor de ppm e se pudéssemos calcular de alguma forma a proporção de Rs / Ro (eixo X), podemos usar este gráfico para encontrar o valor de ppm (eixo Y). Para encontrar o valor de Rs / Ro, precisamos encontrar o valor de Rs e o valor de Ro. Onde Rs é a resistência do sensor na concentração de gás e Ro é a resistência do sensor em limpar senhor.
Sim… este é o plano, vamos ver como podemos nos safar com isso….
Calculando o valor de Ro no ar puro:
Observe que no gráfico o valor de Rs / Ro é constante para o ar (linha azul grossa), então podemos usar isso a nosso favor e dizer que quando o sensor está trabalhando em ar puro o valor de Rs / Ro será de 3,6 consulte a imagem abaixo
Rs / Ro = 3,6
Na folha de dados, também temos uma fórmula para calcular o valor de Rs. A fórmula é mostrada abaixo. Se você estiver interessado em saber como esta fórmula é derivada, você pode ler através dos sistemas de jay con, eu também gostaria de agradecer a eles por me ajudarem a resolver isso.
Nesta fórmula o valor de Vc é a nossa tensão de alimentação (+ 5V) e o valor de R L é o que já calculamos (47K para o meu sensor). Se escrevermos um pequeno programa Arduino, também poderíamos encontrar o valor de V RL e finalmente calcular o valor de Rs. Eu dei um programa Arduino abaixo que lê a tensão analógica (V RL) do sensor e calcula o valor de Rs usando esta fórmula e finalmente o exibe no monitor serial. O programa é bem explicado na seção de comentários, portanto, estou pulando sua explicação aqui para manter este artigo curto.
/ * * Programa para medir o valor de R0 para um RL conhecido em condição de ar fresco * Programa por: B.Aswinth Raj * Site: www.circuitdigest.com * Data: 28-12-2017 * / // Este programa funciona melhor em uma sala de ar fresco com temperatura Temp: 20 ℃, Umidade: 65%, concentração de O2 21% e quando o valor de Rl é 47K # define RL 47 // O valor do resistor RL é 47K configuração vazia () // Funciona apenas uma vez {Serial.begin (9600); // Inicializa o COM serial para exibir o valor} void loop () {float analog_value; float VRL; float Rs; float Ro; for (int test_cycle = 1; test_cycle <= 500; test_cycle ++) // Lê a saída analógica do sensor 200 vezes {analog_value = analog_value + analogRead (A0); // adicione os valores para 200} analog_value = analog_value / 500.0; // Pega o VRL médio = analog_value * (5.0 / 1023.0);// Converta o valor analógico para tensão // RS = ((Vc / VRL) -1) * RL são as fórmulas que obtivemos na folha de dados Rs = ((5,0 / VRL) -1) * RL; // RS / RO é 3,6 conforme obtido do gráfico da folha de dados Ro = Rs / 3,6; Serial.print ("Ro em ar fresco ="); Serial.println (Ro); // Exibe Ro delay calculado (1000); // atraso de 1 seg}
Nota: O valor de Ro irá variar, deixe o sensor pré-aquecer pelo menos por 10 horas e então use o valor de Ro.
Concluí o valor de Ro em 30 KΩ para o meu sensor (quando R L é 47kΩ). O seu pode variar ligeiramente.
Meça o valor de Rs:
Agora que sabemos o valor de Ro, podemos calcular facilmente o valor de Rs usando as duas fórmulas acima. Observe que o valor de Rs calculado anteriormente é para o ar fresco e não será o mesmo quando a amônia estiver presente no ar. Calcular o valor de Rs não é um grande problema com o qual podemos cuidar diretamente no programa final.
Relacionando a razão Rs / Ro com PPM:
Agora que sabemos como medir o valor de Rs e Ro, poderíamos encontrar sua razão (Rs / Ro). Em seguida, podemos usar o gráfico (mostrado abaixo) para relacionar o valor correspondente de PPM.
Embora a linha NH3 (cor ciano) pareça ser linear, na verdade não é linear. A aparência é porque a escala é dividida de maneira não uniforme para a aparência. Portanto, a relação entre Rs / Ro e PPM é na verdade logarítmica, o que pode ser representado pela equação abaixo.
log (y) = m * log (x) + b onde, y = razão (Rs / Ro) x = PPM m = inclinação da linha b = ponto de intersecção
Para encontrar os valores de m e b, temos que considerar dois pontos (x1, y1) e (x2, y2) em nossa linha de gás. Aqui estamos trabalhando com amônia, então os dois pontos que considerei são (40,1) e (100,0.8) conforme mostrado na imagem acima (marcado em vermelho) com uma marca vermelha.
m = / m = log (0,8 / 1) / log (100/40) m = -0,243
Da mesma forma para (b) vamos obter o valor do ponto médio (x, y) do gráfico que é (70,0,75) como mostrado na imagem acima (marcado em azul)
b = log (y) - m * log (x) b = log (0,75) - (-0,243) * log (70) b = 0,323
Agora que calculamos o valor de m e b, podemos igualar o valor de (Rs / Ro) a PPM usando a fórmula abaixo
PPM = 10 ^ {/ m}
Programa para calcular PPM usando sensor MQ:
O programa completo para calcular PPM usando um sensor MQ é fornecido abaixo. Algumas linhas importantes são explicadas abaixo.
Antes de prosseguir com o programa, precisamos alimentar os valores da resistência de carga (RL), inclinação (m), interceptação (b) e o valor da resistência ao ar fresco (Ro). O procedimento para obter todos estes valores já foi explicado então vamos apenas alimentá-los agora
#define RL 47 // O valor do resistor RL é 47K #define m -0,263 // Insira a inclinação calculada #define b 0,42 // Insira a interceptação calculada #define Ro 30 // Insira o valor de Ro encontrado
Em seguida, leia a queda de tensão no sensor (VRL) e converta-a em tensão (0V a 5V), pois a leitura analógica retornará apenas valores de 0 a 1024.
VRL = analogRead (MQ_sensor) * (5,0 / 1023,0); // Meça a queda de tensão e converta para 0-5V
Agora que o valor de VRL é calculado, você pode usar a fórmula discutida acima para calcular o valor de Rs e também a razão (Rs / Ro)
proporção = Rs / Ro; // encontre a proporção Rs / Ro
Finalmente, podemos calcular o PPM com nossa fórmula logarítmica e exibi-lo em nosso monitor serial conforme mostrado abaixo
duplo ppm = pow (10, ((log10 (razão) -b) / m)); // usa fórmula para calcular ppm Serial.print (ppm); // Exibir ppm
Mostrando o valor PPM no hardware com Arduino e MQ-137:
Chega de toda a teoria, vamos construir um circuito simples com o sensor e LCD para exibir o valor do gás em PPM. Aqui, o sensor que estou usando é o MQ137, que mede amônia, o diagrama do circuito para minha configuração é mostrado abaixo.
Conecte seu sensor e seu LCD conforme mostrado no diagrama de circuito e carregue o código fornecido no final do programa. Você deve modificar o valor Ro conforme explicado acima. Faça também as alterações nos valores dos parâmetros se estiver usando qualquer outro resistor como RL diferente de 4,7K.
Deixe sua configuração ligada por pelo menos 2 horas antes de fazer qualquer leitura (48 horas é recomendado para valores mais precisos). Esse tempo é chamado de tempo de aquecimento, durante o qual o sensor aquece. Depois disso, você deve ser capaz de ver o valor de PPM e a voltagem exibida na tela LCD conforme mostrado abaixo.
Agora, para garantir que os valores realmente estão relacionados à presença de amônia, vamos colocar esse set-up dentro de um recipiente fechado e mandar o gás amônia para dentro dele para verificar se os valores estão aumentando. Eu não tenho um medidor PPM adequado comigo para calibrá-lo e seria ótimo se alguém com medidor pudesse testar esta configuração e me informar.
Você pode assistir ao vídeo abaixo para verificar como as leituras variaram com base na presença de amônia. Espero que você tenha entendido o conceito e tenha gostado de aprendê-lo. Se você tiver alguma dúvida deixe-a na seção de comentários ou para uma ajuda mais detalhada use o fórum aqui.