- Senzorji za plin serije MQ
- Priprava strojne opreme:
- Pristop k merjenju PPM iz plinskih senzorjev MQ:
- Izračun vrednosti Ro pri čistem zraku:
- Izmerite vrednost Rs:
- Povezava razmerja Rs / Ro s PPM:
- Program za izračun PPM s pomočjo senzorja MQ:
- Prikaz vrednosti PPM na strojni opremi z Arduino in MQ-137:
Že od industrijske dobe se človeštvo hitro razvija. Z vsakim napredkom onesnažujemo tudi svoje okolje in ga sčasoma degradiramo. Zdaj je globalno segrevanje alarmantna grožnja in celo zrak, ki ga vdihavamo, postaja kritičen. Tako je začelo pridobivati pomen tudi spremljanje kakovosti zraka. Torej, v tem članku se bomo naučili, kako uporabljati kateri koli senzor plina serije MQ z Arduinom in prikazati izhod v PPM (na milijon delov). PPM je izražen tudi v miligramih na liter (mg / L). Ti senzorji so običajno na voljo in so zanesljivi tudi za merjenje različnih vrst plina, prikazanih spodaj
Senzorji za plin serije MQ
- Ogljikov dioksid (CO2): MG-811
- Ogljikov monoksid (CO): MQ-9
- Celotne hlapne organske spojine (TVOC): CCS811
- Ekvivalenten ogljikov dioksid (eCO2): CCS811
- Kovinski oksid (MOX): CCS811
- Amoniak: MQ-137
- Kakovost zraka: MQ-135
- UNP, alkohol, dim: MQ2
MQ2 smo že uporabili za zaznavanje dima in MQ-135 za projekt spremljanja kakovosti zraka. Tu bom za merjenje amoniaka v ppm uporabljal senzor MQ-137 podjetja sainsmart. S senzorjem v roki sem si ogledal vse razpoložljive vadnice in ugotovil, da ni ustrezne dokumentacije o merjenju plina v ppm. Večina vaj se ukvarja le z analognimi vrednostmi ali pa uvaja nekatere konstante, ki niso zanesljive za merjenje vseh vrst plina. Tako sem po dolgotrajnem spletu dolgo končno ugotovil, kako uporabiti te plinske senzorje serije MQ za merjenje ppm z uporabo Arduina. Razlagam stvari od spodaj brez knjižnic, tako da lahko ta članek uporabite za kateri koli senzor plina, ki je na voljo pri vas.
Priprava strojne opreme:
Senzorji za plin MQ se lahko kupijo kot modul ali samo kot senzor sam. Če je vaš namen meriti samo ppm, je najbolje, da senzor kupite sami, saj je modul primeren samo za uporabo digitalnega zatiča. Torej, če ste modul že kupili, morate izvesti majhen kramp, o katerem bomo nadalje razpravljali. Za zdaj predpostavimo, da ste kupili senzor. Izhod in priključek senzorja sta prikazana spodaj
Kot vidite, morate le en konec 'H' priključiti na dovod, drugi konec 'H' pa na zemljo. Nato združite oba A in oba B. En sklop priključite na napajalno napetost, drugega pa na analogni zatič. Upor R L ima zelo pomembno vlogo pri delovanju senzorja. Torej, zapišite, katero vrednost uporabljate, priporočamo vrednost 47k.
Če ste že kupili modul, sledite sledom PCB-ja in poiščite vrednost svojega R L na plošči. Grauonline je to delo že opravil namesto nas, shema vezij plošče senzorja za plin MQ pa je navedena spodaj.
Kot lahko vidite, je upor R L (R2) povezan med zatičem Aout in tlemi, tako da, če imate modul, lahko vrednost R L izmerite z uporabo multimetra v odpornem načinu čez Vout zatič in Vcc zatič na modul. V mojem plinskem senzorju sainsmart MQ-137 je bila vrednost RL 1K in je bila tukaj, kot je prikazano na spodnji sliki.
Vendar pa spletna stran trdi, da se zagotavlja variabilno lonec R L kar ni res, saj lahko jasno videli v shemo vezja, se pot uporablja za nastavitev spremenljivo napetost za op-amp in nima nič opraviti z R L. Torej moramo ročno spajkati SMD upor (1K), prikazan zgoraj, in uporabiti svoj upor čez zatič Ground in Vout, ki bo deloval kot RL. Najboljša vrednost za RL bo 47K, kot predlaga obrazec, zato bomo uporabili enako.
Pristop k merjenju PPM iz plinskih senzorjev MQ:
Zdaj, ko poznamo vrednost R L, lahko nadaljujemo s tem, kako dejansko izmeriti ppm iz teh senzorjev. Tako kot pri vseh senzorjih je tudi pri njih treba začeti s svojim podatkovnim listom. Podatkovni list MQ-137 je podan tukaj, vendar se prepričajte, da ste našli pravi podatkovni list za vaš senzor. V podatkovnem listu potrebujemo le en graf, ki bo narisan proti (Rs / Ro) VS PPM, to je tisti, ki ga potrebujemo za svoje izračune. Torej ga vzemite in naj bo pri roki. Tisti za moj senzor je prikazan spodaj.
Izkazalo se je, da lahko senzor MQ137 meri NH3, C2H6O in celo CO. Toda tu me zanimajo le vrednosti NH3. Vendar lahko isto metodo uporabite za izračun ppm za kateri koli senzor, ki vam je všeč. Ta graf je edini vir, s katerim najdemo vrednost ppm, in če bi lahko nekako izračunali razmerje Rs / Ro (os X), lahko s tem grafom poiščemo vrednost ppm (os Y). Če želimo najti vrednost Rs / Ro, moramo najti vrednost Rs in vrednost Ro. Kjer je Rs upor senzorja pri koncentraciji plinov, Ro pa upor senzorja v čistem gospodu.
Jaz… to je načrt, poglejmo, kako se lahko rešimo s tem….
Izračun vrednosti Ro pri čistem zraku:
Upoštevajte, da je v grafu vrednost Rs / Ro konstantna za zrak (debela modra črta), zato lahko to izkoristimo v svoj prid in rečemo, da bo, ko senzor deluje na svežem zraku, vrednost Rs / Ro 3,6, glejte sliko spodaj
Rs / Ro = 3,6
Iz podatkovnega lista dobimo tudi formulo za izračun vrednosti Rs. Formula je prikazana spodaj. Če vas zanima, kako je izpeljana ta formula, si lahko preberete sisteme jay con, bi jim rad pripisal zasluge, da mi pomagajo to urediti.
V tej formuli je vrednost Vc naša napajalna napetost (+ 5V), vrednost R L pa je tista, ki smo jo že izračunali (47K za moj senzor). Če napišemo majhen program Arduino, bi lahko našli tudi vrednost V RL in na koncu izračunali vrednost Rs. Spodaj sem navedel program Arduino, ki bere analogno napetost (V RL) senzorja, izračuna vrednost Rs s to formulo in jo na koncu prikaže na serijskem monitorju. Program je dobro razložen v komentarju, zato njegovo razlago tukaj preskočim, da bo ta članek kratek.
/ * * Program za merjenje vrednosti R0 za znani RL pri svežem zraku * Program: B.Aswinth Raj * Spletno mesto: www.circuitdigest.com * Datum: 28-12-2017 * / // Ta program deluje najbolje v sobi s svežim zrakom s temperaturo Temp: 20 ℃, Vlažnost: 65%, koncentracija O2 21% in ko je vrednost Rl 47K #define RL 47 // Vrednost upora RL je 47K void setup () // Samo teče enkrat {Serial.begin (9600); // Inicializiramo serijski COM za prikaz vrednosti} void loop () {float analog_value; plovec VRL; plavajoči Rs; plovec Ro; for (int test_cycle = 1; test_cycle <= 500; test_cycle ++) // 200-krat preberite analogni izhod senzorja {analog_value = analog_value + analogRead (A0); // dodamo vrednosti za 200} analog_value = analog_value / 500.0; // Vzemimo povprečno vrednost VRL = analog_value * (5.0 / 1023.0);// Pretvorimo analogno vrednost v napetost // RS = ((Vc / VRL) -1) * RL je formula, ki smo jo dobili iz podatkovnega lista Rs = ((5.0 / VRL) -1) * RL; // RS / RO je 3,6, kot smo dobili iz grafa podatkovnega lista Ro = Rs / 3,6; Serial.print ("Ro na svežem zraku ="); Serial.println (Ro); // Prikaz izračunane zakasnitve Ro (1000); // zamuda 1sec}
Opomba: Vrednost Ro bo različna, pustite, da se senzor predhodno ogreje vsaj 10 ur, nato pa uporabite vrednost Ro.
Ugotovil sem, da je vrednost Ro za moj senzor 30 KΩ (kadar je R L 47kΩ). Vaš se lahko nekoliko razlikuje.
Izmerite vrednost Rs:
Zdaj, ko poznamo vrednost Ro, lahko z uporabo zgornjih dveh formul enostavno izračunamo vrednost Rs. Upoštevajte, da je bila vrednost Rs, izračunana prej, za svež zrak in ne bo enaka, če je v zraku prisoten amoniak. Izračun vrednosti Rs ni velik problem, za katerega lahko neposredno poskrbimo v končnem programu.
Povezava razmerja Rs / Ro s PPM:
Zdaj, ko vemo, kako izmeriti vrednost Rs in Ro, bi lahko našli njegovo razmerje (Rs / Ro). Nato lahko uporabimo grafikon (prikazan spodaj), da se povežemo z ustrezno vrednostjo PPM.
Čeprav se zdi, da je črta NH3 (modro obarvana) linearna, v resnici ni linearna. Videz je zato, ker je lestvica neenakomerno razdeljena glede na videz. Torej je razmerje med Rs / Ro in PPM dejansko logaritemsko, kar lahko predstavimo s spodnjo enačbo.
log (y) = m * log (x) + b, kjer je y = razmerje (Rs / Ro) x = PPM m = naklon črte b = presečišče
Za iskanje vrednosti m in b moramo upoštevati dve točki (x1, y1) in (x2, y2) na našem plinovodu. Tu delamo z amoniakom, zato sta dve točki, ki sem ju obravnaval, (40,1) in (100,0,8), kot je prikazano na zgornji sliki (označena z rdečo) z rdečo oznako.
m = / m = log (0,8 / 1) / log (100/40) m = -0,243
Podobno za (b) dobimo srednjo vrednost (x, y) iz grafa, ki je (70,0,75), kot je prikazano na zgornji sliki (označeno z modro)
b = log (y) - m * log (x) b = log (0,75) - (-0,243) * log (70) b = 0,323
To je to, zdaj ko smo izračunali vrednost m in b, lahko vrednost (Rs / Ro) enačimo s PPM z uporabo spodnje formule
PPM = 10 ^ {/ m}
Program za izračun PPM s pomočjo senzorja MQ:
Celoten program za izračun PPM pomočjo senzorja MQ je naveden spodaj. V nadaljevanju je razloženo nekaj pomembnih vrstic.
Pred nadaljevanjem programa moramo vnesti vrednosti odpornosti proti obremenitvi (RL), naklona (m), odseka (b) in vrednosti odpornosti na svežem zraku (Ro). Postopek za pridobitev vseh teh vrednosti je že razložen, zato jih le vnesite zdaj
#define RL 47 // Vrednost upora RL je 47K #define m -0.263 // Vnesite izračunani naklon #define b 0.42 // Vnesite izračunani presek #define Ro 30 // Vnesite najdeno vrednost Ro
Nato preberite padec napetosti na senzorju (VRL) in ga pretvorite v napetost (0V do 5V), saj bo analogno branje vrnilo le vrednosti od 0 do 1024.
VRL = analogRead (MQ_sensor) * (5.0 / 1023.0); // Izmerimo padec napetosti in pretvorimo v 0-5V
Zdaj, ko se izračuna vrednost VRL, lahko uporabite zgornjo formulo za izračun vrednosti Rs in tudi razmerja (Rs / Ro)
razmerje = Rs / Ro; // najdemo razmerje Rs / Ro
Na koncu lahko z našo logaritemsko formulo izračunamo PPM in ga prikažemo na našem serijskem monitorju, kot je prikazano spodaj
dvojni ppm = prah (10, ((log10 (razmerje) -b) / m)); // uporabimo formulo za izračun ppm Serial.print (ppm); // Prikaz ppm
Prikaz vrednosti PPM na strojni opremi z Arduino in MQ-137:
Dovolj vse teorije nam omogoča, da zgradimo preprosto vezje s senzorjem in LCD-jem za prikaz vrednosti plina v PPM. Tukaj uporabljam senzor MQ137, ki meri amoniak, diagram vezja za mojo nastavitev je prikazan spodaj.
Povežite senzor in LCD, kot kaže shema vezja, in naložite kodo, navedeno na koncu programa. Vrednost Ro morate spremeniti, kot je razloženo zgoraj. Spremembe vrednosti parametrov spremenite tudi, če uporabljate kateri koli drug upor kot RL, ki ni 4,7K.
Preden začnete odčitavati, nastavitev pustite vklopljeno vsaj 2 uri (za natančnejše vrednosti je priporočljivo 48 ur). Ta čas se imenuje čas ogrevanja, v katerem se senzor ogreje. Po tem bi morali videti vrednost PPM in napetost, prikazano na vašem LCD zaslonu, kot je prikazano spodaj.
Zdaj, da se prepričamo, ali so vrednosti res povezane s prisotnostjo amoniaka, postavimo to postavitev v zaprto posodo in v njej pošljemo plin iz amoniaka, da preverimo, ali se vrednosti povečujejo. S seboj nimam ustreznega merilnika PPM, da bi ga umeril in bilo bi super, če bi lahko nekdo z merilnikom preizkusil to nastavitev in mi sporočil.
V spodnjem videoposnetku si lahko ogledate, kako se odčitki spreminjajo glede na prisotnost amoniaka. Upam, da ste koncept razumeli in ste se ga radi naučili. Če dvomite, jih pustite v oddelku za komentarje ali za podrobnejšo pomoč na forumu tukaj.