- Датчики газа серии 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
- СУГ, алкоголь, дым: MQ2
Мы уже использовали MQ2 для обнаружения дыма и MQ-135 для проекта мониторинга качества воздуха. Здесь я буду использовать датчик MQ-137 от sainsmart для измерения аммиака в ppm. С датчиком в руке я просмотрел все доступные руководства и обнаружил, что нет надлежащей документации о том, как измерять газ в ppm. В большинстве учебных пособий рассматриваются либо только аналоговые значения, либо вводятся некоторые константы, которые ненадежны для измерения всех типов газа. Итак, после долгой игры в Интернете я наконец нашел, как использовать эти датчики газа серии MQ для измерения ppm с помощью Arduino. Я объясняю вещи снизу без каких-либо библиотек, чтобы вы могли использовать эту статью для любого доступного вам датчика газа.
Подготовка вашего оборудования:
Датчики газа MQ можно приобрести как модуль, так и отдельно. Если ваша цель состоит в измерении только ppm, тогда лучше покупать только датчик, так как модуль подходит только для использования цифрового вывода. Итак, если вы уже приобрели модуль, вам нужно выполнить небольшой взлом, о котором мы поговорим далее. А пока предположим, что вы приобрели датчик. Распиновка и подключение датчика показаны ниже.
Как видите, вам просто нужно подключить один конец «H» к источнику питания, а другой конец «H» - к земле. Затем объедините обе точки А и Б. Подключите один набор к напряжению питания, а другой к аналоговому выводу. Резистор R L играет очень важную роль в работе датчика. Поэтому отметьте, какое значение вы используете, рекомендуется значение 47k.
Если вы уже приобрели модуль, вам следует отслеживать дорожки на печатной плате, чтобы найти значение вашего R L на плате. Компания Grauonline уже выполнила эту работу за нас, и принципиальная схема платы датчика газа MQ представлена ниже.
Как вы можете видеть, резистор R L (R2) подключен между выводом Aout и землей, поэтому, если у вас есть модуль, значение R L можно измерить с помощью мультиметра в режиме сопротивления между выводами Vout и Vcc. модуль. В моем датчике газа sainsmart MQ-137 значение RL составляло 1К и располагалось здесь, как показано на рисунке ниже.
Тем не менее, претензия веб - сайт, что обеспечивает переменный горшок R L, который не является истинным, как вы можете ясно видеть на схеме, банк используется для установки переменного напряжения для ОУ и не имеет ничего общего с R L. Таким образом, мы должны вручную припаять резистор SMD (1K), показанный выше, и мы должны использовать наш собственный резистор между выводами заземления и 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
Из таблицы мы также получаем формулу для расчета стоимости рупий. Формула показана ниже. Если вам интересно узнать, как получена эта формула, вы можете прочитать системы 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 * / // Эта программа работает лучше всего в помещении с чистым воздухом и температурой Temp: 20 ℃, влажность: 65%, концентрация O2 21% и когда значение Rl равно 47K #define RL 47 // Значение резистора RL равно 47K void setup () // Работает только один раз {Serial.begin (9600); // Инициализируем последовательный COM для отображения значения} void loop () {float analog_value; float VRL; float Rs; float 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 («Ро на свежем воздухе =»); 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), как показано на рисунке выше (отмечены красным) с красной маркировкой.
м = / м = журнал (0,8 / 1) / журнал (100/40) м = -0,243
Аналогично для (b) давайте получим значение средней точки (x, y) из графика, который равен (70,0,75), как показано на рисунке выше (отмечено синим).
b = журнал (y) - m * журнал (x) b = журнал (0,75) - (-0,243) * журнал (70) b = 0,323
Теперь, когда мы вычислили значения m и b, мы можем приравнять значение (Rs / Ro) к PPM, используя следующую формулу
PPM = 10 ^ {/ m}
Программа для расчета PPM с использованием датчика MQ:
Полная программа для расчета PPM с использованием датчика MQ приводится ниже. Ниже поясняются несколько важных строк.
Перед тем, как продолжить работу с программой, нам необходимо ввести значения сопротивления нагрузки (RL), уклона (м), точки пересечения (b) и значения сопротивления на свежем воздухе (Ro). Процедура получения всех этих значений уже была объяснена, поэтому давайте просто введем их сейчас.
#define RL 47 // Значение резистора RL - 47 кОм
Затем считайте падение напряжения на датчике (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 = pow (10, ((log10 (ratio) -b) / m)); // использовать формулу для вычисления ppm Serial.print (ppm); // Отображение ppm
Отображение значения PPM на оборудовании с Arduino и MQ-137:
Хватит теории, и мы построим простую схему с датчиком и ЖК-дисплеем для отображения значения газа в PPM. Здесь я использую датчик MQ137, который измеряет аммиак, принципиальная схема моей установки показана ниже.
Подключите датчик и ЖК-дисплей, как показано на принципиальной схеме, и загрузите код, указанный в конце программы. Вы должны изменить значение Ro, как описано выше. Также внесите изменения в значения параметров, если вы используете любой другой резистор в качестве RL, кроме 4,7 кОм.
Оставьте установку включенной как минимум на 2 часа, прежде чем снимать какие-либо показания (для получения более точных значений рекомендуется 48 часов). Это время называется временем нагрева, в течение которого датчик нагревается. После этого вы сможете увидеть значение PPM и напряжение, отображаемое на ЖК-экране, как показано ниже.
Теперь, чтобы убедиться, что значения действительно связаны с присутствием аммиака, давайте поместим эту настройку в закрытый контейнер и отправим в него газообразный аммиак, чтобы проверить, увеличиваются ли значения. У меня нет подходящего измерителя PPM, и я бы его откалибровал, и было бы здорово, если бы кто-нибудь, у кого есть измеритель, мог бы проверить эту настройку и сообщить мне.
Вы можете посмотреть видео ниже, чтобы проверить, как меняются показания в зависимости от наличия аммиака. Надеюсь, вы поняли концепцию и получили удовольствие от ее изучения. Если у вас есть сомнения, оставьте их в разделе комментариев или для получения более подробной помощи воспользуйтесь форумом здесь.