Sensores de CO2: MH-Z19

Tempo de leitura: 6 minutes

Sensores de CO2: MH-Z19

  • Apresentando o sensor de CO2 MH-Z19 NDIR.
  • Veja suas características.
  • Mostre sua conexão via porta serial.
  • Prepare um programa de primeiro uso.

 

Material Necessário

  • Arduino Mega
  • Sensor HX-Z19
  • ProtoBoard

 

Mais sobre Sensores de C02

Controlar as concentrações de CO2 em nosso ambiente de trabalho ou estudo é algo que está se tornando mais essencial a cada dia, porque há estudos (supostamente graves, embora nunca se saiba) que mostram que um aumento injustificado dessa concentração indica, em primeiro lugar, má ventilação. por si só pode gerar problemas de concentração em trabalhadores ou estudantes, e por outro lado, relaciona o aumento de CO2 e a falta de ventilação, com maior probabilidade de contrair o vírus da felicidade.

Tudo isto levou a que a comunidade europeia, sempre pronta a legislar as coisas, esteja a preparar um projecto de lei para solicitar que esta concentração seja controlada nas salas de aula e escritórios para que seja considerado aceitável entre 400 e 600 ppm de CO2, mas uma luz amarela de 800 ppm e se chegarmos a 1.000 ppm acende uma luz vermelha e em princípio a sala é evacuada até que as concentrações diminuam para níveis aceitáveis.

Em sessões anteriores já vimos que o sensor CCS811 era um sistema de medição de gases do tipo VOC (Volatile Organic Compounds) e que mediu uma série de gases desaconselháveis ​​para a saúde humana (em longas exposições) e que estimou o teor de CO2 com base em A medição de VOCs, mas não era um sensor de CO2 puro e isso nos leva a questionar até que ponto a estimativa que ele faz é suficientemente precisa.

E, claro, quando estamos em dúvida, não há escolha a não ser voltar às fontes e procurar um sensor de CO2 puro que, se possível, não seja muito sensível a outros gases que possam enganar nossas medições e atualmente existem alguns de sensores de CO2 no mercado, este tipo (e custo aceitável) que os tornam ideais para medir a quantidade de CO2 em nosso ambiente com boas garantias.

Esses sensores são os MG811 semelhantes aos da série MQ que já vimos em outras ocasiões e o segundo é o MH-Z19.

Então nem baixinho nem preguiçoso comprei alguns sensores de cada e comecei os testes. O primeiro foi na testa: O MG811, que comprei de dois fornecedores diferentes, porque um é um cachorro velho, não funcionou e você deve ter cuidado com isso se for comprá-los online, porque a maioria esses, pelo que pude verificar lendo por aí, eles vêm com um circuito de merda que só emite a saída digital contra o comparador que você regula com o potenciômetro de ajuste incluso, mas não passam o sinal analógico devidamente amplificado para você.

A linha inferior é que todos esses sensores são praticamente inúteis. Como custam muito e parece que o sensor incluído está correto, estamos montando algumas placas com o design do feten para tentar aproveitar os sensores e garantir que a catástrofe termine em um problema e não em uma tragédia. Eu vou deixar você saber como as coisas vão. No momento aguardando as placas e componentes para testes.

A segunda opção parecia mais promissora com os sensores MH-Z19 que caíram muito de preço e prometem boa sensibilidade a um preço razoável, são precisos e muito fáceis de usar, por isso vamos dedicar esta sessão para chegar a conheça-os um pouco para quem deseja fazer medições precisas de CO2.

O sensor MH-Z19

Este sensor utiliza o princípio NDIR (Non Dispersive Infra Red) para medir a concentração de CO2 no ar com notável precisão. O sensor é basicamente um tubo aberto que coleta ar na área, com um diodo infravermelho em uma extremidade e um receptor de luz na outra.

Como o CO2 absorve a luz infravermelha, a quantidade de luz recebida pelo detector é inversamente proporcional à concentração de CO2 no ar e não depende muito da presença de outros gases ou umidade relativa (ao contrário de outros tipos de sensores) e também tem um sistema interno para compensar as variações de temperatura. Aqui deixo-vos a folha de regras do HX-Z19

  • A razão pela qual o CO2 é um gás de efeito estufa tão poderoso é porque ele permite que a luz visível passe pela atmosfera até o solo, onde se aquece e emite parte desse calor como radiação infravermelha, que o CO2 atmosférico bloqueia e impede que se disperse inofensivamente na atmosfera. espaço.

De fato, se você olhar pela janela lateral do sensor, verá um flash de luz vermelha toda vez que o sistema fizer uma medição.

Outra virtude do MH-Z19 é que é muito fácil de usar. Possui três métodos diretos, o primeiro é uma porta serial através da qual ele simplesmente envia as medições ambientais de CO2 a 9.600 bauds e que é um dos mais fáceis de receber no Arduino. O MH-Z19 fornece diretamente a concentração de CO2 em ppm (Parts Per Million) sem maiores complicações.

O segundo método é um sinal modulado por pulso (PWM) que nos informa a concentração de dióxido de carbono e também é bastante fácil de ler em nossos amados Arduinos.

O terceiro método é ler um sinal analógico proporcional à concentração de CO2 que você precisa calibrar com base nas medições que ele fornece e isso faz pouco sentido de usar, pois nos dá uma saída perfeita pela porta serial,

E existe um terceiro método que consiste em ler a saída de Vo através de um conversor analógico para digital de nossos Arduinos, que nos dá um sinal analógico proporcional à concentração de dióxido de carbono.

Nesse caso, como somos preguiçosos, usaremos o método da porta serial porque adoramos que ele nos dê leituras diretas sem mais trabalho.

 

Conectando nosso Arduino ao MH-Z19

A pinagem do sensor é tal que

A única coisa a comentar é que é largo o suficiente para você não caber em uma protoboard e você precisa de dois ligados com aqueles entalhes fofos nas laterais.

Para a montagem vamos precisar de uma porta serial que leia o sinal do sensor e para isso vou usar um Arduino MEGA que possui 3 portas COM de fácil acesso e o diagrama de conexão é bem simples

ARDUINO MEGAMH-Z19
19 RX1TX
18 TX1RX
GNDGND
5VVin

Para começar com o programa, temos que baixar a biblioteca MH-Z19.zip, pressionando o botão verde à direita que diz download e agora instale a biblioteca pelo procedimento usual, e na janela que aparece, aponte para o arquivo que você acabou de baixar.

 

Mudando para o programa

Começamos a incluir a biblioteca

#include <MHZ19.h>;

E então criamos uma instância do sensor passando um ponteiro para a porta serial em que ele está instalado (no meu caso Serial1 do MEGA):

MHZ19 mhz(&Serial1);

O setup() é bem simples, basta notar que uma coisa é a porta Serial que usamos para nos comunicar com o console e outra é a porta Serial1 que usamos para conectar o MEGA ao sensor e que por padrão deve estar em 9600 bauds

void setup()
{    Serial.begin(115200);
     Serial.println(F("Starting..."));

     Serial1.begin(9600);
}

Agora vamos ao loop e começamos testando se o sensor está disponível (caso esteja com defeito ou sua ligação esteja com defeito) Se sim, podemos ler os valores do sensor e, caso contrário, lançamos uma mensagem de erro

MHZ19_RESULT response = mhz.retrieveData();

if (response == MHZ19_RESULT_OK)
{   Serial.print(F("CO2: "));
    Serial.println(mhz.getCO2());
    Serial.print(F("Temperatura: "));
}
else
{   Serial.print(F("Error, code: "));
    Serial.println(response);
}

Como você pode ver, não é nada complicado, certo? Aqui está uma amostra da concentração de CO2 em meu escritório, que pode ser vista muito bem quando eu sopro o ar exalado nele:

Também podemos adicionar leituras de temperatura com:

Serial.print(F("Temperatura: "));
Serial.println( mhz.getTemperature());

Mas isso retorna a temperatura em Fahrenheit que é incompreensível para os europeus e podemos convertê-la para Celsius com:

float F = mhz.getTemperature();
float C = (F -32) * 5 / 9.0;
Serial.println(C);

Com ele vemos imediatamente que ele calcula a temperatura fatalmente (a menos que eu esteja fazendo algo estúpido, o que poderia muito bem ser). Aqui está o programa completo