- MQ serijos dujų jutikliai
- Aparatinės įrangos paruošimas:
- MQ dujų jutiklių PPM matavimo metodas:
- Ro vertės apskaičiavimas esant švariam orui:
- Išmatuokite Rs vertę:
- Rs / Ro santykio santykis su PPM:
- Programa apskaičiuoti PPM naudojant MQ jutiklį:
- PPM vertės rodymas aparatinėje įrangoje su „Arduino“ ir „MQ-137“:
Nuo pat pramoninio amžiaus mes, žmonija, sparčiai vystėmės. Kiekvienos pažangos metu mes taip pat teršiame savo aplinką ir galiausiai ją bloginame. Dabar visuotinis atšilimas kelia nerimą keliančią grėsmę ir net oras, kuriuo kvėpuojame, tampa kritinis. Taigi oro kokybės stebėjimas taip pat pradėjo didėti. Taigi šiame straipsnyje mes sužinosime, kaip naudoti bet kokį MQ serijos dujų jutiklį su „Arduino“ ir parodyti išėjimą PPM (milijoninėmis dalimis). PPM taip pat išreiškiamas miligramais litre (mg / l). Šie jutikliai yra paprastai prieinami ir taip pat yra patikimi matuojant skirtingas toliau nurodytas dujų rūšis
MQ serijos dujų jutikliai
- Anglies dioksidas (CO2): MG-811
- Anglies monoksidas (CO): MQ-9
- Bendras lakiųjų organinių junginių (TVOC) kiekis: CCS811
- Ekvivalentinis anglies dioksidas (eCO2): CCS811
- Metalo oksidas (MOX): CCS811
- Amoniakas: MQ-137
- Oro kokybė: MQ-135
- SND, alkoholis, dūmai: MQ2
Mes jau naudojome MQ2 dūmų jutimui ir MQ-135 oro kokybės stebėsenos projektui. Čia aš bus naudojamas MQ-137 jutiklis nuo sainsmart matuoti amoniako ppm. Turėdamas rankoje jutiklį, perėjau visas turimas pamokas ir radau, kad nėra tinkamų dokumentų, kaip išmatuoti dujas ppm. Daugumoje vadovėlių nagrinėjamos tik analoginės vertės arba pateikiamos kai kurios konstantos, kurios nėra patikimos matuojant visų rūšių dujas. Taigi ilgą laiką blaškydamasis internete pagaliau radau, kaip naudoti šiuos „MQ“ serijos dujų jutiklius ppm matuoti naudojant „Arduino“. Aš aiškinu dalykus iš apačios be jokių bibliotekų, kad galėtumėte naudoti šį straipsnį bet kuriam su jumis esančiam dujų jutikliui.
Aparatinės įrangos paruošimas:
MQ dujų jutiklius galima įsigyti kaip modulį arba tik kaip jutiklį. Jei jūsų tikslas yra matuoti tik ppm, geriausia pirkti tik jutiklį, nes modulis yra tinkamas naudoti tik skaitmeninį kaištį. Taigi, jei jau įsigijote modulį, turite atlikti nedidelį įsilaužimą, kuris bus aptartas toliau. Tarkime, kad jūs jau įsigijote jutiklį. Jutiklio pritvirtinimas ir prijungimas parodytas žemiau
Kaip matote, tiesiog reikia prijungti vieną „H“ galą tiekti, o kitą „H“ galą - prie žemės. Tada sujunkite ir A, ir abu B. Prijunkite vieną rinkinį prie maitinimo įtampos, o kitą - prie analoginio kaiščio. Rezistorius R L vaidina labai svarbų vaidmenį, kad jutiklis veiktų. Taigi pažymėkite, kurią vertę naudojate, rekomenduojama 47 k.
Jei jau įsigijote modulį, turėtumėte sekti savo PCB pėdsakus, kad lentoje rastumėte savo R L vertę. „Grauonline“ jau atliko šį darbą už mus, o žemiau pateikiama MQ dujų jutiklių plokštės schema.
Kaip matote, rezistorius R L (R2) yra sujungtas tarp „Aout“ kaiščio ir žemės, taigi, jei turite modulį, R L reikšmę galima išmatuoti naudojant multimetrą, esant atsparumo režimui, per „Vout“ kaištį ir „Vcc“ kaištį. modulis. Mano „sainsmart“ MQ-137 dujų jutiklyje RL vertė buvo 1K ir buvo čia, kaip parodyta paveikslėlyje žemiau.
Tačiau, svetainė teigia, kad tai suteikia kintamą puodą R L, kuri yra ne tiesa, kaip jūs galite aiškiai pamatyti pateiktą schemą, puodai yra naudojamas nustatyti kintamą įtampą op-amp ir neturi nieko bendro su R L. Taigi mes turime rankiniu būdu lituoti SMD rezistorių (1K), parodytą aukščiau, ir mes turime naudoti savo rezistorių per „Ground“ ir „Vout“ kaiščius, kurie veiks kaip RL. Geriausia RL vertė bus 47K, kaip siūloma duomenų lape, taigi mes ketiname naudoti tą patį.
MQ dujų jutiklių PPM matavimo metodas:
Dabar, kai žinome, kad R L vertė leidžia tęsti, kaip iš tikrųjų matuoti ppm iš šių jutiklių. Kaip ir visi jutikliai, taip ir pradėti reikia duomenų lape. Čia pateiktas „MQ-137“ duomenų lapas, tačiau įsitikinkite, kad radote tinkamą jutiklio duomenų lapą. Duomenų lape mums reikia tik vieno grafiko, kuris bus nubrėžtas pagal (Rs / Ro) VS PPM, tai yra tas, kurio mums reikia mūsų skaičiavimams. Taigi paimkite jį ir laikykite jį patogioje vietoje. Žemiau parodyta mano jutiklio.
Pasirodo, kad MQ137 jutiklis gali išmatuoti NH3, C2H6O ir net CO. Bet čia mane domina tik NH3 vertės. Tačiau tuo pačiu metodu galite apskaičiuoti ppm kiekvienam jums patinkančiam jutikliui. Šis grafikas yra vienintelis šaltinis, leidžiantis rasti ppm vertę, ir jei mes galėtume kažkaip apskaičiuoti Rs / Ro (X ašies) racioną, galime naudoti šį grafiką ppm (Y ašies) vertei rasti. Norėdami rasti Rs / Ro vertę, turime rasti Rs ir Ro vertę. Kur Rs yra jutiklio varža esant dujų koncentracijai, o Ro - jutiklio varža švariame pone.
Taip… tai yra planas, pažiūrėkime, kaip mes galime tai išsisukti….
Ro vertės apskaičiavimas esant švariam orui:
Atkreipkite dėmesį, kad grafike Rs / Ro vertė yra pastovi orui (stora mėlyna linija), todėl galime tai panaudoti savo naudai ir pasakyti, kad kai jutiklis dirba gryname ore, Rs / Ro vertė bus 3,6, nurodykite paveikslėlį žemiau
Rs / Ro = 3,6
Iš duomenų lapo taip pat turime formulę, skirtą apskaičiuoti Rs vertę. Formulė parodyta žemiau. Jei jus domina, kaip gaunama ši formulė, galite perskaityti per „jay con“ sistemas, taip pat norėčiau jas įskaityti padėdamas man tai išspręsti.
Pagal šią formulę Vc vertė yra mūsų maitinimo įtampa (+ 5 V), o R L vertė yra ta, kurią mes jau apskaičiavome (47K mano jutikliui). Parašę nedidelę „Arduino“ programą, taip pat galėtume rasti V RL vertę ir pagaliau apskaičiuoti Rs vertę. Pateikiau žemiau esančią „ Arduino“ programą, kuri nuskaito jutiklio analoginę įtampą (V RL) ir pagal šią formulę apskaičiuoja R reikšmę ir galiausiai ją parodo serijiniame monitoriuje. Programa yra gerai paaiškinta komentarų skyriuje, todėl praleidžiu jos paaiškinimą, kad šis straipsnis būtų trumpas.
/ * * R0 vertės matavimo programa žinomam RL esant šviežio oro sąlygoms * Programos autorius: B.Aswinth Raj * Svetainė: www.circuitdigest.com * Data: 2017-12-28 * / // Ši programa veikia geriausiai gryno oro kambaryje su temperatūra Temperatūra: 20 ℃, drėgmė: 65%, O2 koncentracija 21% ir kai Rl vertė yra 47K #define RL 47 // rezistoriaus RL vertė yra 47K negaliojanti sąranka () // Veikia tik kartą {Serial.begin (9600); // Pradėkite serijinį COM, kad būtų rodoma vertė} void loop () {float analog_value; plūduriuojantis VRL; plūduriuoti Rs; plūdė Ro; for (int test_cycle = 1; test_cycle <= 500; test_cycle ++) // 200 kartų nuskaitykite jutiklio analoginę išvestį {analog_value = analog_value + analogRead (A0); // pridėkite reikšmes 200} analog_value = analog_value / 500.0; // Paimkite vidutinę VRL = analog_value * (5,0 / 1023,0);// Konvertuoti analoginę vertę į įtampą // RS = ((Vc / VRL) -1) * RL yra formulės, kurias gavome iš duomenų lapo Rs = ((5.0 / VRL) -1) * RL; // RS / RO yra 3,6, kaip gavome iš duomenų lapo Ro = Rs / 3,6 grafiko; Serial.print ("Ro gryname ore ="); Serial.println (Ro); // Rodomas apskaičiuotas Ro vėlavimas (1000); // 1sek vėlavimas}
Pastaba: Ro vertė gali skirtis, leiskite jutikliui iš anksto pašildyti bent 10 valandų ir tada naudokite Ro vertę.
Padariau išvadą, kad mano jutiklio Ro vertė yra 30 KΩ (kai R L yra 47kΩ). Jūsų gali šiek tiek skirtis.
Išmatuokite Rs vertę:
Dabar, kai žinome Ro vertę, galime lengvai apskaičiuoti Rs vertę naudodami pirmiau pateiktas dvi formules. Atkreipkite dėmesį, kad anksčiau apskaičiuota R vertė yra gryno oro būklė ir ji nebus tokia pati, kai ore yra amoniako. Rs vertės apskaičiavimas nėra didelis klausimas, kuriuo galime tiesiogiai pasirūpinti galutinėje programoje.
Rs / Ro santykio santykis su PPM:
Dabar, kai žinome, kaip išmatuoti Rs ir Ro vertę, galėsime rasti jo santykį (Rs / Ro). Tada mes galime naudoti diagramą (parodyta žemiau), kad susietume su atitinkama PPM verte.
Nors NH3 linija (žydra spalva) atrodo tiesinė, ji iš tikrųjų nėra tiesinė. Išvaizda yra dėl to, kad skalė išvaizdai padalijama nevienodai. Taigi ryšys tarp Rs / Ro ir PPM iš tikrųjų yra logaritminis, kurį galima pavaizduoti žemiau pateikta lygtimi.
log (y) = m * log (x) + b kur y = santykis (Rs / Ro) x = PPM m = tiesės nuolydis b = susikirtimo taškas
Norėdami rasti m ir b reikšmes, turime atsižvelgti į du taškus (x1, y1) ir (x2, y2) mūsų dujų linijoje. Čia mes dirbame su amoniaku, todėl mano laikomi du taškai yra (40,1) ir (100,0,8), kaip parodyta aukščiau esančiame paveikslėlyje (pažymėta raudona spalva) su raudonu ženklu.
m = / m = log (0,8 / 1) / log (100/40) m = -0,243
Panašiai (b) gaukite vidurio taško vertę (x, y) iš diagramos, kuri yra (70,0,75), kaip parodyta aukščiau esančiame paveikslėlyje (pažymėta mėlyna spalva)
b = log (y) - m * log (x) b = log (0.75) - (-0.243) * log (70) b = 0.323
Štai dabar, kai mes apskaičiavome m ir b vertę, galime prilyginti (Rs / Ro) vertę PPM naudodami žemiau pateiktą formulę
PPM = 10 ^ {/ m}
Programa apskaičiuoti PPM naudojant MQ jutiklį:
Visa programa, skirta apskaičiuoti PPM naudojant MQ jutiklį, pateikta žemiau. Toliau paaiškinta keletas svarbių eilučių.
Prieš pradedant programą turime pašarų vertybes nuo apkrovos varža (RL), nuolydis (M), ašyje (b) ir varžos vertė gryname ore (ro). Visų šių verčių gavimo procedūra jau buvo paaiškinta, todėl dabar jas tiesiog papildykime
#define RL 47 // Rezistoriaus RL reikšmė yra 47K #define m -0.263 // Įveskite apskaičiuotą nuolydį #define b 0.42 // Įveskite apskaičiuotą pertrūkį #define Ro 30 // Įveskite rastą Ro vertę
Tada perskaitykite įtampos kritimą jutiklyje (VRL) ir paverskite jį įtampa (0–5 V), nes analoginis nuskaitymas grąžins tik vertes nuo 0 iki 1024.
VRL = analoginis skaitymas (MQ_jutiklis) * (5,0 / 1023,0); // Išmatuokite įtampos kritimą ir konvertuokite į 0-5V
Dabar, kai apskaičiuojama VRL vertė, galite naudoti aukščiau aptartą formulę, kad apskaičiuotumėte Rs vertę ir santykį (Rs / Ro)
santykis = Rs / Ro; // rasti santykį Rs / Ro
Galiausiai mes galime apskaičiuoti PPM naudodami savo logaritminę formulę ir parodyti ją savo nuosekliame monitoriuje, kaip parodyta žemiau
dvigubas ppm = pow (10, ((log10 (santykis) -b) / m)); // naudokite formulę ppm Serial.print (ppm) apskaičiuoti; // Rodyti ppm
PPM vertės rodymas aparatinėje įrangoje su „Arduino“ ir „MQ-137“:
Užteks visos teorijos, kad sukurtume paprastą grandinę su jutikliu ir LCD, kad būtų rodoma dujų vertė PPM. Čia naudojamas jutiklis yra MQ137, kuris matuoja amoniaką, žemiau parodyta mano nustatymo schema.
Prijunkite jutiklį ir skystųjų kristalų ekraną, kaip parodyta grandinės schemoje, ir įkelkite programos pabaigoje nurodytą kodą. Jūs turite modifikuoti Ro vertę, kaip paaiškinta aukščiau. Taip pat atlikite parametrų verčių pakeitimus, jei kaip RL naudojate bet kurį kitą rezistorių, išskyrus 4,7 K.
Prieš atlikdami bet kokius rodmenis, palikite maitinimą mažiausiai 2 valandas (tikslesnėms vertėms rekomenduojama 48 val.). Šis laikas vadinamas kaitinimo laiku, kurio metu jutiklis sušyla. Po to turėtumėte matyti LCD ekrane rodomą PPM vertę ir įtampą, kaip parodyta žemiau.
Dabar norėdami įsitikinti, ar vertės iš tikrųjų yra susijusios su amoniako buvimu, įdėkime šį įrenginį į uždarą indą ir į jį siunčiame amoniako dujas, kad patikrintume, ar vertės didėja. Neturiu tinkamo PPM matuoklio, kad jį kalibruočiau, ir būtų puiku, jei kas nors, turintis skaitiklį, galėtų išbandyti šią sąranką ir pranešti man.
Galite pažiūrėti toliau pateiktą vaizdo įrašą, kad patikrintumėte, kaip rodmenys keitėsi atsižvelgiant į amoniako buvimą. Tikiuosi, kad supratote sąvoką ir patiko ją išmokti. Jei turite kokių nors abejonių, palikite juos komentarų skiltyje arba, jei reikia išsamesnės pagalbos, naudokite forumą čia.