- MQ sorozatú gázérzékelők
- A hardver előkészítése:
- Az MQ gázérzékelők PPM-mérésének megközelítése:
- A tiszta levegő Ro értékének kiszámítása:
- Mérjük meg az Rs értékét:
- Az Rs / Ro arány és a PPM aránya:
- Program a PPM kiszámításához az MQ szenzor segítségével:
- PPM-érték megjelenítése hardveren Arduino és MQ-137 segítségével:
Az ipari korszaktól kezdve mi, az emberiség gyorsan fejlődtünk. Minden haladással szennyezzük a környezetünket is, és végül rontjuk azt. Most a globális felmelegedés riasztó veszélyt jelent, és még a levegő is, amelyet belélegzünk, egyre kritikusabbá válik. Tehát a levegőminőség ellenőrzése is egyre fontosabbá vált. Tehát ebben a cikkben megtanuljuk, hogyan használhatunk bármilyen MQ sorozatú gázérzékelőt az Arduinóval, és a kimenetet PPM-ben (millió per milliliter) mutatjuk be . A PPM-et milligramm / literben (mg / l) is kifejezzük . Ezek az érzékelők általában elérhetőek, és megbízhatóak az alább látható különféle gázok mérésére is
MQ sorozatú gázérzékelők
- Szén-dioxid (CO2): MG-811
- Szén-monoxid (CO): MQ-9
- Összes illékony szerves vegyület (TVOC): CCS811
- Ekvivalens szén-dioxid (eCO2): CCS811
- Fém-oxid (MOX): CCS811
- Ammónia: MQ-137
- Levegőminőség: MQ-135
- LPG, alkohol, füst: MQ2
Az MQ2-t már használtuk a füstérzékeléshez, az MQ-135-et pedig a levegőminőség-ellenőrzési projekthez. Itt a sainsmart MQ-137 szenzorát használom az ammónia ppm-ben történő mérésére. Az érzékelővel a kezemben áttekintettem az összes rendelkezésre álló oktatóanyagot, és megállapítottam, hogy nincs megfelelő dokumentáció arról, hogyan kell mérni a gázt ppm-ben. A legtöbb oktatóanyag csak az analóg értékekkel foglalkozik, vagy néhány olyan állandót vezet be, amelyek nem megbízhatóak minden típusú gáz mérésére. Tehát, miután hosszú ideig online ficánkoltam, végül rájöttem, hogyan használhatom ezeket az MQ sorozatú gázérzékelőket a ppm mérésére az Arduino segítségével. Alulról fejtem ki a dolgokat könyvtárak nélkül, hogy ezt a cikket bármelyik elérhető gázérzékelőhöz felhasználhassa.
A hardver előkészítése:
Az MQ gázérzékelők akár modulként, akár csak érzékelőként vásárolhatók meg. Ha az a célja, hogy csak ppm-et mérjen, akkor a legjobb, ha csak az érzékelőt vásárolja meg, mivel a modul csak a digitális tű használatára alkalmas. Tehát, ha már megvásárolta a modult, akkor végre kell hajtania egy kis feltörést, amelyet tovább tárgyalunk. Tegyük fel most, hogy megvásárolta az érzékelőt. Az érzékelő kivezetése és csatlakoztatása az alábbiakban látható
Amint láthatja, csak a „H” egyik végét kell csatlakoztatnia a tápellátáshoz, a „H” másik végét pedig a földhöz. Ezután kombinálja mind az A-t, mind a B-t. Csatlakoztassa az egyik készletet a tápfeszültséghez, a másikat az analóg csaphoz. Az R L ellenállás nagyon fontos szerepet játszik az érzékelő működésében. Tehát jegyezze fel, hogy melyik értéket használja, 47k érték ajánlott.
Ha már megvásárolt egy modult, akkor nyomon kell követnie a NYÁK nyomát, hogy megtalálja az R L értékét a táblán. A Grauonline már elvégezte ezt a munkát helyettünk, és az MQ gázérzékelő tábla kapcsolási rajza alább látható.
Amint láthatja, az R L (R2) ellenállás csatlakozik az Aout csap és a föld közé, így ha van modulja, akkor az R L értéke megmérhető egy multiméter használatával ellenállási módban a Vout és a Vcc csapok között. a modul. A sainsmart MQ-137 gázérzékelőmben az RL értéke 1K volt, és itt található, ahogy az alábbi képen látható.
A weboldal azonban azt állítja, hogy egy változó R L potot biztosít, ami nem igaz, amint az a kapcsolási rajzon jól látható, a potot az op-amp változó feszültségének beállítására használják, és semmi köze R L-hez. Tehát manuálisan kell forrasztanunk a fent bemutatott SMD ellenállást (1K), és saját ellenállást kell használnunk a föld és a Vout csapon, amely RL-ként fog működni. Az RL legjobb értéke 47K lesz, amint azt az adatlap javasolja, ezért ugyanazt fogjuk használni.
Az MQ gázérzékelők PPM-mérésének megközelítése:
Most, hogy tudjuk az R L értékét, folytathatjuk a ppm tényleges mérését ezekből az érzékelőkből. Mint minden érzékelő, itt is ki kell kezdeni az adatlapot. Az MQ-137 adatlap itt található, de győződjön meg róla, hogy megtalálja a szenzorának megfelelő adatlapot. Az adatlap belsejében csak egy grafikonra van szükségünk, amelyet (Rs / Ro) VS PPM alapján ábrázolunk. Ez az, amelyre szükségünk van a számításainkhoz. Tehát kapd el és tartsd valahol kéznél. Az érzékelőmé az alábbiakban látható.
Kiderült, hogy az MQ137 szenzor képes mérni NH3, C2H6O és még CO értékeket is. De itt csak az NH3 értékei érdekelnek. Ugyanazon módszerrel azonban kiszámíthatja a tetszőleges érzékelő ppm értékét. Ez a grafikon az egyetlen forrás arra, hogy megtaláljuk a ppm értékét, és ha valahogy kiszámíthatnánk az Rs / Ro (X tengely) arányát, akkor ezt a grafikont használhatjuk a ppm (Y tengely) értékének megkeresésére. Az Rs / Ro értékének megtalálásához meg kell találnunk az Rs és az Ro értékét. Ahol Rs az érzékelő ellenállása a gázkoncentrációnál, és Ro az érzékelő ellenállása a tiszta uramban.
Igen… ez a terv, nézzük meg, hogyan tudunk megúszni ezt….
A tiszta levegő Ro értékének kiszámítása:
Vegye figyelembe, hogy a grafikonban az Rs / Ro értéke állandó a levegő számára (vastag kék vonal), így ezt előnyünkre használhatjuk, és azt mondhatjuk, hogy amikor az érzékelő friss levegőn dolgozik, az Rs / Ro értéke 3,6 lesz a képen lent
Rs / Ro = 3,6
Az adatlapból kapunk egy képletet is az Rs értékének kiszámításához. A képletet az alábbiakban mutatjuk be. Ha érdekel, hogy hogyan származik ez a képlet, olvashatja el a jay con rendszereket, szeretném őket is jóváírni abban, hogy segítsek nekem ezt rendezni.
Ebben a képletben a Vc értéke a tápfeszültségünk (+ 5V), az R L értéke pedig az, amelyet már kiszámítottunk (az érzékelőm esetében 47K). Ha írunk egy kis Arduino programot, akkor meg is találhatjuk a V RL értékét, és végül kiszámíthatjuk az Rs értékét. Adtam egy alábbi Arduino programot, amely leolvassa az érzékelő analóg feszültségét (V RL), és ennek a képletnek a segítségével kiszámítja az R értékét, és végül megjeleníti a soros monitoron. A program jól meg van magyarázva a megjegyzés részben, ezért itt hagyom a magyarázatát, hogy rövid legyen a cikk.
/ * * Program az R0 értékének mérésére egy friss RL hőmérsékleten, friss levegőn * Program: B.Aswinth Raj * Weboldal: www.circuitdigest.com * Dátum: 2017.12.28. friss levegőn, hőmérsékleti hőmérséklet mellett Hőmérséklet: 20 ℃, Páratartalom: 65%, O2 koncentráció 21%, és ha az Rl értéke 47K #define RL 47 // Az RL ellenállás értéke 47K érvénytelen beállítás () // Csak fut egyszer {Serial.begin (9600); // A soros COM inicializálása az érték megjelenítéséhez} void loop () {float analog_value; úszó VRL; úszó Rs; úszó Ro; for (int teszt_ciklus = 1; teszt_ciklus <= 500; teszt_ciklus ++) // Az érzékelő analóg kimenetének 200-szoros olvasása {analógérték = analóg_érték + analóg olvasás (A0); // adja hozzá a 200} analógérték = analóg_érték / 500,0 értékeit; // Vegyük az átlagos VRL = analóg érték * (5,0 / 1023,0);// Analóg érték konvertálása feszültségre // RS = ((Vc / VRL) -1) * RL az Rs = ((5,0 / VRL) -1) * RL adatlapból kapott képletek; // RS / RO értéke 3,6, amint azt az Ro = Rs / 3,6 adatlap grafikonjáról kaptuk; Serial.print ("Ro friss levegőn ="); Soros.println (Ro); // Számított Ro késés megjelenítése (1000); // 1 másodperc késése}
Megjegyzés: Az Ro értéke változó lesz, hagyja az érzékelőt legalább 10 órán keresztül előmelegíteni, majd használja az Ro értékét.
Arra a következtetésre jutottam, hogy az érzékelőm Ro értéke 30 KΩ (amikor R L 47kΩ). A tiéd kissé eltérhet.
Mérjük meg az Rs értékét:
Most, hogy ismerjük az Ro értékét, a fenti két képlet segítségével könnyen kiszámíthatjuk az R értékét. Vegye figyelembe, hogy az Rs korábban kiszámított értéke friss levegőre vonatkozik, és nem lesz ugyanaz, ha ammónia van a levegőben. Az R értékének kiszámítása nem nagy kérdés, amelyet közvetlenül a végső programban tudunk kezelni.
Az Rs / Ro arány és a PPM aránya:
Most, hogy tudjuk, hogyan kell mérni az Rs és Ro értékét, meg tudjuk találni annak arányát (Rs / Ro). Ezután használhatjuk az alább látható diagramot, amely a PPM megfelelő értékére vonatkozik.
Bár az NH3 vonal (cián szín) lineárisnak tűnik, valójában nem lineáris. A megjelenés azért van, mert a méretarány nem egyenletesen oszlik meg a megjelenés szempontjából. Tehát az Rs / Ro és a PPM kapcsolata valójában logaritmikus, amelyet az alábbi egyenlet képviselhet.
log (y) = m * log (x) + b ahol y = arány (Rs / Ro) x = PPM m = a vonal meredeksége = metszéspont
Az m és b értékének megtalálásához meg kell vizsgálnunk a gázvezetékünk két pontját (x1, y1) és (x2, y2). Itt ammóniával dolgozunk, tehát az általam figyelembe vett két pont (40,1) és (100,0,8), amint az a fenti képen látható (pirosként jelölve) piros jelöléssel.
m = / m = log (0,8 / 1) / log (100/40) m = -0,243
Hasonlóképpen kapjuk meg a (b) esetében a középpont értékét (x, y) a grafikonról, amely (70,0,75), amint az a fenti képen látható (kékkel jelölve)
b = log (y) - m * log (x) b = log (0.75) - (-0.243) * log (70) b = 0.323
Most, hogy kiszámoltuk m és b értékét, az (Rs / Ro) értéket és az alábbi képletet felhasználhatjuk a PPM-re.
PPM = 10 ^ {/ m}
Program a PPM kiszámításához az MQ szenzor segítségével:
Az alábbiakban bemutatjuk a teljes programot a PPM kiszámításához egy MQ érzékelő segítségével. Néhány fontos sort elmagyarázunk az alábbiakban.
Mielőtt a program meg kell takarmány a értékei a Terhelőellenállás (RL), meredeksége (m), Intercept (b) és az ellenállás értéke a friss levegő (Ro). Az ezen értékek megszerzésére vonatkozó eljárást már elmagyaráztuk, ezért most adjuk meg őket
#define RL 47 // Az RL ellenállás értéke 47K #define m -0,263 // Adja meg a számított meredekséget #define b 0,42 // Írja be a kiszámított metszetet #define Ro 30 // Adja meg a talált Ro értéket
Ezután olvassa el a feszültségesést az érzékelőn (VRL), és alakítsa át feszültségre (0–5 V), mivel az analóg olvasás csak 0 és 1024 közötti értékeket ad vissza.
VRL = analogRead (MQ_szenzor) * (5,0 / 1023,0); // Mérje meg a feszültségesést és alakítsa át 0-5V-ra
Most, hogy kiszámítják a VRL értékét, használhatja a fent tárgyalt képletet az Rs értékének és az arány (Rs / Ro) kiszámításához
arány = Rs / Ro; // megtalálja az Rs / Ro arányt
Végül kiszámíthatjuk a PPM-et a logaritmikus képletünkkel, és megjeleníthetjük soros monitorunkon az alábbiak szerint
dupla ppm = pow (10, ((log10 (arány) -b) / m)); // használja a képletet a ppm Serial.print (ppm) kiszámításához; // Ppm megjelenítése
PPM-érték megjelenítése hardveren Arduino és MQ-137 segítségével:
Elég az összes elméletből, építsünk egy egyszerű áramkört az érzékelővel és az LCD-vel, hogy a gáz értékét PPM-ben jelenítsük meg. Itt az általam használt érzékelő az MQ137, amely ammóniát mér, az alábbiakban bemutatom a beállításom kapcsolási rajzát.
Csatlakoztassa az érzékelőt és az LCD-t az áramköri ábra szerint, és töltse fel a program végén megadott kódot. A fent leírtak szerint módosítania kell az Ro értéket. Végezze el a paraméterek megváltoztatását is, ha RL-ként más ellenállást használ, mint 4,7 K.
Hagyja bekapcsolva a készüléket legalább 2 órán keresztül, mielőtt bármilyen mérést elvégezne (48 óra ajánlott a pontosabb értékek érdekében). Ezt az időt fűtési időnek nevezzük, amely alatt az érzékelő felmelegszik. Ezt követően látnia kell a PPM értékét és az LCD képernyőn megjelenő feszültséget az alábbiak szerint.
Most, hogy megbizonyosodjunk arról, hogy az értékek valóban kapcsolódnak-e az ammónia jelenlétéhez, tegyük ezt a berendezést egy zárt tartályba, és küldjünk bele ammóniagázt, hogy ellenőrizzük, növekednek-e az értékek. Nincs nálam megfelelő PPM mérő, kalibrálja azt, és nagyon jó lenne, ha valaki, aki rendelkezik mérővel, kipróbálhatná ezt a beállítást, és tudatna velem.
Az alábbi videót megnézheti, hogy ellenőrizze, hogyan változtak az értékek az ammónia jelenléte alapján. Remélem, megértette a koncepciót, és élvezettel tanulta. Ha kétségei vannak, hagyja őket a megjegyzés részben vagy részletesebb segítségért használja a fórumot itt.