Kako napraviti LED krug za mjerenje onečišćenja zraka s Arduinom

Isprobajte Naš Instrument Za Uklanjanje Problema





U ovom ćemo projektu izraditi mjerač onečišćenja zraka pomoću senzora MQ-135 i arduina. Razina onečišćenja u zraku označena je serijom od 12 LED. Ako veći broj LED dioda svijetli, veći je sadržaj onečišćenja u zraku i obrnuto.



Pregled

Ovaj se projekt može pokazati vrlo korisnim na mjestima gdje kvaliteta zraka igra važnu ulogu, poput bolnica. Ovo može biti i još jedan hobi projekt za vaš vlastiti dom.

Iako ovo ne možemo očekivati ​​veliki stupanj točnosti s ovim projektom, definitivno može dati razumno dobru ideju o razini onečišćenja u vašem ambijentu.



Onečišćenje u zraku može biti ugljični dioksid, ugljični monoksid, butan, metan i neki plin bez mirisa. Senzor ne može razlikovati plinove, ali uzima sve uzorke plina iz zraka u pokretu.

Ako živite u gradskom gradu, a stan vam se nalazi u blizini prometne ceste, ovaj bi vam projekt mogao dobro doći da pruži grubi uvid u ambijent zraka.

Većina ljudi zanemaruje mjere kakvoće zraka u svom prebivalištu, procjenjuje se da samo Indija svake godine pridonosi 1,59 milijuna smrtnih slučajeva, što uključuje onečišćenja unutarnjih i vanjskih prostora.

Većina stanovništva nije svjesna pročistača zraka koji su lako dostupni na tržnicama i stranicama e-trgovine, a koji ne koštaju više od pametnog telefona.

Dobro, sad su razdvojena upozorenja, zaronimo u sklopove.

Dizajn:

Mjerač onečišćenja zraka bit će zanimljiviji ako se LED imaju pravokutni oblik i ako se koristi dizajn iznad. Međutim, možete upotrijebiti maštu kako biste ovaj projekt učinili zanimljivijim za vas.

Kako napraviti LED mjerač onečišćenja zraka

Gornja shema ilustrira kako spojiti senzor na arduino. Vanjsko napajanje je izvedeno za zavojnicu grijača senzora. Bočne strane senzora mogu se međusobno zamijeniti.

Osovina A0 arduina osjeti promjene napona u senzoru zbog promjena u sadržaju onečišćenja u zraku.

Senzor djeluje kao promjenjivi otpor (kao odgovor na onečišćenje), a 10K je fiksni otpor, koji djeluje kao razdjelnik napona. Arduino ima 10-bitni ADC, koji pomaže LED-u da diskretno svijetli kao odgovor na razinu onečišćenja zraka, što je analogna funkcija.

LED krug za mjerenje onečišćenja zraka s Arduinom

Kad analogna razina napona prijeđe određenu razinu praga koja je unaprijed određena u programu, uključit će LED.

Uzastopne LED diode unaprijed su određene s višim razinama praga.

Počinje s LED testom, svaka LED dioda se uključuje sekvencijalno s određenim kašnjenjem i korisnik može utvrditi pogrešku u LED vezama, poput nepovezanih LED dioda i LED dioda koje se ne sortiraju uzastopno. Program se zaustavlja na 5 minuta i sve LED diode istodobno svijetle.

To će dati dovoljno vremena za zagrijavanje senzora. Na serijskom monitoru možemo vidjeti neke od radnji koje izvodi arduino. Jednom kada senzor dosegne optimalnu temperaturu, arduino šalje neka očitanja serijskom monitoru. Na temelju očitanja, LED lampice će se paliti i gasiti. Što se veće vrijednosti ispisuju na serijskom monitoru, uključuje se veći broj LED-a.

Serijski monitor nije obvezan u ovom projektu, ali može biti prikladan alat za testiranje.

Slika prototipa:

Testirani prototip LED kruga za mjerenje onečišćenja zraka s Arduinom

Kako testirati:

• Uključite arduino i vanjsko napajanje. LED test započet će i pokrenut će se samo jednom.
• Program čeka 5 minuta da se senzor zagrije.
• Kad se očitavanja pokažu na serijskom monitoru, donesite upaljač za cigarete i propustite plin, a da ga ne zapalite.
• Ubrzo očitanja postaju najviša i veći broj LED dioda počinje svijetliti.
• Kad zaustavite protok plina na senzoru, postupno se LED diode isključuju. Sada je vaš LED mjerač onečišćenja zraka spreman poslužiti vam sobu.

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




Prethodno: Upozorenje o propuštanju TNG-a pomoću MQ-135 - primite poruku upozorenja na svoj mobitel Dalje: LM317 Napajanje s promjenjivim načinom prekidača (SMPS)