V tomto projekte zostrojíme merač znečistenia ovzdušia využívajúci senzor MQ-135 a arduino. Úroveň znečistenia vo vzduchu je indikovaná sériou 12 LED. Ak svieti vyšší počet LED, tým vyšší je obsah znečistenia vo vzduchu a naopak.
Prehľad
Tento projekt sa môže ukázať ako veľmi užitočný v miestach, kde hrá dôležitú úlohu kvalita ovzdušia, napríklad v nemocniciach. Prípadne to môže byť aj ďalší záujmový projekt pre váš domov.
Aj keď s týmto projektom nemôžeme očakávať veľkú mieru presnosti, môže to určite poskytnúť primerane dobrý nápad, pokiaľ ide o úroveň znečistenia vo vašom prostredí.
Znečistenie vo vzduchu môže byť oxid uhličitý, oxid uhoľnatý, bután, metán a niektoré plyny bez zápachu. Senzor nedokáže rozlišovať medzi plynmi, ale odoberá všetky vzorky plynov zo vzduchu.
Ak žijete v metropolitnom meste a váš byt sa nachádza v blízkosti rušnej cesty, tento projekt by sa vám mohol hodiť a poskytnúť hrubý prehľad o atmosfére vzduchu.
Väčšina ľudí ignoruje opatrenia týkajúce sa kvality ovzdušia v ich bydlisku. Odhaduje sa, že iba India každoročne prispieva k 1,59 miliónu úmrtí, čo zahŕňa znečistenie v interiéroch aj exteriéroch.
Väčšina obyvateľov nevie o čističkách vzduchu, ktoré sú ľahko dostupné na trhoch a na stránkach elektronického obchodu, čo nestojí viac ako smartphone.
Dobre, teraz oddeľujeme varovania, poďme sa ponoriť do obvodov.
Dizajn:
Merač znečistenia ovzdušia bude zaujímavejší, ak budú mať LED diódy obdĺžnikový tvar a použije sa dizajn nad usporiadaním. Môžete však použiť svoju fantáziu, aby bol tento projekt pre vás zaujímavejší.
Vyššie uvedená schéma ilustruje, ako pripojiť senzor k arduinu. Pre ohrievaciu cievku snímača je implementované externé napájanie. Boky snímača je možné zameniť.
Kolík A0 arduina sníma zmeny napätia v snímači v dôsledku zmien obsahu znečistenia vo vzduchu.
Senzor funguje ako premenný rezistor (v reakcii na znečistenie) a 10K je pevný rezistor, ktorý slúži ako delič napätia. Arduino má 10-bitový ADC, ktorý pomáha LED diskrétne svietiť v závislosti od úrovne znečistenia ovzdušia, čo je analógová funkcia.
Keď úroveň analógového napätia prekročí určitú prahovú hladinu, ktorá je vopred určená v programe, rozsvietia sa LED diódy.
Postupné LED sú vopred určené s vyššími prahovými úrovňami.
Začína sa testom LED, každá LED sa zapína postupne s určitým oneskorením a používateľ môže určiť chybu v pripojeniach LED, ako sú nespojené LED a LED, ktoré nie sú zoradené postupne. Program sa zastaví na 5 minút a všetky LED diódy svietia súčasne.
To poskytne senzoru dostatok času na zahriatie, aby sme videli niektoré z akcií, ktoré arduino vykonáva na sériovom monitore. Akonáhle snímač dosiahne optimálnu teplotu, arduino odošle niektoré hodnoty na sériový monitor. Na základe nameraných hodnôt sa LED diódy rozsvietia a zhasnú. Čím vyššie sú hodnoty, ktoré sa tlačia na sériovom monitore, rozsvieti sa väčší počet LED.
Sériový monitor nie je v tomto projekte povinný, ale môže byť užitočným nástrojom na testovacie účely.
Prototypový obrázok:
Ako testovať:
• Zapnite arduino a externý zdroj napájania. Spustí sa test LED a spustí sa iba raz.
• Program čaká 5 minút na zahriatie senzora.
• Akonáhle sa namerané hodnoty zobrazia na sériovom monitore, prineste si zapaľovač a unikajte z neho plyn bez toho, aby ste ho zapálili.
• Čítania čoskoro dosiahnu vrchol a začne svietiť viac LED.
• Akonáhle prestanete prúdiť plyn na snímači, postupne LED zhasnú. Teraz je váš LED merač znečistenia vzduchu pripravený slúžiť vám do miestnosti.
Programový kód:
//--------------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---------------//
Predchádzajúce: Upozornenie na únik LPG pomocou MQ-135 - získajte varovnú správu do svojho mobilného telefónu Ďalšie: LM317 Variabilný spínaný zdroj napájania (SMPS)