- Senzory plynu série MQ
- Príprava hardvéru:
- Prístup k meraniu PPM zo senzorov plynu MQ:
- Výpočet hodnoty Ro pri čistom vzduchu:
- Zmerajte hodnotu Rs:
- Pomer Rs / Ro s PPM:
- Program na výpočet PPM pomocou senzora MQ:
- Zobrazenie hodnoty PPM na hardvéri pre Arduino a MQ-137:
Už od doby priemyselného veku sa ľudstvo rýchlo rozvíjalo. Pri každom pokroku tiež znečisťujeme naše životné prostredie a nakoniec ho zhoršujeme. Globálne otepľovanie je teraz alarmujúcou hrozbou a dokonca aj vzduch, ktorý dýchame, sa stáva kritickým. Dôležitosť preto začalo získavať aj monitorovanie kvality ovzdušia. V tomto článku sa teda naučíme, ako používať akýkoľvek plynový senzor série MQ s Arduinom a ukazovať výstup v PPM (parts per million). PPM sa tiež vyjadruje ako miligramy na liter (mg / l). Tieto snímače sú bežne dostupné a sú tiež spoľahlivé na meranie rôznych druhov plynov uvedených nižšie
Senzory plynu série MQ
- Oxid uhličitý (CO2): MG-811
- Oxid uhoľnatý (CO): MQ-9
- Celkové prchavé organické látky (TVOC): CCS811
- Ekvivalentný oxid uhličitý (eCO2): CCS811
- Oxid kovu (MOX): CCS811
- Amoniak: MQ-137
- Kvalita ovzdušia: MQ-135
- LPG, alkohol, dym: MQ2
Už sme použili MQ2 na snímanie dymu a MQ-135 na projekt monitorovania kvality ovzdušia. Tu budem používať senzor MQ-137 od sainsmart na meranie amoniaku v ppm. So snímačom v ruke som prešiel všetky dostupné výukové programy a zistil som, že neexistuje žiadna správna dokumentácia o tom, ako merať plyn v ppm. Väčšina výukových programov sa zaoberá iba analógovými hodnotami alebo zavádza niektoré konštanty, ktoré nie sú spoľahlivé na meranie všetkých druhov plynov. Takže po dlhom hraní na internete som konečne zistil, ako používať tieto plynové snímače série MQ na meranie ppm pomocou Arduina. Vysvetľujem veci zdola bez akýchkoľvek knižníc, aby ste mohli tento článok použiť pre akýkoľvek plynový senzor, ktorý máte k dispozícii.
Príprava hardvéru:
Senzory plynu MQ je možné zakúpiť buď ako modul alebo len ako senzor samotný. Ak chcete merať iba ppm, je najlepšie kúpiť si samotný snímač, pretože modul je vhodný iba na použitie kolíka Digital. Takže ak ste si modul už zakúpili, musíte vykonať malý hack, o ktorom sa bude diskutovať ďalej. Zatiaľ predpokladajme, že ste si senzor zakúpili. Pinout a pripojenie snímača sú zobrazené nižšie
Ako vidíte, stačí pripojiť jeden koniec „H“ k napájaniu a druhý koniec „H“ k zemi. Potom skombinujte obe A a obidve B. Pripojte jednu súpravu na napájacie napätie a druhú na analógový pin. Rezistor R L hrá veľmi dôležitú úlohu pri fungovaní senzora. Takže si poznačte, ktorú hodnotu používate, odporúča sa hodnota 47k.
Ak ste si už zakúpili modul, potom by ste mali sledovať svoje PCB stopy nájsť hodnotu svojho R L na doske. Spoločnosť Grauonline už túto prácu vykonala za nás a schéma zapojenia dosky snímača plynu MQ je uvedená nižšie.
Ako vidíte, rezistor R L (R2) je pripojený medzi pin Aout a zem, takže ak máte modul, hodnota R L sa dá merať pomocou multimetra v rezistenčnom režime cez pin Vout a Vcc modulu. V mojom plynovom senzore sainsmart MQ-137 bola hodnota RL 1K a bola tu umiestnená, ako je znázornené na obrázku nižšie.
Avšak tvrdenie webové stránky, ktoré poskytuje variabilné hrniec R L, ktorá nie je pravda, ako môžete jasne vidieť v schéme, je bánk sa používa na nastavenie premennej napätia pre op-amp a nemá nič spoločného s R l. Takže musíme ručne spájkovať rezistor SMD (1K) zobrazený vyššie a musíme použiť vlastný rezistor cez kolík uzemnenia a Vout, ktorý bude pôsobiť ako RL. Najlepšia hodnota pre RL bude 47K, ako navrhuje datasheet, preto ich budeme používať rovnako.
Prístup k meraniu PPM zo senzorov plynu MQ:
Teraz, keď vieme, že hodnota R L umožňuje pokračovať v tom, ako skutočne merať ppm z týchto senzorov. Rovnako ako všetky senzory, východiskovým bodom je jeho údajový list. Tu je uvedený údajový list MQ-137, ale aby ste našli správny údajový list pre váš snímač. V datasheete potrebujeme iba jeden graf, ktorý bude vykreslený proti (Rs / Ro) VS PPM, to je ten, ktorý potrebujeme pre naše výpočty. Takže si ho pripravte a majte ho niekde poruke. Ten pre môj senzor je zobrazený nižšie.
Ukázalo sa, že senzor MQ137 dokáže merať NH3, C2H6O a dokonca aj CO. Ale tu ma zaujímajú iba hodnoty NH3. Rovnakou metódou však môžete vypočítať ppm pre akýkoľvek snímač, ktorý sa vám páči. Tento graf je pre nás jediným zdrojom na zistenie hodnoty ppm a ak by sme mohli nejako vypočítať pomer Rs / Ro (os X), môžeme pomocou tohto grafu nájsť hodnotu ppm (os Y). Aby sme našli hodnotu Rs / Ro, musíme nájsť hodnotu Rs a hodnotu Ro. Kde Rs je odpor snímača pri koncentrácii plynu a Ro je odpor snímača v čistom paneli.
Áno… toto je plán, pozrime sa, ako sa z toho dostaneme….
Výpočet hodnoty Ro pri čistom vzduchu:
Všimnite si, že v grafe je hodnota Rs / Ro pre vzduch konštantná (hrubá modrá čiara), takže to môžeme využiť vo svoj prospech a povedať, že keď snímač pracuje na čerstvom vzduchu, hodnota Rs / Ro bude 3,6, pozrite si obrázok nižšie
Rs / Ro = 3,6
Z údajového listu tiež dostaneme vzorec na výpočet hodnoty Rs. Vzorec je uvedený nižšie. Ak vás zaujíma, ako je tento vzorec odvodený, môžete si ich prečítať v systémoch Jay Con, rád by som im tiež pripísal kredit, ktorý mi pomohol vyriešiť tento problém.
V tomto vzorci je hodnota Vc naše napájacie napätie (+ 5 V) a hodnota R L je hodnota, ktorú sme už vypočítali (47 K pre môj snímač). Ak napíšeme malý program Arduino, mohli by sme nájsť aj hodnotu V RL a nakoniec vypočítať hodnotu Rs. Ďalej som uviedol program Arduino, ktorý číta analógové napätie (V RL) snímača a pomocou tohto vzorca počíta hodnotu Rs a nakoniec ju zobrazuje na sériovom monitore. Program je dobre vysvetlený v sekcii komentárov, takže tu preskakujem jeho vysvetlenie, aby bol tento článok krátky.
/ * * Program na meranie hodnoty R0 pre známe RL na čerstvom vzduchu * Program: B.Aswinth Raj * Webová stránka: www.circuitdigest.com * Dátum: 28. 12. 2017 * / // Tento program funguje najlepšie na čerstvom vzduchu v miestnosti s teplotou Teplota: 20 ℃, Vlhkosť: 65%, koncentrácia O2 21% a keď je hodnota Rl 47K #define RL 47 // Hodnota odporu RL je 47K neplatné nastavenie () // Beží iba raz {Serial.begin (9600); // Inicializácia sériového COM pre zobrazenie hodnoty} void loop () {float analog_value; plavák VRL; plavák Rs; plavák Ro; for (int test_cycle = 1; test_cycle <= 500; test_cycle ++) // Prečítajte si analógový výstup snímača 200-krát {analog_value = analog_value + analogRead (A0); // pridaj hodnoty pre 200} analog_value = analog_value / 500.0; // Vezmite priemernú hodnotu VRL = analog_value * (5,0 / 1023,0);// Prevod analógovej hodnoty na napätie // RS = ((Vc / VRL) -1) * RL sú vzorce, ktoré sme získali z údajového listu Rs = ((5.0 / VRL) -1) * RL; // RS / RO je 3,6, ako sme získali z grafu technického listu Ro = Rs / 3.6; Serial.print ("Ro na čerstvom vzduchu ="); Serial.println (Ro); // Zobraziť vypočítané oneskorenie Ro (1000); // oneskorenie 1 s}
Poznámka: Hodnota Ro sa bude meniť, nechajte senzor predhriať najmenej 10 hodín a potom použite hodnotu Ro.
Dospel som k záveru, že hodnota Ro pre môj snímač je 30 KΩ (keď je R L 47kΩ). Váš sa môže mierne líšiť.
Zmerajte hodnotu Rs:
Teraz, keď poznáme hodnotu Ro, môžeme ľahko vypočítať hodnotu R pomocou vyššie uvedených dvoch vzorcov. Upozorňujeme, že hodnota Rs, ktorá bola vypočítaná skôr, je určená pre čerstvý vzduch a nebude rovnaká, ak je vo vzduchu amoniak. Výpočet hodnoty R nie je veľkým problémom, o ktorý sa môžeme priamo postarať v konečnom programe.
Pomer Rs / Ro s PPM:
Teraz, keď vieme, ako merať hodnotu Rs a Ro, dokážeme nájsť jej pomer (Rs / Ro). Potom môžeme pomocou tabuľky (zobrazenej nižšie) vztiahnuť na zodpovedajúcu hodnotu PPM.
Aj keď sa čiara NH3 (azúrová farba) javí ako lineárna, v skutočnosti to nie je lineárne. Vzhľad je spôsobený tým, že mierka je pre vzhľad rozdelená nejednotne. Vzťah medzi Rs / Ro a PPM je teda v skutočnosti logaritmický, čo možno znázorniť nasledujúcou rovnicou.
log (y) = m * log (x) + b kde, y = pomer (Rs / Ro) x = PPM m = sklon priamky b = priesečník
Aby sme našli hodnoty mab, musíme brať do úvahy dva body (x1, y1) a (x2, y2) na našom plynovode. Tu pracujeme s amoniakom, takže dva body, ktoré som považoval, sú (40,1) a (100,0,8), ako je to znázornené na obrázku vyššie (označené červenou farbou) s červenou značkou.
m = / m = log (0,8 / 1) / log (100/40) m = -0,243
Podobne pre (b) dostaneme strednú hodnotu (x, y) z grafu, ktorý je (70,0,75), ako je znázornené na obrázku vyššie (označené modrou farbou)
b = log (y) - m * log (x) b = log (0,75) - (-0,243) * log (70) b = 0,323
To je všetko, teraz, keď sme vypočítali hodnotu mab, môžeme hodnotu (Rs / Ro) prirovnať k PPM pomocou nasledujúceho vzorca
PPM = 10 ^ {/ m}
Program na výpočet PPM pomocou senzora MQ:
Kompletný program pre výpočet ppm za použitia snímača MQ je uvedený nižšie. Ďalej je vysvetlených niekoľko dôležitých riadkov.
Pred pokračovaním v programe musíme zadať hodnoty Zaťažovací odpor (RL), Sklon (m), Intercept (b) a hodnota Odpor na čerstvom vzduchu (Ro). Postup získania všetkých týchto hodnôt už bol vysvetlený, takže ich teraz doplňte
#define RL 47 // Hodnota odporu RL je 47K #define m -0,263 // Zadajte vypočítaný sklon #define b 0,42 // Zadajte vypočítaný úsek #define Ro 30 // Zadajte nájdenú hodnotu Ro
Potom prečítajte pokles napätia na snímači (VRL) a konvertujte ho na napätie (0 V až 5 V), pretože analógové načítanie vráti iba hodnoty od 0 do 1024.
VRL = analogRead (MQ_sensor) * (5,0 / 1023,0); // Zmerajte pokles napätia a prevedte na 0-5V
Teraz, keď sa počíta hodnota VRL, môžete na výpočet hodnoty R a tiež pomeru (Rs / Ro) použiť vzorec diskutovaný vyššie.
pomer = Rs / Ro; // nájsť pomer Rs / Ro
Nakoniec môžeme vypočítať PPM pomocou nášho logaritmického vzorca a zobraziť ho na našom sériovom monitore, ako je uvedené nižšie
dvojnásobok ppm = prášok (10, ((log10 (pomer) -b) / m)); // použite vzorec na výpočet ppm Serial.print (ppm); // Zobraziť ppm
Zobrazenie hodnoty PPM na hardvéri pre Arduino a MQ-137:
Dosť na to, aby sme vytvorili celú teóriu, vytvorme jednoduchý obvod so senzorom a LCD na zobrazovanie hodnoty plynu v PPM. Tu používam senzor MQ137, ktorý meria amoniak, schéma zapojenia pre moje nastavenie je uvedená nižšie.
Pripojte snímač a LCD, ako je to znázornené na schéme zapojenia, a nahrajte kód uvedený na konci programu. Ako je vysvetlené vyššie, musíte upraviť hodnotu Ro. Zmeny v hodnotách parametrov vykonajte aj v prípade, že používate iný odpor ako RL iný ako 4,7 kB.
Pred akýmikoľvek meraniami nechajte zariadenie zapnuté najmenej 2 hodiny (pre presnejšie hodnoty sa odporúča 48 hodín). Tento čas sa nazýva čas zahrievania, počas ktorého sa snímač zahrieva. Potom by ste mali byť schopní vidieť hodnotu PPM a napätie zobrazené na obrazovke LCD, ako je uvedené nižšie.
Teraz, aby sme sa uistili, či hodnoty skutočne súvisia s prítomnosťou amoniaku, umiestnime toto zariadenie do uzavretej nádoby a pošleme do nej plynný amoniak, aby sme skontrolovali, či sa hodnoty zvyšujú. Nemám so sebou poriadny merač PPM, ktorý by som to kalibroval, a bolo by skvelé, keby niekto s meračom mohol toto nastavenie otestovať a dať mi vedieť.
Môžete si pozrieť video nižšie a skontrolovať, ako sa hodnoty líšili podľa prítomnosti amoniaku. Dúfam, že ste tomuto konceptu porozumeli a učenie sa vám páčilo. Ak máte pochybnosti, nechajte ich v sekcii komentárov alebo pre podrobnejšiu pomoc použite fórum tu.