Como fazer um circuito de medidor de poluição do ar com LED – Arduino

Neste projeto, vamos construir um medidor de poluição do ar usando o sensor MQ-135 e o arduino. O nível de poluição do ar é indicado por séries de 12 LED. Quanto maior o número de LEDs acesos, maior será o conteúdo de poluição do ar e vice-versa.

Visão geral

Este projeto pode ser muito útil em locais onde a qualidade do ar desempenha um papel importante, como em hospitais. Alternativamente, este também pode ser outro projeto de hobby para sua própria casa.

Embora não possamos esperar um grande grau de precisão com este projeto, ele pode definitivamente dar uma ideia razoavelmente boa em relação ao nível de poluição em seu ambiente.

A poluição do ar pode ser dióxido de carbono, monóxido de carbono, butano, metano e algum gás inodoro. O sensor não consegue diferenciar os gases, mas leva todas as amostras de gás do ar de uma vez.

Se você está morando em uma cidade metropolitana e seu apartamento está localizado próximo a uma estrada movimentada, este projeto pode ser útil para fornecer uma visão aproximada sobre o ambiente aéreo.

A maioria das pessoas ignora as medidas de qualidade do ar em suas residências. Estima-se que só a Índia contribui com 1,59 milhão de mortes todos os anos, o que inclui poluição interna e externa.

A maioria da população desconhece os purificadores de ar que estão prontamente disponíveis nos mercados e sites de comércio eletrônico, que não custam mais do que um smartphone.

Ok, agora avisos à parte, vamos mergulhar nos circuitos.

O desenho:

O medidor de poluição do ar será mais interessante se os LEDs forem retangulares e o layout acima for usado. No entanto, você pode usar sua imaginação para tornar este projeto mais interessante para você.

Como fazer um circuito de medidor de poluição do ar LED

O esquema acima ilustra como conectar o sensor ao Arduino. Uma fonte de alimentação externa é implementada para a bobina do aquecedor do sensor. Os lados do sensor podem ser trocados.

O pino A0 do Arduino detecta as variações de tensão no sensor devido às mudanças no conteúdo de poluição do ar.

O sensor atua como um resistor variável (em resposta à poluição) e 10K é um resistor fixo, este atua como um divisor de tensão. O arduino tem ADC de 10 bits, que ajuda o LED a brilhar discretamente em resposta ao nível de poluição do ar, que é uma função analógica.

Circuito de medidor de poluição de ar LED com Arduino

Quando o nível de tensão analógica cruza um certo nível de limite que é pré-determinado no programa, ele acenderá os LEDs.

Os LEDs sucessivos são pré-determinados com níveis de limite mais altos.

Ele começa com o teste de LED, cada LED é ligado sequencialmente com algum atraso e o usuário pode determinar o erro nas conexões de LED, como LEDs desconectados e LEDs que não são classificados sequencialmente. O programa pára por 5 minutos e todos os LEDs acendem simultaneamente.

Isso dará tempo suficiente para o sensor aquecer; podemos ver algumas das ações realizadas pelo arduino no monitor serial. Quando o sensor atinge a temperatura ideal, o arduino envia algumas leituras para o monitor serial. Com base nas leituras, os LEDs serão LIGADOS e DESLIGADOS. Quanto mais altos os valores forem impressos no monitor serial, mais o número de LEDs acende.

O monitor serial não é obrigatório neste projeto, mas pode ser uma ferramenta útil para fins de teste.

Imagem do protótipo:

Protótipo comprovado do circuito de medidor de poluição do ar LED com Arduino

Como testar:

• Ligue o arduino e a fonte de alimentação externa. O teste de LED começará e será executado apenas uma vez.
• O programa espera 5 minutos até que o sensor aqueça.
• Assim que as leituras aparecerem no monitor serial, traga um isqueiro e vaze o gás sem queimá-lo.
• Logo, as leituras atingem o pico e mais um número de LEDs começa a brilhar.
• Depois que você interrompe o fluxo de gás no sensor, os LEDs se apagam gradualmente. Agora o seu medidor de poluição do ar com LED está pronto para atender a sua sala.

Código do programa:

//--------------Program developed by R.Girish---------------//
int input=A0;
int a=2;
int b=3;
int c=4;
int d=5;
int e=6;
int f=7;
int g=8;
int h=9;
int i=10;
int j=11;
int k=12;
int l=13;
int T=750;
unsigned long X = 1000L;
unsigned long Y = X * 60;
unsigned long Z = Y * 5;
void setup()
{
Serial.begin(9600);
Serial.println("Sensor is getting ready, please wait for 5 min.");
pinMode(a,OUTPUT);
pinMode(b,OUTPUT);
pinMode(c,OUTPUT);
pinMode(d,OUTPUT);
pinMode(e,OUTPUT);
pinMode(f,OUTPUT);
pinMode(g,OUTPUT);
pinMode(h,OUTPUT);
pinMode(i,OUTPUT);
pinMode(j,OUTPUT);
pinMode(k,OUTPUT);
pinMode(l,OUTPUT);
pinMode(a,HIGH);
delay(T);
digitalWrite(a,HIGH);
delay(T);
digitalWrite(b,HIGH);
delay(T);
digitalWrite(c,HIGH);
delay(T);
digitalWrite(d,HIGH);
delay(T);
digitalWrite(e,HIGH);
delay(T);
digitalWrite(f,HIGH);
delay(T);
digitalWrite(g,HIGH);
delay(T);
digitalWrite(h,HIGH);
delay(T);
digitalWrite(i,HIGH);
delay(T);
digitalWrite(j,HIGH);
delay(T);
digitalWrite(k,HIGH);
delay(T);
digitalWrite(l,HIGH);
delay(T);
delay(Z);
}
void loop()
{
Serial.println(analogRead(input));
if(analogRead(input)>=85) digitalWrite(a,1);
if(analogRead(input)>=170) digitalWrite(b,1);
if(analogRead(input)>=255) digitalWrite(c,1);
if(analogRead(input)>=340) digitalWrite(d,1);
if(analogRead(input)>=425) digitalWrite(e,1);
if(analogRead(input)>=510) digitalWrite(f,1);
if(analogRead(input)>=595) digitalWrite(g,1);
if(analogRead(input)>=680) digitalWrite(h,1);
if(analogRead(input)>=765) digitalWrite(i,1);
if(analogRead(input)>=850) digitalWrite(j,1);
if(analogRead(input)>=935) digitalWrite(k,1);
if(analogRead(input)>=1000) digitalWrite(l,1);
delay(1000);
if(analogRead(input)<=85) digitalWrite(a,0);
if(analogRead(input)<=170) digitalWrite(b,0);
if(analogRead(input)<=255) digitalWrite(c,0);
if(analogRead(input)<=340) digitalWrite(d,0);
if(analogRead(input)<=425) digitalWrite(e,0);
if(analogRead(input)<=510) digitalWrite(f,0);
if(analogRead(input)<=595) digitalWrite(g,0);
if(analogRead(input)<=680) digitalWrite(h,0);
if(analogRead(input)<=765) digitalWrite(i,0);
if(analogRead(input)<=850) digitalWrite(j,0);
if(analogRead(input)<=935) digitalWrite(k,0);
if(analogRead(input)<=1000) digitalWrite(l,0);
}
//--------------Program developed by R.Girish---------------//



FONTE

Nota: Este foi traduzido do Inglês para português (auto)

Pode conter erros de tradução

Olá, se tiver algum erro de tradução (AUTO), falta de link para download etc…

Veja na FONTE até ser revisado o post.

Status (85% Revisado)

Se tiver algum erro coloque nos comentários

Mas se gostou compartilhe!!!


Relacionados

Top de Hoje

Top de Hoje

----------

Ver Mais