Kako narediti vezje merilnika onesnaženosti zraka z Arduino

Preizkusite Naš Instrument Za Odpravo Težav





V tem projektu bomo izdelali merilnik onesnaženosti zraka s pomočjo senzorja MQ-135 in arduina. Stopnjo onesnaženosti v zraku prikazuje serija 12 LED. Če sveti večje število LED, je večja vsebnost onesnaženosti v zraku in obratno.



Pregled

Ta projekt se lahko izkaže za zelo koristnega v krajih, kjer ima kakovost zraka pomembno vlogo, na primer v bolnišnicah. Lahko pa je to tudi še en hobi projekt za vaš dom.

Čeprav pri tem projektu ne moremo pričakovati velike stopnje natančnosti, lahko vsekakor dobimo dobro predstavo o stopnji onesnaženosti v vašem ambientu.



Onesnaževanje zraka je lahko ogljikov dioksid, ogljikov monoksid, butan, metan in nekaj plina brez vonja. Senzor ne more razlikovati med plini, vendar vse vzorce plina iz zraka vzame v potezu.

Če živite v metropolitanskem mestu in imate stanovanje blizu prometne ceste, vam bo ta projekt lahko prišel prav, da dobite grob vpogled v zračni ambient.

Večina ljudi ignorira ukrepe za kakovost zraka v svojem bivališču, ocenjuje se, da samo Indija vsako leto prispeva k 1,59 milijona smrtnih primerov, kar vključuje onesnaževanje notranjih in zunanjih prostorov.

Večina prebivalstva ne pozna čistilcev zraka, ki so na voljo na trgih in spletnih mestih za e-trgovino, kar pa ne stane več kot pametni telefon.

V redu, zdaj sva opozorili narazen, potopimo se v vezje.

Dizajn:

Merilnik onesnaženosti zraka bo bolj zanimiv, če so LED diode pravokotne oblike in če je uporabljena zgoraj postavitev. Vendar pa lahko s svojo domišljijo naredite ta projekt bolj zanimiv za vas.

Kako narediti vezje za merjenje onesnaženosti zraka LED

Zgornja shema prikazuje, kako priključiti senzor na arduino. Vgrajen je zunanji napajalnik za grelno tuljavo senzorja. Strani senzorja se lahko zamenjata.

Zatič A0 arduina zazna spremembe napetosti v senzorju zaradi sprememb vsebnosti onesnaženja v zraku.

Senzor deluje kot spremenljivi upor (kot odziv na onesnaženje) in 10K je fiksni upor, ki deluje kot delilnik napetosti. Arduino ima 10-bitni ADC, ki pomaga, da LED diskretno sveti kot odziv na stopnjo onesnaženosti zraka, kar je analogna funkcija.

LED vezje za merjenje onesnaženosti zraka z Arduino

Ko analogna napetost preseže določeno mejno vrednost, ki je vnaprej določena v programu, se prižgejo LED.

Zaporedne LED so vnaprej določene z višjimi pragovi.

Začne se s preskusom LED, vsaka LED se zaporedno vklopi z nekaj zamude in uporabnik lahko ugotovi napako v povezavah LED, kot so nepovezane LED in LED, ki niso zaporedno razvrščene. Program se ustavi za 5 minut in vse LED diode istočasno svetijo.

To bo imelo dovolj časa za ogrevanje senzorja. V serijskem monitorju lahko vidimo nekaj dejanj, ki jih izvaja arduino. Ko senzor doseže optimalno temperaturo, arduino pošlje nekaj odčitkov serijskemu monitorju. Glede na odčitke se LED diode vklopijo in izklopijo. Višje vrednosti se natisnejo na serijskem monitorju, vklopi se večje število LED.

Serijski monitor v tem projektu ni obvezen, je pa lahko priročno orodje za namene testiranja.

Slika prototipa:

Preizkušen prototip LED merilnika onesnaženosti zraka z Arduino

Kako preizkusiti:

• Vklopite arduino in zunanje napajanje. Preizkus LED se bo začel in bo deloval le enkrat.
• Program čaka 5 minut, da se senzor ogreje.
• Ko se odčitki prikažejo na serijskem monitorju, prinesite vžigalnik za cigareto in izpustite plin, ne da bi ga vžgali.
• Kmalu odčitki dosežejo največjo vrednost in več LED začne žareti.
• Ko zaustavite pretok plina na senzorju, se LED diode postopoma izklopijo. Zdaj je vaš LED merilnik onesnaženosti zraka pripravljen, da vam postreže s sobo.

Koda 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---------------//




Prejšnji: Opozorilo o uhajanju LPG z uporabo MQ-135 - Pridobite opozorilno sporočilo v svoj mobilni telefon Naprej: Napajanje s spremenljivim stikalom LM317 (SMPS)