- Газові датчики серії MQ
- Підготовка обладнання:
- Підхід до вимірювання PPM від газових датчиків MQ:
- Розрахунок значення Ro при чистому повітрі:
- Виміряйте значення Rs:
- Відношення співвідношення Rs / Ro до PPM:
- Програма для розрахунку PPM за допомогою датчика MQ:
- Відображення значення PPM на апаратному забезпеченні з Arduino та MQ-137:
Починаючи з індустріального віку, ми, людство, швидко розвиваємось. З кожним прогресом ми також забруднюємо навколишнє середовище і, зрештою, деградуємо його. Зараз глобальне потепління є тривожною загрозою, і навіть повітря, яким ми дихаємо, стає критичним. Тож моніторинг якості повітря також почав набувати важливого значення. Отже, у цій статті ми дізнаємось, як використовувати будь-який газовий датчик серії MQ з Arduino та відображаємо вихідну потужність у PPM (частин на мільйон). PPM також виражається у міліграмах на літр (мг / л). Ці датчики є загальнодоступними, а також надійними для вимірювання різних типів газу, показаних нижче
Газові датчики серії MQ
- Двоокис вуглецю (CO2): MG-811
- Чадний газ (CO): MQ-9
- Загальні леткі органічні сполуки (TVOC): CCS811
- Еквівалентний вуглекислий газ (eCO2): CCS811
- Оксид металу (MOX): CCS811
- Аміак: MQ-137
- Якість повітря: MQ-135
- LPG, алкоголь, дим: MQ2
Ми вже використовували MQ2 для зондування диму та MQ-135 для проекту моніторингу якості повітря. Тут я буду використовувати датчик MQ-137 від sainsmart для вимірювання аміаку в проміле. З датчиком у руках я переглянув усі доступні навчальні посібники і виявив, що немає належної документації щодо вимірювання газу в проміле. Більшість підручників або стосуються лише аналогових значень, або вводять деякі константи, які не є надійними для вимірювання всіх типів газу. Тож, довгий час возившись в Інтернеті, я нарешті знайшов, як використовувати ці газові датчики серії MQ для вимірювання проміле за допомогою Arduino. Я пояснюю речі знизу без будь-яких бібліотек, щоб ви могли використовувати цю статтю для будь-якого датчика газу, який є у вас.
Підготовка обладнання:
Газові датчики MQ можна придбати як модуль, так і просто як датчик окремо. Якщо ваша мета - виміряти лише частку на мільйон, тоді краще купувати датчик окремо, оскільки модуль підходить лише для використання цифрового штифта. Отже, якщо ви вже придбали модуль, тоді вам доведеться виконати невеликий хакер, який буде обговорюватися далі. На даний момент, припустимо, ви придбали датчик. Висновок і підключення датчика показано нижче
Як бачите, вам просто потрібно підключити один кінець "Н" до подачі, а інший кінець "Н" до землі. Потім поєднайте як 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), показаний вище, вручну, і ми повинні використовувати власний резистор через штифт заземлення та Vout, який буде діяти як RL. Найкраще значення для RL буде 47K, як пропонується в таблиці даних, отже, ми будемо використовувати те саме.
Підхід до вимірювання PPM від газових датчиків MQ:
Тепер, коли ми знаємо значення R L, давайте перейдемо до того, як насправді вимірювати проміле від цих датчиків. Як і у всіх датчиків, місцем для початку є його технічний паспорт. Таблиця даних MQ-137 наведена тут, але обов’язково знайдіть правильну таблицю даних для вашого датчика. Всередині таблиці даних нам потрібен лише один графік, який буде побудований для (Rs / Ro) VS PPM, це той, який нам потрібен для наших розрахунків. Тож хапайте його і тримайте десь під рукою. Цей для мого датчика показаний нижче.
Виявляється, датчик MQ137 може вимірювати NH3, C2H6O і навіть CO. Але тут мене цікавлять лише значення NH3. Однак ви можете використовувати той самий метод для розрахунку проміле для будь-якого вподобаного датчика. Цей графік є єдиним джерелом для нас, щоб знайти значення 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 - це наша напруга живлення (+ 5 В), а значення 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 порожнеча налаштування () // Тільки працює один раз {Serial.begin (9600); // Ініціалізуємо послідовний COM для відображення значення} void loop () {float analog_value; поплавковий VRL; плаваючі рупії; поплавок Ro; for (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); // затримка 1сек}
Примітка: Значення Ro буде змінюватися, дозволити датчику попередньо нагріти принаймні протягом 10 годин, а потім використовувати значення Ro.
Я дійшов висновку, що значення Ro для мого датчика становить 30 КОм (коли R L становить 47 кОм). Ваші можуть дещо відрізнятися.
Виміряйте значення Rs:
Тепер, коли ми знаємо значення Ro, ми можемо легко розрахувати значення 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 ^ {/ м}
Програма для розрахунку PPM за допомогою датчика MQ:
Повна програма для розрахунку PPM з використанням датчика MQ наводиться нижче. Нижче пояснено декілька важливих рядків.
Перш ніж продовжувати програму, нам потрібно подати значення опору навантаження (RL), нахилу (м), перехоплення (b) та значення опору на свіжому повітрі (Ro). Процедура отримання всіх цих значень вже пояснена, тому давайте просто подамо їх зараз
#define RL 47 // Значення резистора RL дорівнює 47K #define m -0.263 // Введіть розрахований нахил #define b 0.42 // Введіть розрахунковий перехват #define Ro 30 // Введіть знайдене значення Ro
Потім зчитайте падіння напруги на датчику (VRL) і перетворіть його на напругу (від 0 до 5 В), оскільки аналогове зчитування поверне значення лише від 0 до 1024
VRL = analogRead (MQ_sensor) * (5.0 / 1023.0); // Виміряйте падіння напруги і перетворіть на 0-5В
Тепер, коли розраховується значення VRL, ви можете використовувати формулу, обговорену вище, для обчислення значення Rs, а також відношення (Rs / Ro)
співвідношення = Rs / Ro; // знайти співвідношення Rs / Ro
Нарешті, ми можемо розрахувати PPM за допомогою нашої логарифмічної формули та відобразити його на нашому послідовному моніторі, як показано нижче
подвійний ppm = порошок (10, ((log10 (співвідношення) -b) / м)); // використовуємо формулу для розрахунку ppm Serial.print (ppm); // Відображення проміле
Відображення значення PPM на апаратному забезпеченні з Arduino та MQ-137:
Достатньо всієї теорії, давайте побудуємо просту схему з датчиком та РК-дисплеєм, щоб відображати значення газу в PPM. Тут я використовую датчик MQ137, який вимірює аміак. Схема мого налаштування показана нижче.
Підключіть ваш датчик і рідкокристалічний дисплей, як показано на схемі, та завантажте код, вказаний в кінці програми. Ви повинні змінити значення Ro, як пояснено вище. Також внесіть зміни у значення параметрів, якщо ви використовуєте будь-який інший резистор як RL, відмінний від 4.7K.
Залиште налаштування включеним принаймні на 2 години, перш ніж проводити будь-які показники, (для отримання більш точних значень рекомендується 48 годин). Цей час називається часом нагрівання, протягом якого датчик прогрівається. Після цього ви зможете побачити значення PPM та напругу, що відображаються на РК-екрані, як показано нижче.
Тепер, щоб переконатись, що значення насправді пов’язані з наявністю аміаку, давайте помістимо цю установку всередину закритого контейнера і надішлемо в нього аміачний газ, щоб перевірити, чи збільшуються значення. У мене немає належного лічильника PPM при його калібруванні, і було б чудово, якби хтось із лічильником міг протестувати цю установку та повідомити мене.
Ви можете переглянути відео нижче, щоб перевірити, як змінювались показники залежно від присутності аміаку. Сподіваюся, ви зрозуміли цю концепцію і вам сподобалось її вивчати. Якщо у вас є якісь сумніви, залиште їх у розділі коментарів або для отримання більш детальної довідки скористайтесь форумом тут.