- MQ sērijas gāzes sensori
- Aparatūras sagatavošana:
- Pieeja PPM mērīšanai no MQ gāzes sensoriem:
- Ro vērtības aprēķināšana tīrā gaisā:
- Izmēra R vērtību:
- Rs / Ro attiecība ar PPM:
- Programma PPM aprēķināšanai, izmantojot MQ sensoru:
- Parādot PPM vērtību aparatūrā ar Arduino un MQ-137:
Jau kopš industriālā laikmeta mēs, cilvēce, esam strauji attīstījušies. Ar katru progresu mēs arī piesārņojam savu vidi un galu galā to degradējam. Tagad globālā sasilšana ir satraucoši draudi, un pat gaiss, ko elpojam, kļūst kritisks. Tātad arī gaisa kvalitātes monitorings ir kļuvis arvien nozīmīgāks. Tātad šajā rakstā mēs uzzināsim, kā izmantot jebkuru MQ sērijas gāzes sensoru ar Arduino un parādot izeju PPM (daļas uz miljonu). PPM izsaka arī miligramos uz litru (mg / l). Šie sensori ir plaši pieejami, un tie ir arī uzticami dažādu zemāk redzamo gāzes veidu mērīšanai
MQ sērijas gāzes sensori
- Oglekļa dioksīds (CO2): MG-811
- Oglekļa monoksīds (CO): MQ-9
- Gaistošie organiskie savienojumi (TVOC) kopā: CCS811
- Ekvivalents oglekļa dioksīds (eCO2): CCS811
- Metāla oksīds (MOX): CCS811
- Amonjaks: MQ-137
- Gaisa kvalitāte: MQ-135
- LPG, alkohols, dūmi: MQ2
Mēs jau esam izmantojuši MQ2 dūmu uztveršanai un MQ-135 gaisa kvalitātes monitoringa projektam. Lai mērītu amonjaku ppm, es izmantošu MQ-137 sensoru no sainsmart. Ar sensoru rokās es izgāju cauri visām pieejamajām apmācībām un atklāju, ka nav atbilstošas dokumentācijas par to, kā mērīt gāzi ppm. Lielākā daļa apmācību attiecas vai nu tikai uz analogajām vērtībām, vai arī ievieš dažas konstantes, kas nav ticamas visu veidu gāzes mērīšanai. Tāpēc pēc tam, kad ilgu laiku mocījos tiešsaistē, es beidzot atradu, kā izmantot šos MQ sērijas gāzes sensorus, lai izmērītu ppm, izmantojot Arduino. Es izskaidroju lietas no apakšas bez bibliotēkām, lai jūs varētu izmantot šo rakstu jebkuram gāzes sensoram, kas pieejams pie jums.
Aparatūras sagatavošana:
MQ gāzes sensorus var iegādāties vai nu kā moduli, vai tikai kā sensoru atsevišķi. Ja jūsu mērķis ir izmērīt tikai ppm, vislabāk ir iegādāties sensoru atsevišķi, jo modulis ir piemērots tikai digitālās tapas izmantošanai. Tātad, ja jūs jau esat iegādājies moduli, jums ir jāveic neliels uzlaušana, kas tiks apspriests tālāk. Pagaidām pieņemsim, ka esat iegādājies sensoru. Sensora kontaktspraudnis un savienojums ir parādīts zemāk
Kā redzat, jums vienkārši jāpieslēdz viens 'H' gals piegādei, bet otrs 'H' gals - zemei. Pēc tam apvienojiet gan A, gan B. Pievienojiet vienu komplektu barošanas spriegumam, bet otru - savam analogajam tapam. Rezistors R L spēlē ļoti svarīgu lomu sensora darbībā. Tāpēc pierakstiet, kuru vērtību izmantojat, ieteicamā vērtība ir 47k.
Ja jūs jau esat iegādājies moduli, jums jāizseko PCB pēdas, lai dēlī atrastu sava R L vērtību. Grauonline jau ir paveicis šo darbu mūsu labā, un MQ gāzes sensoru plates shēma ir dota zemāk.
Kā redzat, rezistors R L (R2) ir savienots starp Aout tapu un zemi, tādēļ, ja jums ir modulis, R L vērtību var izmērīt, izmantojot multimetru pretestības režīmā pāri Vout pin un Vcc pin modulis. Manā sainsmart MQ-137 gāzes sensorā RL vērtība bija 1K, un tā atradās šeit, kā parādīts attēlā zemāk.
Tomēr tīmekļa apgalvojumi, ka tas nodrošina mainīgo pot R L, kas nav taisnība, kā jūs varat skaidri redzēt ķēdes diagramma, pot tiek izmantots, lai noteiktu mainīgo spriegumu op-amp, un tam nav nekāda sakara ar R L. Tāpēc mums ir manuāli jālodē iepriekš parādītais SMD rezistors (1K), un mums ir jāizmanto savs rezistors pāri zemes un Vout tapai, kas darbosies kā RL. Vislabākā RL vērtība būs 47K, kā to ieteica datu lapa, tāpēc mēs to izmantosim.
Pieeja PPM mērīšanai no MQ gāzes sensoriem:
Tagad, kad mēs zinām, ka R L vērtība ļauj turpināt izmērīt ppm no šiem sensoriem. Tāpat kā visi sensori, arī sākšanas vieta ir tā datu lapa. Šeit ir dota MQ-137 datu lapa, taču pārliecinieties, ka atrodat pareizo sensora datu lapu. Datu lapas iekšpusē mums ir nepieciešams tikai viens grafiks, kas tiks attēlots pret (Rs / Ro) VS PPM, tas ir tas, kas mums nepieciešams mūsu aprēķiniem. Tāpēc izvelciet to un turiet to kaut kur parocīgu. Viens manam sensoram ir parādīts zemāk.
Izrādās, ka MQ137 sensors var izmērīt NH3, C2H6O un pat CO. Bet šeit mani interesē tikai NH3 vērtības. Tomēr jūs varat izmantot to pašu metodi, lai aprēķinātu ppm jebkuram sensoram, kas jums patīk. Šis grafiks ir vienīgais avots, lai mēs varētu atrast ppm vērtību, un, ja mēs kaut kā varētu aprēķināt Rs / Ro (X ass) devu, mēs varam izmantot šo diagrammu, lai atrastu ppm (Y ass) vērtību. Lai atrastu Rs / Ro vērtību, mums jāatrod Rs vērtība un Ro vērtība. Kur Rs ir sensora pretestība pie gāzes koncentrācijas un Ro ir sensora pretestība tīrā kungā.
Jā… tas ir plāns, redzēsim, kā mēs varam no tā atbrīvoties….
Ro vērtības aprēķināšana tīrā gaisā:
Ņemiet vērā, ka grafikā Rs / Ro vērtība ir nemainīga gaisam (bieza zila līnija), tāpēc mēs to varam izmantot savā labā un teikt, ka tad, kad sensors darbojas svaigā gaisā, Rs / Ro vērtība būs 3,6, norādiet attēlu zemāk
Rs / Ro = 3,6
No datu lapas mēs arī iegūstam formulu Rs vērtības aprēķināšanai. Formula ir parādīta zemāk. Ja jūs interesē uzzināt, kā šī formula tiek iegūta, jūs varat izlasīt caur jay con sistēmām, es arī vēlētos tos ieskaitīt, palīdzot man to atrisināt.
Šajā formulā Vc vērtība ir mūsu barošanas spriegums (+ 5 V), un R L vērtība ir tā, kuru mēs jau aprēķinājām (47K manam sensoram). Ja mēs uzrakstām nelielu Arduino programmu, mēs varētu atrast arī V RL vērtību un visbeidzot aprēķināt Rs vērtību. Es zemāk esmu devis Arduino programmu, kas nolasa sensora analogo spriegumu (V RL) un , izmantojot šo formulu, aprēķina R vērtību un visbeidzot parāda to sērijas monitorā. Programma ir labi izskaidrota komentāru sadaļā, tāpēc es šeit izlaižu tās skaidrojumu, lai šis raksts būtu īss.
/ * * Programma R0 vērtības noteikšanai zinātam RL svaigā gaisa stāvoklī * Programmu sastādīja: B.Aswinth Raj * Vietne: www.circuitdigest.com * Datums: 2017-12-28 * / // Šī programma darbojas vislabāk svaigā gaisa telpā ar temperatūru Temperatūra: 20 ℃, mitrums: 65%, O2 koncentrācija 21% un kad Rl vērtība ir 47K #define RL 47 // Rezistora RL vērtība ir 47K vienreiz {Serial.begin (9600); // Inicializējiet sērijas COM, lai parādītu vērtību} void loop () {float analog_value; pludiņš VRL; pludiņš Rs; pludiņš Ro; for (int test_cycle = 1; test_cycle <= 500; test_cycle ++) // Sensora analogo izeju lasiet 200 reizes {analog_value = analog_value + analogRead (A0); // pievienojiet vērtības 200} analog_value = analog_value / 500.0; // Veikt vidējo VRL = analog_value * (5,0 / 1023,0);// Analogās vērtības konvertēšana spriegumā // RS = ((Vc / VRL) -1) * RL ir formulas, kuras mēs ieguvām no datu lapas Rs = ((5,0 / VRL) -1) * RL; // RS / RO ir 3,6, kā iegūts no datu lapas Ro = Rs / 3,6 grafika; Serial.print ("Ro svaigā gaisā ="); Seriālais.println (Ro); // Parādīt aprēķināto Ro aizturi (1000); // 1 sek. aizkavēšanās}
Piezīme: Ro vērtība būs atšķirīga, ļaujiet sensoram iepriekš uzkarsēt vismaz 10 stundas un pēc tam izmantojiet Ro vērtību.
Es secināju, ka mana sensora Ro vērtība ir 30 KΩ (kad R L ir 47 kΩ). Jūsu var nedaudz atšķirties.
Izmēra R vērtību:
Tagad, kad mēs zinām Ro vērtību, mēs varam viegli aprēķināt R vērtību, izmantojot iepriekš minētās divas formulas. Ņemiet vērā, ka iepriekš aprēķinātā R vērtība attiecas uz svaigu gaisa stāvokli, un tā nebūs tāda pati, kad gaisā ir amonjaks. Rs vērtības aprēķināšana nav liela problēma, par kuru mēs varam tieši rūpēties galīgajā programmā.
Rs / Ro attiecība ar PPM:
Tagad, kad mēs zinām, kā izmērīt Rs un Ro vērtību, mēs varētu atrast tā attiecību (Rs / Ro). Tad mēs varam izmantot diagrammu (parādīta zemāk), lai saistītos ar atbilstošo PPM vērtību.
Lai gan NH3 līnija (ciāna krāsa) šķiet lineāra, tā patiesībā nav lineāra. Izskats ir tāpēc, ka skala ir sadalīta nevienmērīgi pēc izskata. Tātad saistība starp Rs / Ro un PPM faktiski ir logaritmiska, ko var attēlot ar šo vienādojumu.
log (y) = m * log (x) + b kur y = attiecība (Rs / Ro) x = PPM m = taisnes slīpums b = krustošanās punkts
Lai atrastu m un b vērtības, mums jāņem vērā divi punkti (x1, y1) un (x2, y2) mūsu gāzes vadā. Šeit mēs strādājam ar amonjaku, tāpēc divi punkti, kurus esmu uzskatījis, ir (40,1) un (100,0,8), kā parādīts attēlā iepriekš (atzīmēts kā sarkans) ar sarkanu marķējumu.
m = / m = log (0,8 / 1) / log (100/40) m = -0,243
Līdzīgi (b) iegūstam viduspunkta vērtību (x, y) no diagrammas, kas ir (70,0,75), kā parādīts iepriekš redzamajā attēlā (atzīmēts ar zilu krāsu)
b = log (y) - m * log (x) b = log (0.75) - (-0.243) * log (70) b = 0.323
Tas ir tas, ka tagad, kad esam aprēķinājuši m un b vērtību, mēs varam pielīdzināt (Rs / Ro) vērtību PPM, izmantojot šādu formulu
PPM = 10 ^ {/ m}
Programma PPM aprēķināšanai, izmantojot MQ sensoru:
Pilnīga programma, lai aprēķinātu PPM izmantojot MQ sensors ir norādīts zemāk. Tālāk ir paskaidrotas dažas svarīgas līnijas.
Pirms ar programmu mums ir nepieciešams, lai barības vērtībām slodzes pretestības (RL), slīpuma (m), krustošanās (b) un vērtība Pretestība svaigā gaisā (RO). Procedūra visu šo vērtību iegūšanai jau ir izskaidrota, tāpēc tagad tos vienkārši ievadīsim
#define RL 47 // Rezistora RL vērtība ir 47K #define m -0,263 // Ievadiet aprēķināto slīpumu #define b 0,42 // Ievadiet aprēķināto pārtveri #define Ro 30 // Ievadiet atrasto Ro vērtību
Pēc tam nolasiet sensora sprieguma kritumu (VRL) un pārveidojiet to spriegumā (0 V līdz 5 V), jo analogā nolasīšana atgriezīs vērtības tikai no 0 līdz 1024.
VRL = analogRead (MQ_sensors) * (5,0 / 1023,0); Izmēra sprieguma kritumu un pārveido par 0-5V
Tagad, kad tiek aprēķināta VRL vērtība, varat izmantot iepriekš apspriesto formulu, lai aprēķinātu Rs vērtību un arī attiecību (Rs / Ro)
attiecība = Rs / Ro; // atrast attiecību Rs / Ro
Visbeidzot, mēs varam aprēķināt PPM ar mūsu logaritmisko formulu un parādīt to mūsu sērijveida monitorā, kā parādīts zemāk
dubultā ppm = pow (10, ((log10 (attiecība) -b) / m)); // izmantojiet formulu, lai aprēķinātu ppm Serial.print (ppm); // Parādīt ppm
Parādot PPM vērtību aparatūrā ar Arduino un MQ-137:
Pietiks no visas teorijas, lai izveidotu vienkāršu shēmu ar sensoru un LCD, lai parādītu gāzes vērtību PPM. Šeit izmantotais sensors ir MQ137, kas mēra amonjaku, zemāk parādīta manas izveidotās shēmas shēma.
Pievienojiet sensoru un LCD, kā parādīts shēmas shēmā, un augšupielādējiet kodu, kas norādīts programmas beigās. Jums ir jāpārveido Ro vērtība, kā paskaidrots iepriekš. Veiciet izmaiņas parametru vērtībās arī tad, ja kā RL izmantojat citu rezistoru, izņemot 4.7K.
Pirms jebkādu rādījumu veikšanas atstājiet iestatīto ierīci vismaz 2 stundas (precīzākām vērtībām ieteicams 48 stundas). Šo laiku sauc par sildīšanas laiku, kura laikā sensors sasilst. Pēc tam jums vajadzētu būt iespējai redzēt LCD ekrānā parādīto PPM vērtību un spriegumu, kā parādīts zemāk.
Tagad, lai pārliecinātos, vai vērtības patiešām ir saistītas ar amonjaka klātbūtni, ievietosim šo iekārtu slēgtā traukā un sūtīsim tajā amonjaka gāzi, lai pārbaudītu, vai vērtības pieaug. Man nav pienācīga PPM skaitītāja, kas to kalibrētu, un būtu lieliski, ja kāds, kam ir skaitītājs, varētu pārbaudīt šo iestatījumu un informēt mani.
Lai pārbaudītu, kā rādījumi mainījās, pamatojoties uz amonjaka klātbūtni, varat noskatīties tālāk redzamo videoklipu. Ceru, ka sapratāt šo jēdzienu un jums patika to iemācīties. Ja jums ir kādas šaubas, atstājiet tos komentāru sadaļā vai, lai iegūtu sīkāku palīdzību, izmantojiet forumu šeit.