- Газови сензори от серия MQ
- Подготовка на вашия хардуер:
- Подход за измерване на PPM от MQ газови сензори:
- Изчисляване на стойността на Ro при чист въздух:
- Измерете стойността на Rs:
- Отношение Rs / Ro съотношение с PPM:
- Програма за изчисляване на PPM с помощта на MQ сензор:
- Показване на PPM стойност на хардуер с Arduino и MQ-137:
Още от индустриалната епоха ние, човечеството, се развиваме бързо. С всеки напредък ние също замърсяваме околната среда и в крайна сметка я влошаваме. Сега глобалното затопляне е тревожна заплаха и дори въздухът, който дишаме, става критичен. Така че мониторингът на качеството на въздуха също започна да придобива значение. Така че в тази статия ще научим как да използваме всеки сензор за газ от серия MQ с Arduino и да показваме изхода в PPM (части на милион). PPM също се изразява като милиграми на литър (mg / L). Тези сензори са общодостъпни и също така са надеждни за измерване на различни видове газ, показани по-долу
Газови сензори от серия MQ
- Въглероден диоксид (CO2): MG-811
- Въглероден окис (CO): MQ-9
- Общо летливи органични съединения (TVOC): CCS811
- Еквивалентен въглероден диоксид (eCO2): CCS811
- Метален оксид (MOX): CCS811
- Амоняк: MQ-137
- Качество на въздуха: MQ-135
- Пропан-бутан, алкохол, дим: MQ2
Вече използвахме MQ2 за засичане на дим и MQ-135 за проект за мониторинг на качеството на въздуха. Тук ще използвам сензора MQ-137 от sainsmart за измерване на амоняк в ppm. Със сензора в ръка преминах през всички налични уроци и установих, че няма подходяща документация за измерване на газа в ppm. Повечето уроци или се занимават само с аналоговите стойности, или въвеждат някои константи, които не са надеждни за измерване на всички видове газ. И така, след като дълго се занимавах онлайн, най-накрая открих как да използвам тези газови сензори от серията MQ за измерване на ppm с помощта на Arduino. Обяснявам нещата отдолу без никакви библиотеки, за да можете да използвате тази статия за всеки газов сензор, наличен при вас.
Подготовка на вашия хардуер:
Газовите сензори MQ могат да бъдат закупени като модул или просто като сензор самостоятелно. Ако целта ви е да измервате само ppm, най-добре е да закупите датчика сам, тъй като модулът е подходящ само за използване на цифровия щифт. Така че, ако вече сте закупили модула, трябва да извършите малък хак, който ще бъде обсъден допълнително. Засега да приемем, че сте закупили сензора. Пинът и връзката на сензора са показани по-долу
Както можете да видите, просто трябва да свържете единия край на „H“ към захранването, а другия край на „H“ към земята. След това комбинирайте както A, така и двете B. Свържете единия комплект за захранващо напрежение, а другия към вашия аналогов щифт. Резисторът R L играе много важна роля в работата на сензора. Така че отбележете коя стойност използвате, препоръчва се стойност 47k.
Ако вече сте закупили модул, трябва да проследите следите от вашата печатна платка, за да намерите стойността на вашия R L в дъската. Grauonline вече е свършил тази работа за нас и схемата на платката на сензора за газ MQ е дадена по-долу.
Както можете да видите, резисторът R L (R2) е свързан между Aout щифта и земята, така че ако имате модул, стойността на R L може да бъде измерена с помощта на мултицет в режим на съпротивление през Vout щифт и Vcc щифт на модула. В моя газов сензор sainsmart MQ-137 стойността на RL беше 1K и се намираше тук, както е показано на снимката по-долу.
Въпреки това, твърденията на сайта, които тя предоставя на променлива пот на R L, което не е вярно, тъй като можете да видите ясно в електрическата схема, потът се използва за задаване на променливата напрежение за оп-усилвател и няма нищо общо с R L. Така че трябва да запоим ръчно SMD резистора (1K), показан по-горе, и трябва да използваме собствен резистор през щифта Ground и Vout, който ще действа като RL. Най-добрата стойност за RL ще бъде 47K, както е предложено в листа с данни, поради което ще използваме същото.
Подход за измерване на PPM от MQ газови сензори:
Сега, след като знаем стойността на R L, нека да продължим как всъщност да измерваме ppm от тези сензори. Както всички сензори, мястото за стартиране е неговият лист с данни. Информационният лист MQ-137 е даден тук, но не забравяйте да намерите правилния лист с данни за вашия сензор. Вътре в листа с данни ни е необходима само една графика, която ще бъде нанесена срещу (Rs / Ro) VS PPM, това е тази, която ни е необходима за нашите изчисления. Така че го задръжте и го дръжте някъде под ръка. Този за моя сензор е показан по-долу.
Оказва се, че сензорът MQ137 може да измерва NH3, C2H6O и дори CO. Но тук ме интересуват само стойностите на NH3. Въпреки това можете да използвате същия метод за изчисляване на ppm за всеки датчик, който харесвате. Тази графика е единственият източник за нас, за да намерим стойността на ppm и ако можем по някакъв начин да изчислим съотношението на Rs / Ro (ос X), можем да използваме тази графика, за да намерим стойността на ppm (ос Y). За да намерим стойността на Rs / Ro, трябва да намерим стойността на Rs и стойността на Ro. Където Rs е съпротивлението на сензора при концентрация на газ, а Ro е съпротивлението на сензора в чист сър.
Да… това е планът, нека видим как можем да се измъкнем с това….
Изчисляване на стойността на Ro при чист въздух:
Имайте предвид, че в графиката стойността на Rs / Ro е постоянна за въздуха (дебела синя линия), така че можем да използваме това в наша полза и да кажем, че когато сензорът работи на чист въздух, стойността на Rs / Ro ще бъде 3.6, препратете картината По-долу
Rs / Ro = 3.6
От листа с данни също получаваме формула за изчисляване на стойността на Rs. Формулата е показана по-долу. Ако се интересувате от това как се извлича тази формула, можете да прочетете системите на jay con, бих искал също така да им призная, че ми помогнаха да разреша това.
В тази формула стойността на Vc е нашето захранващо напрежение (+ 5V), а стойността на R L е тази, която вече изчислихме (47K за моя сензор). Ако напишем малка програма Arduino, можем също да намерим стойността на V RL и накрая да изчислим стойността на Rs. Дадох програма Arduino по-долу, която отчита аналоговото напрежение (V RL) на сензора и изчислява стойността на Rs, използвайки тази формула и накрая я показва в серийния монитор. Програмата е добре обяснена чрез раздела за коментари, така че пропускам обяснението й тук, за да запазя тази статия кратка.
/ * * Програма за измерване на стойността на R0 за познат RL при състояние на чист въздух * Програма от: B.Aswinth Raj * Уебсайт: www.circuitdigest.com * Датиран: 28-12-2017 * / // Тази програма работи най-добре в помещение за чист въздух с температура Температура: 20 ℃, влажност: 65%, концентрация на O2 21% и когато стойността на Rl е 47K # дефинирайте RL 47 // Стойността на резистора RL е 47K void setup () // Работи само веднъж {Serial.begin (9600); // Инициализиране на сериен COM за показване на стойността} void loop () {float analog_value; поплавък VRL; плуващи Rs; плувка Ro; за (int test_cycle = 1; test_cycle <= 500; test_cycle ++) // Прочетете аналоговия изход на сензора за 200 пъти {analog_value = analog_value + analogRead (A0); // добавяме стойностите за 200} analog_value = analog_value / 500.0; // Вземете средна VRL = analog_value * (5.0 / 1023.0);// Преобразуване на аналогова стойност в напрежение // RS = ((Vc / VRL) -1) * RL е формулата, която получихме от лист с данни Rs = ((5.0 / VRL) -1) * RL; // RS / RO е 3.6, както получихме от графика на лист с данни Ro = Rs / 3.6; Serial.print ("Ro на чист въздух ="); Serial.println (Ro); // Показване на изчисленото Ro забавяне (1000); // закъснение от 1sec}
Забележка: Стойността на Ro ще варира, оставете сензора да загрява предварително поне 10 часа и след това използва стойността на Ro.
Заключих стойността на Ro да е 30 KΩ за моя сензор (когато R L е 47kΩ). Вашият може леко да варира.
Измерете стойността на Rs:
Сега, когато знаем стойността на Ro, можем лесно да изчислим стойността на Rs, използвайки горните две формули. Имайте предвид, че стойността на Rs, изчислена по-рано, е за състояние на чист въздух и няма да бъде същата, когато амонякът присъства във въздуха. Изчисляването на стойността на Rs не е голям проблем, за който можем директно да се погрижим във финалната програма.
Отношение Rs / Ro съотношение с PPM:
Сега, когато знаем как да измерим стойността на Rs и Ro, бихме могли да намерим неговото съотношение (Rs / Ro). След това можем да използваме диаграмата (показана по-долу), за да се свържем със съответната стойност на PPM.
Въпреки че линията NH3 (циан цвят) изглежда линейна, тя всъщност не е линейна. Външният вид е така, защото скалата е разделена неравномерно по външен вид. Така че връзката между Rs / Ro и PPM всъщност е логаритмична, която може да бъде представена от уравнението по-долу.
log (y) = m * log (x) + b където y = съотношение (Rs / Ro) x = PPM m = наклон на линията b = точка на пресичане
За да намерим стойностите на m и b, трябва да разгледаме две точки (x1, y1) и (x2, y2) на нашата газова линия. Тук работим с амоняк, така че двете точки, които разгледах, са (40,1) и (100,0,8), както е показано на горната снимка (маркирана като червена) с червена маркировка.
m = / m = log (0.8 / 1) / log (100/40) m = -0.243
По същия начин за (b) нека вземем средната стойност (x, y) от графиката, която е (70,0.75), както е показано на снимката по-горе (маркирана в синьо)
b = log (y) - m * log (x) b = log (0.75) - (-0.243) * log (70) b = 0.323
Това е всичко, след като сме изчислили стойността на m и b, можем да приравним стойността на (Rs / Ro) към PPM, използвайки формулата по-долу
PPM = 10 ^ {/ m}
Програма за изчисляване на PPM с помощта на MQ сензор:
Най- пълната програма за изчисляване на PPM с помощта на датчик MQ е дадена по-долу. По-долу са обяснени няколко важни реда.
Преди да пристъпим към програмата, трябва да подадем стойностите на съпротивление на натоварване (RL), наклон (m), интервал (b) и стойността на съпротивление на чист въздух (Ro). Процедурата за получаване на всички тези стойности вече е обяснена, така че нека просто ги подадем сега
#define RL 47 // Стойността на резистора RL е 47K #define m -0.263 // Въведете изчисления наклон #define b 0.42 // Въведете изчислено пресичане #define Ro 30 // Въведете намерената Ro стойност
След това прочетете спада на напрежението на сензора (VRL) и го преобразувайте в напрежение (0V до 5V), тъй като аналоговото четене ще връща само стойности от 0 до 1024.
VRL = analogRead (MQ_sensor) * (5.0 / 1023.0); // Измерете спада на напрежението и преобразувайте в 0-5V
Сега, когато се изчислява стойността на VRL, можете да използвате формулата, обсъдена по-горе, за да изчислите стойността на Rs и също съотношението (Rs / Ro)
съотношение = Rs / Ro; // намиране на съотношение Rs / Ro
И накрая, можем да изчислим PPM с нашата логаритмична формула и да го покажем на нашия сериен монитор, както е показано по-долу
двоен ppm = прах (10, ((log10 (съотношение) -b) / m)); // използваме формула за изчисляване на ppm Serial.print (ppm); // Показване на ppm
Показване на PPM стойност на хардуер с Arduino и MQ-137:
Достатъчно от цялата теория нека изградим проста схема със сензор и LCD, за да покажем стойността на газа в PPM. Тук сензорът, който използвам, е MQ137, който измерва амоняк, схемата на моята настройка е показана по-долу.
Свържете вашия сензор и вашия LCD, както е показано на схемата на веригата и качете кода, даден в края на програмата. Трябва да промените стойността на Ro, както е обяснено по-горе. Също така направете промените в стойностите на параметрите, ако използвате друг резистор като RL, различен от 4.7K.
Оставете настройката си захранвана за поне 2 часа, преди да направите каквито и да е показания, (за по-точни стойности се препоръчват 48 часа). Това време се нарича време за нагряване, през което сензорът се загрява. След това трябва да можете да видите стойността на PPM и напрежението, показани на вашия LCD екран, както е показано по-долу.
Сега, за да сме сигурни дали стойностите наистина са свързани с наличието на амоняк, нека поставим тази настройка в затворен контейнер и изпратим амонячен газ вътре в нея, за да проверим дали стойностите се увеличават. Нямам подходящ PPM метър, който да го калибрирам и би било чудесно, ако някой с метър може да тества тази настройка и да ме уведоми.
Можете да гледате видеоклипа по-долу, за да проверите как варират показанията в зависимост от наличието на амоняк. Надявам се, че сте разбрали концепцията и ви е било приятно да я научите. Ако имате някакви съмнения, оставете ги в раздела за коментари или за по-подробна помощ използвайте форума тук.