Analyzátor CO

 

 

Analyzátor CO    -   senzor MQ-7

 

CO - nebezpečný plyn

Oxid uhelnatý je nebezpečný, toxický a hořlavý plyn vznikající nedokonalým spalováním. Je přítomen ve výfukových plynech, v kouřových a požárních zplodinách, je bez barvy a zápachu. Povolená koncentrace v pracovním prostředí je 0.002% CO pro 8mi hodinovou pracovní dobu a 0.01% CO pro okamžité opuštění pracoviště (361/2007 Sb., příloha č.2, číslo CAS 630-08-0). CO vybuchuje ve směsi se vzduchem v koncentracích 12,5-74,2 %.

Z uvedeného vyplývá, že oxid uhelnatý se měří z hygienických, ekologických, protipožárních a protivýbuchových důvodů.  Hygienické důvody směřuji k ochraně proti otravě oxidem uhelnatým (vnitřní zadušení karboxyhemoglobínem - bolesti hlavy, závratě, zvracení, smrt během několika minut při vdechování koncentrace cca 0,5% CO). Měření se pohybují v mezích cca 0,002-0,02%, např. v kotelnách. Ekologické důvody se vztahují např. na zplodiny spalovacích motorů při STK (měří se do 1 % CO). Protipožární prevence sleduje výsky CO požárními čidly (nad 0,01%). Protivýbuchová opatření se týkají protivýbuchové prevence a zásahů požárních a báňských zásahových sborů. V těchto případech je vhodné měřit CO v koncentracích řádově v jednotkách %.

 Předložený analyzátor byl sestaven se záměrem ověřit horní hranici detekce v rozsahu např.  0,01% - 3%? CO.

 

Senzor MQ-7

Čínský výrobce Hanwei nabízí levný senzor MQ-7  s rozsahem měření 0,002-0,2 % CO, viz datový list výrobce (někteří prodejci nabízejí desky se senzorem MQ-7 určené k detekci CO do koncentrace 1%). Senzor MQ7 je vhodný pro trvalé monitorování CO z hygienických důvodů a to za trvalých a konstantních podmínek v místě jeho instalace, na které je senzor kalibrován (například v kotelnách). V místě instalace senzoru by se neměly vyskytovat žádné plynové příměsi. Kyslík by měl být trvale na běžné úrovni výskytu ve vzduchu a nemělo by docházet k výraznějším změnám teploty a vlhkosti. Senzor není vhodný pro ojedinělá měření a přenosná zařízení. Delší přerušení vyhřívání spirály senzoru způsobuje změnu jeho detekční citlivosti. 

 

vyhřívací spirála:  H-H  33 Ω,  elektroda A,  elektroda B, klidový odpor mezi A-B elektrodami 12 k (2-20K, ovlivňuje teplota, vlhkost),  patice je stranově rovnocenná

Senzor MQ-7 obsahuje vyhřívací spirálu 33 Ω a elektrody (Pt, Au) s kontaktem na vrstvu oxidu ciničitého (SnO2) citlivou na předmětný plyn. Odpor mezi elektrodami je u senzoru MQ-7 ovlivněn především koncentrací CO. Senzor je určen k trvalému monitoringu CO. Rušivými vlivy měření jsou:  změna teploty, vlhkosti, nedostatek kyslíku, delší přerušení napájení a přítomnost nežádoucích plynů, viz obr. č. 3 a č. 4 datového listu výrobce. Zjednodušeně lze vyjádřit, že "hobby" použití senzoru MQ-7 bez korekce na vliv teploty a vlhkosti je srovnatelné s měřením CO pomoci detekčních trubic (+/- 25%).

Základní zapojení senzoru MQ-7:

VH - napájení vyhřívací spirály, VL - analogový signál měření (0,2 - 4 V),  RL - zatěžovací odpor elektrody (nastavitelný 5-47K)  

Sentor MQ-7 je možné použít ve dvou režimech:

- režim cyklického vyhříváním spirály -  60 sekund 5V, 90 sekund 1,4 V (doporučen výrobcem),

- režim zjednodušený,  bez cyklického vyhřívání, trvale vyhříván 5V.

 

Cyklický režim je nutno použít při měření nízkých koncentrací, viz výše popsané hygienické důvody. Režim vyhřívání a chladnutí zabezpečuje regeneraci senzoru. Bez korekce na teplotu a vlhkost lze orientačně detekovat koncentraci CO cca od 0,004%. Senzor se nejprve vyhřívá 60 sekund připojením napětí 5V (dochází k desorpci sorbovaných plynů), poté se napájení vyhřívání spirály přepne na napájecí napětí 1,4 V a na konci periody 90 sekund se odečte měřená koncentrace. V tomto případě musí být odděleno napájení spirály vůči napájení elektrody. Napájení elektrody zůstává konstantně připojené na úrovni 5V (viz shéma zapojení uvedeno výše).

Zjednodušený režim pracuje s trvalým připojením napájení spirály na napětí 5V a lze takto detekovat náhodilý výskyt CO od cca 0,01%. Není vhodné, aby byl senzor trvale vystaven působení CO. Po delším působení CO  se při neperiodickém vyhřívání snižuje detekční citlivost senzoru. Vystavení senzoru čistému vzduchu navrátí senzor do stavu připraveného opět relevantně měřit. V některých případech nabídky senzoru MQ-7 je uváděn rozsah měření do 1% CO. Takovému použití vyhovuje zjednodušené zapojení:

 

Oživení senzoru MQ-7

Výrobce ukládá oživení senzoru před jeho použitím. Lépe lze hovořit o formátování senzoru připojením na aktivní měřící obvod po dobu 48 hodin. V průběhu formátování lze pozorovat postupný pokles analogového napětí VL z úrovně více jak 1V na úroveň okolo 0,2 V. Při formátování byla zjištěna v čistém vzduchu konstantní hodnota VL cca 0,25 V po 24 hodinách. Formátování je doporučeno provést v místě trvalé instalace senzoru před jeho používáním. Takto naformátovaný senzor je vhodné následně kalibrovat cejchovním plynem CO na mezní varovnou koncentraci.  

 

Experimentální měření 

Klidový průběh napětí VL byl ověřen (po naformátování) v obou režimech senzoru pomoci záznamu napětí VL na SD kartu s krokem 0,1 sekundy. Následující graf zachycuje průběh napětí VL v cyklu 60 a 90 sekund při výše popsané cyklické změně napájení vyhřívací spirály. V prvních 60-ti sekundách je spirála vyhřívána napětím 5V. Vidíme strmý nárůst napětí VL na 1.1 V a jeho pokles až do vyrovnání na úrovni cca 0,25 V. V této fázi dochází k desorpci plynů z elektrod a přípravě senzoru na měření. Následně dojde k přepnutí napájení spirály na 1,4 V a přípravě na měření koncentrace CO. Relevantní časový úsek pro odečtení měřené hodnoty jsou poslední sekundy úseku vyhřívání spirály napětím 1,4 V. 

Ověření průběhu "klidového" napětí senzoru proběhlo v čistém vzduchu malé uzavřené dílny a vyjadřuje "klidový režim senzoru" při teplotě ovzduší v dílně 24 stC, 42 % rel. vlhkosti. Žel, bylo zjištěno, že i malé teplotní a vlhkostní rozdíly (bez přítomnosti CO) ovlivňují klidové napětí VL. Červený průběh byl naměřen po vyvětrání dílny, což představovalo snížení teploty cca o 2 stC a snížení vlhkosti cca o 4%. Tento jev byl opakovaně potvrzen. 

 

 

Citlivost na přítomnost CO v cyklickém režimu byla ověřena kouřem cigarety zachyceného do sáčku s hadičkou a následně přivedeného na senzor. Vliv CO je patrný dynamickým nárůstem napětí VL v 83tí sekundě na hodnotu 2,5 V. 

Průběh napětí ve zjednodušeném režimu senzoru MQ-7, tj. při trvalém napájení spirály (5V) je na dalším grafu.  Nejprve je patrné prvotní vyhřívání spirály po zapnutí a následně po 60ti sekundách strmý nárůst vlivem přivedeného cigaretového kouře obdobným způsobem jako u předchozího případu. 

 Uvedené výsledky dokladují, že pro "hobby" měření relativně vyšších koncentrací CO postačí provozovat senzor MQ-7 ve zjednodušeném režimu. 

 

Vyhodnocení koncentrace CO v ppm

Výstupní napětí VL senzoru je strmě exponenciální s dynamickým nárůstem v nízkých koncentracích CO a následně s minimálním nárůstem ve vyšších koncentracích.  V technické praxi ČR převládá vyjádření objemové koncentrace CO v %. Globálně lze konstatovat, že většinou se používá rozměr "ppm", tj. "parts per million", podílová zkratka používaná především v imperiální měrové soustavě. Zkratka "ppm" vyjadřuje miliontou část ze 100%, tj.  1ppm = 0,0001%. 

Přepočet měřeného napětí VL na "ppm" vychází z technických vlastnosti senzoru MQ-7. Obrázek č.3 dokumentace senzoru uvádí logaritmický vztah mezi koncentrací ppm a poměrem odporů senzoru "Rs/Ro", kde Rs je odpor senzoru v daném bodu měření a Ro je konstantní odpor o hodnotě odpovídající odporu Rs v koncentraci CO=100 ppm. Dále dokumentace uvádí výpočet odporu Rs z měřeného napětí VL, hodnoty zatěžovaciho odporu RLa napájecího napětí Vc ,které je 5 V:

Rs/RL = (Vc-VL)/VL        tj.       Rs = RL((5-VL)/VL)

 Odpor senzoru Rs v bodu měření vypočítáme pro dané zapojení z naměřené hodnoty napětí VL, napájecího napětí (5 V) a  hodnoty použitého odporu RL , např. 1000 Ω. Klidové napětí senzoru  VL ve vzduchu se pohybuje podle výrobce v rozmezí  0,1 - 0,3 V a bylo ověřeno dalším postupem pro účel stanovení odporu Ro. 

Odpor Ro je použit v celém intervalu charakteristiky jako konstanta a je možné tento odpor exaktně ověřit za použití kalibračního plynu 100 ppm CO. V "hobby" podmínkách, kdy nemáme k dispozici kalibrační plyn lze použít cigaretový dým a případně detekční trubici. Pro tento účel byla připravena odběrová nádoba s vodou:

 

Obsah CO v cigaretovém dýmu je v oboru medicíny respektován v koncentraci 1200 - 1500 ppm (silný tabák). Výsledky výzkumu obsahu CO v dýmu tabákových výrobků se různí, viz např. zde obr.2. Pro daný pokus byla použita cigareta s nižším hmotnostním obsahem oxidu uhelnatého v jedné cigaretě, tzv. "laitka" (8 mg CO/cigareta, uvedeno na obalu). Vypouštěním vody z nádoby byl do nádoby nasát cigaretový kouř. Cigareta byla následně nahrazena detekční trubicí s harmonikovým nasávačem a jedním zdvihem s použitím trubice typu CO 0,001% byl zjištěn obsah CO.

Detekční trubicí byl zjištěn obsah CO = 0,1%:    

 

 

Senzore MQ-7 vykazoval pro danou směs napětí VL = 1,19 V :

 

  Hodnota napětí senzoru VL = 1,19 V byla dále využita ke stanovení odporu Ro. Podle grafu č. 3 výrobce a grafu indického autora Devadosse, který převedl graf výrobce do inverzní závislosti os x-y,  je hodnota poměru odporu Rs/Ro pro danou koncentraci rovna cca 0,205.  

Odpor senzoru Rs pro danou směs byl vypočítán z již uvedeného vzorce: 

Rs = RL((5-VL)/VL)     tj .    Rs = 1000((5-1,19)/1,19) = 3202

pak Ro :

Rs/Ro = 0,205  = >     Ro = Rs/0,205 =  3202/0,205 =  15619,5

Pro další výpočty byla zohledněna hodnota odporu Ro :

Ro = 15 620 Ω

Autor Devadoss odvodil rovnici regrese, viz vpravo na výše uvedeném grafu, kterou lze využít k výpočtu koncentrace CO v ppm :

ppm = 106.13 (Rs/Ro)-1.409

Z výše uvedeného byl pro výpočet koncentrace ppm CO použit algoritmus pro zatěžovací odpor elektrod 1000 Ω, napájecí napětí 5V a hodnotu odporu Ro = 15 620  :

Rs = 1000 ((5-VL)/VL)

ppm = 106.13 (Rs/15 620)-1.409

 

 

Zapojení senzoru MQ-7 s Arduinem 

Byl zvolen zjednodušený režim vyhřívání, tj. trvalé připojení spirály senzoru na napájecí napětí 5V. Byla použita deska Arduino NANO,  zobrazovač LCM1602 i2c, stabilizátor napětí 7805 a dvě baterie LiPo 3,7V. Zapojení a oživení zobrazovače LCM1602 i2c je uvedeno v kapitole LCD displej.

 

 Pro bateriové napájení byly zvoleny dva akumulátory LiPo R621A vybavené elektronickým jištěním proti nadměrnému vybití a přebití (elektronika je součásti každé baterie). V sériovém zapojení byly měřeny minimální rozdíly na jednotlivých článcích (0,05 V). Lipo akumulátor 3,7 V se nabíjí na max. 4,2 V a vybíjí na max. 2,9 V. Dvě baterie v sérii vykazovaly (dobíjeno adapterem 9V, 600 mA) automatické přerušení dobíjení vlivem vnitřní elektroniky při dosažení napětí 8,6 V, poté pokles na 8 V. Stabilizátor 7805 přeruší svou funkci při vstupním napětí 6,6 V. Deska NANO byla napojena pinem Vin přímo na baterie. Interní stabilizátor desky NANO poskytne v tomto případě referenční napětí deky 5 V (změřeno 5,01 V). Senzor MQ-7 má odběr 150 mA, celkový odběr činil 210 mA. Baterie vydržely lehce přes 1 hodinu.  Algoritmus skeče byl doplněn vyhodnocením stavu baterie 0 - 100 % (6.6 - 8,0 V). K tomuto účelu byl použit trimr 5K, na kterém bylo nastaveno na analogovém pinu A2 vracení hodnoty 1023 pro napětí 8,0 V, viz téma "Měření napětí" (zde bez příkazu "analogReference"). Analogové napětí měřené senzorem MQ-7 bylo připojeno na pin A0. 

Analyzátor oživíme kódem "Analyzator_CO" :

 

Skeč "Analyzator_CO.ino" :

// Zadej napětí desky Arduino ve voltech (referenční napětí):
float Ur=5.01;                                
// Zadej zatěžovací odpor senzoru v ohmech:
int RL=1000;                                  
// Zadej odpor senzoru Ro v ohmech: 
int R0=15620;                                  

//****************************************************************

#include <Wire.h>                          		//knihovny, případně knihovna "LCD.h", viz kapitola "LCD displej"                       
#include <LiquidCrystal_I2C.h>                                  
LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7,3,POSITIVE);   //konfigurace displeje, hexa adresa 0x3F 
int H=0;                                                //deklarace proměnné pro čtení hodnoty z pinu A0           
float Um=0;                                             //deklarace proměnné pro napětí senzoru ve voltech          
float R1;                                               //deklarace proměnné pro odpor senzoru při měření          
float R;                                                //deklarace proměnné pro poměr odporů          
int C;                                                  //deklarace proměnné pro koncentraci CO v ppm          
int B=0;                                                //deklarace pomocné proměnné          
int S1=0;                                               //deklarace pomocné proměnné          
int SB=0;                                               //deklarace proměnné pro tisk ppm CO          

void setup()   						//zobrazení úvodních textů při zapnutí, viz kapitola "LCD displej"
{lcd.begin(16,2);                                               
pinMode(13, OUTPUT);                                            
lcd.setCursor(5,0);                                           
lcd.print("ARDUINO ");                                           
lcd.setCursor(1,2);                                            
lcd.print("Analyzator  CO");                                                
delay(15000);                                                   
lcd.clear();
lcd.setCursor(6,0);                                           
lcd.print("CEKEJ");                                           
lcd.setCursor(1,2);                                            
lcd.print("senzor heating ");                                                
delay(45000);                                                  
lcd.clear();}                            

void loop()                                            	//smyčka - načtení pinu A0 (tj. č.14) a výpočet koncentrace CO ppm, uloženo do proměnné C       
{H=analogRead(14);                            		//načtení napětí pinu A0
Um=(Ur*H)/1023;                              		//přepočet načtené hodnoty pinu A0 na napětí ve voltech 
R1=((5-Um)/Um)*RL;                           		//výpočet odporu senzoru při měření, 5 - napětí na elektrodách senzoru 5V,
R=(R1/R0);                                   		//výpočet poměru odporů při měření
C=(pow(R,-1.409))*106.13;                    		//výpočet koncentrace ppm CO podle Devadosse
B=analogRead(16);                            		//načtení napětí pinu A2(tj. č.16) a dále výpočet stavu baterie v %, uloženo do proměnné SB
S1=(1023-B)/1.9;     					//nabito 100% = 8.00 = 1023, vybito 0% = 6.6 V = 842                         
SB=100-S1;                                   		//konstanta 1.9:    "(1023-842)/100=1,81"   ověřeno a upraveno na 1.9
lcd.setCursor(0,0);                                     //nastavení kurzoru displeje, dále zobrazení na displeji      
lcd.print("Konc.CO:");                                           
lcd.setCursor(8,0);
if (Um>4.1)  						//horní limit zobrazení ppm, při napětí senzoru 4,1V zobrazí 30000ppm                                
{C=30000;}                           
if (Um<0.531)    					//dolní limit zobrazení ppm, při napětí senzoru 0,531 zobrazí 0ppm                             
{C=0;}  
lcd.print(C);        					//zobrazení koncentrace CO v ppm                        
lcd.setCursor(13,0);
lcd.print("ppm");                        
lcd.setCursor(0,2);
lcd.print("Us=");                           
lcd.print(Um);         					//zobrazení měřeného napětí senzoru ve voltech                     
lcd.setCursor(7,2);
lcd.print("V");
lcd.setCursor(9,2);
lcd.print("Bat");
lcd.setCursor(12,2);
if (SB<5)             					//limit zobrazení vybití baterie, méně než 5% zobrazí 0                    
{SB=0;}                                     
lcd.print(SB);        					//zobrazení stavu baterie v %                     
lcd.setCursor(15,2);
lcd.print("%");                   
delay (2000);                       			//čeká 2 sekundy       
lcd.clear();}                               		//vymaže displej a smyčka se vrátí k novému měření
 

 

 

Skeč nahrajeme do Arduina a zařízení přepneme na baterie. Po předehřátí senzoru (1 minuta) probíhá měření každé 2 sekundy.

 

Mechanické provedení

Senzor MQ-7 byl opatřen připojovacím kabelem z důvodu operativního použití. Kabel byl na straně senzoru vybaven paticí "MQ Socket" a kovovým pouzdrem.  Ostatní komponenty byly umístěny do kuprexitového boxu se třemi konektory - připojení senzoru, dobíjení, signál senzoru pro účely záznamu měření.

 

 

Ověření funkce

Po zapnutí se zobrazí úvodní texty po dobu 1 minuty kdy dochází k předehřátí senzoru. Poté se zobrazí informace o koncentraci CO v ppm, napětí senzoru ve voltech a stav baterie v %, viz displej v čistém vzduchu:

 

Analyzátor byl opakovaně vystaven cigaretovému kouři, kdy byly měřeny koncentrace v rozmezí 300 - 800 ppm.

 

 

 

Rušivé vlivy

Jak již bylo uvedeno, senzor MQ-7 je ovlivňován rušením - změnou teploty, vlhkosti, poklesem kyslíku a rušivými plyny (H2, LPG, CH4, Alkohol), např. viz firemní dokumentace obr. č. 3 a č. 4. Z grafu č. 4 lze stanovit, že zvýšení relativní vlhkosti z 33 na 85 % zvýší indikaci CO o cca 20 %.  Měření rovněž ovlivňuje pokles obsahu kyslíku (min. 2%). Vliv butanu (součást LPG) lze ověřit cigaretovým zapalovačem po uhašení plamene (detekce LPG byla výrazná a dynamická, senzoru MQ7 detekce LPG neprospívá !!!):

 

Závěrem

 Uvedený výpočet koncentrace "ppm"  vychází z matematické regrese charakteristiky výrobce. Tento postup lze na základě zpětného přepočtu považovat za matematicky správný, je ovšem nutno respektovat rušivé faktory ovlivňující senzor.

Výrobce doporučuje každý senzor naformátovat (48 hodin) a následně kalibrovat kalibračním plynem "200 ppmCO (směs CO se vzduchem)" při použití hodnoty odporu RL = 10 K.  Následně doporučuje nastavit odpor RLv konkrétním prostředí na požadovanou úroveň, např. úroveň varovného signálu. Takto nastavený senzor zohlední teplotně vlhkostní podmínky v bodu stabilního provozu a umístění. Pokud je senzor používán pouze ke sledování kalibrované prahové úrovně, např. 100ppm CO v kotelně, nevyžaduje vyhodnocení Arduinem, postačí komparátor napětí připojený na "alarm".

V technické praxi má senzor MQ-7 omezené využití. Je podstatné vnímat senzor MQ-7 jako výrobek určený především ke kontrole prahových limitů CO v konkrétním a stabilním prostředí s dostatkem kyslíku, ve kterém je tento senzor stabilně umístěn, trvale zapnut, a na které je naformátován a kalibrován, nikoliv jako senzor určený k "přenosnému a případně přesnému" měření.  Problémové je měření CO ve výfukových plynech spalovacích motorů ve kterých je vysoká vlhkost, teplota a nízký obsah kyslíku. Pro tyto účely se používají jiné senzory. Po cca tříměsíčním vypnutí zařízení a opětovném měření byla potvrzena výrazná změna citlivosti senzoru. Podle výrobce vyžaduje senzor po delším vypnutí značně dlouhou dobu formátování k navrácení standardní citlivosti. Senzor MQ7 je určen k trvalému monitoringu.

  

Duben 2020, doplněno v září 2020

 

Home

 

Arby

arduinohobby@email.cz