Подключение инфракрасного датчика углекислого газа (CO2) MH-Z19B |
Содержание
Инфракрасный датчик углекислого газа (CO2) MH-Z19B
Инфракрасный датчик углекислого газа (CO2) MH-Z19BДатчики серии MH-Z выпускаются китайской компанией Winsen. Компания Winsen специализируется на разработке и производстве датчиков для определения газов. В активе компании имеются как электрохимические, так и датчики, выполненные по другим технологиям. Датчики серии MH-Z (MH-Z14A, MH-Z19B, MH-Z14 и MH-Z19) относятся к группе сенсоров, работающих по принципу оптического измерения содержания определенного газа (принцип недисперсионного инфракрасного излучения (NDIR)). Недисперсный инфракрасный датчик (или датчик NDIR) представляет собой относительно простой спектроскопический датчик, часто используемый в качестве детектора газа. Он является недисперсионным в смысле оптического рассеяния, поскольку инфракрасная энергия может проходить через атмосферную камеру для отбора проб без деформации. Основными компонентами датчика NDIR являются инфракрасный источник (лампа), камера для образцов или световая трубка, светофильтр и инфракрасный детектор. Инфракрасный свет направляется через камеру для образцов к детектору. Параллельно имеется еще одна камера с закрытым эталонным газом, обычно азотом. Газ в камере образца вызывает поглощение определенных длин волн в соответствии с законом Бера-Ламберта, и затухание этих длин волн измеряется детектором для определения концентрации газа. Перед детектором установлен оптический фильтр, который устраняет весь свет, кроме длины волны, которую могут поглощать выбранные молекулы газа. Внешний вид датчика газа (CO2) MH-Z19B Данный датчик имеет внутреннюю температурную компенсацию, может подключаться по 3-м интерфейсам (аналоговый, ШИМ, UART), имеет малые размеры и большой срок службы.
Инфракрасный датчик обнаружения газа CO MH-Z19B NDIR обычно используется в:
Характеристики
Описание датчика (datasheet) MHZ19B. Калибровка датчика MH-Z19BВ датчике MH-Z19B предусмотрено два способа клибровки: Zero-Point калибровка
Рекомендуемый вариант калибровки, который необходимо провести, даже если будет проводится калибровка методом Span.
Запуск калибровки можно провести двумя способами:
За это время датчик проведет несколько измерений и откалибруется. Калибровка в этом варианте происходит по общемировому значению CO2 в атмосфере которая примерно составляет 400 ppm. Для проведения калибровки, датчик необходимо переместить на свежий воздух на время не менее 20 минут, затем запустить калибровку. Необходимо учитывать, что в городе значение CO2 будет выше, чем в сельской местности (причем в ночное время суток, уровень будет ниже, чем в дневное). Span калибровка
Данный вариант рекомендуется запускать после прохождения Zero-Point калибровки.
Перевод датчика в данный режим калибровки осуществляется посредством команды через последовательный порт.
В этом варианте подразумевается, что точно известен уровень CO2 в атмосфере, в которой находится датчик.
Спецификация рекомендует проводить Span-калибровку при значении 2000 ppm, но можно использовать и другое значение, т.к. оно передается вместе с командой на проведение калибровки.
Перед проведением калибровки, датчик необходимо выдержать в калибруемой атмосфере не менее 20 минут.
Схема подключенияПри подключении используются все три интерфейса (аналоговый, ШИМ, UART) для сравнения показаний. Подключение датчика MH-Z19B WiFi-модуль и датчик MH-Z19B установлены на макетной плате для проектирования (Breadboard), позволяющей собирать проекты без пайки. В качестве внешнего источника используется адаптер питания для зарядки сотовых телефонов, смартфонов, планшетов, с выходным током не менее 500мА. Для автономного питания контроллера можно использовать портативные аккумуляторы (Power Bank) емкостью от 2000мА*ч и выше. В качестве соединительного кабеля между макетной платой (Breadboard) и адаптером используется кабель для зарядки сотовых телефонов. Подготовка модуля к работеПодготовка модуля к работе заключается в выполнении следующих шагов. Шаг 1. Программирование модуляПрограммирование модуля (запись программы (прошивки) «Smacont-ESP») осуществляется в соответствии с инструкцией «Программирование модулей ESP и отладочных плат». Шаг 2. Настройка сетевого соединения с модулемВыполнить настройку сетевого соединения с модулем в соответствии с инструкцией «Первое включение». Шаг 3. Настройка WiFi-сети (при необходимости)При необходимости выполнить настройку WiFi-сети в соответствии с инструкцией «Настройки WiFi-сети». Конфигурация модуляGPIOДля работы с ШИМ-сигналом от датчика MH-Z19B, сконфигурируем вывод модуля «GPIO12» для измерения длительности импульса. Для использования измеренных значений длительности импульса для расчета CO2, необходимо привязать «GPIO12» модуля к одному из «Vx» (см. рисунки ниже). Конфигурирование «GPIO12» Для получения значений CO2 с аналогового выхода датчика MH-Z19B, необходимо настроить АЦП устройства (см. рис. ниже). Конфигурирование «A0»
Установлены следующие параметры:
ИнтерфейсыТак как обмен информацией с датчиком MH-Z19B осуществляется по интерфейсу «UART», необходимо разрешить работу интерфейса. Обмен информацией с сенсором можно вести через «UART0» (GPIO1 (TX), GPIO3 (RX)) или «UART2» (GPIO15 (TX), GPIO13 (RX)). В данном примере используется «UART0». Настройка интерфейса «UART» TIMERДля периодического опроса датчика MH-Z19B будем использовать «TMR2», так как он по умолчанию уже настроен на работу с периодом 5 сек.
На вкладке «TIMER» необходимо произвести конфигурирование таймера «TMR2»:
Для обеспечения возможности дальнейшей обработки события от таймера, необходимо привязать параметр «Состояние» таймера «TMR2» к одному из «Vx», например, к «V12». Конфигурирование «TIMER» ДействияСоздаем действие-функцию «sens_MHZ19B()». Устанавливаем параметры функции, как показано на рисунке ниже.
В качестве параметра "Значение измеренного содержания углекислого газа «CO2»" указываем переменную «V15».
Соответственно, получаем список наших выходных данных:
Действие вызова функции «sens_MHZ19B()»
Для пересчета значения длительности импульсов от датчика MH-Z19B в значения СО2 используем формулу:
Создаем действие для пересчета значения длительности импульсов в значения СО2. Действия для пересчета значения длительности импульсов в значения СО2 Создаем действие для пересчета значения АЦП в значения СО2. Действия для пересчета значения АЦП в значения СО2
Алгоритм выбора коэффициентов для функции «map()».
Значение АЦП СценарииПри обновлении переменной «V12» («T2_Event_V12») будет выполняться действие «sens_MHZ19B()» (получение данных по интерфейсу UART). При обновлении переменной «V14» («duration_GP12_V14») будет выполняться действие «duration_GP12_V14=(duration_GP12_V14 / 500) - 4» (пересчет значения переменной «V14»). При обновлении переменной «V17» («adc_V17») будет выполняться действие «CO2_adc_V18=map(in:adc_V17,in_min:243,in_max:666,out_min:400,out_max:2000);» (пересчет значения переменной «V17»). Сценарии
Получаем следующий алгоритм работы:
Как видно из рисунка ниже, значения содержания углекислого газа (переменная «V15»), полученное по интерфейсу «UART», полностью совпадает со значением, полученным по интерфейсу ШИМ-сигнала (переменная «V14»). Значение переменной «V18» иногда отличается от «V15» на 1...5 единиц.
В дальнейшем, полученное значение содержания углекислого газа (CO2), можно использовать в других сценариях, например, в следующих проектах:
Заключение• При концентрации углекислого газа ниже 400ppm, сенсор всегда выдает значение 400ppm. • Время реакции на изменение концентрации CO2 составляет порядка 2...3 минуты. • Период выдачи PWM-сигнала составляет около 1 сек. • Если значение CO2 превышает максимальное значение установленного диапазона измерения (0...2000ppm или 0...5000ppm), то на PWM-выходе сенсора MH-Z19B иногда получаем произвольные значения, превышающие максимум установленного диапазона. При этом, по интерфейсу «UART», выводится 2000ppm или 5000ppm, в зависимости от установленного диапазона измерения. • В момент измерения концентрации CO2 (при включении инфракрасного источника света внутри сенсора MH-Z19B), увеличивается ток потребления датчика (до 160мА). При слабом источнике питания и/или при отсутствии электролитических конденсаторов по питанию, возможны просадки питания, которые могут приводить к неверным результатам при оцифровке аналогового выхода сенсора MH-Z19B. • При внешнем нагревании корпуса (например, рукой) со стороны платы, сенсор MH-Z19B начинает выдавать предельное значение содержание CO2. • На разных экземплярах сенсора MH-Z19B, значения температуры очень сильно отличались друг от друга: от 27 до 55, при одинаковых условиях проверки. • На всем диапазоне измерения, показания, полученные по интерфейсам «UART» и «PWM» совпадают абсолютно точно. При этом, значение CO2, полученное с аналогового выхода датчика отличалось в пределах 1...5 единиц. Поэтому, для экономии выводов WiFi-модуля, нужно использовать PWM-сигнал датчика, а интерфейс «UART» использовать для настройки сенсора MH-Z19B. |
Программы
Прошивка «Smacont-ESP»:
«Программа Настройки»:
Телеграм каналНовостиЭнергонезависимая память (EEPROM) Переменные «Vx» (карта переменных «Vx») Действие «wifi_CheckConn()». После подключения к WiFi-сети, выполнить действие с задержкой Обмен данными. Open Monitoring Датчики температуры и влажности AHT10/AHT15/AHT20/AHT21/AHT25 Датчик температуры и влажности SHT30 (SHT31/SHT35) Действие «valueToVx()», «valueToArrVx()». Отслеживание заданного уровня в диапазоне значений Действие «termostat()». Термостат ESP-NOW. Датчик температуры и влажности с питанием от батареек Последовательные интерфейсы (UART, I2C, SPI) Управление одноканальным модулем реле |