Главная  /  On-line руководство  /  Подключение инфракрасного датчика углекислого газа (CO2) MH-Z19B

Подключение инфракрасного датчика углекислого газа (CO2) MH-Z19B


Содержание

Инфракрасный датчик углекислого газа (CO2) MH-Z19B
Схема подключения
Подготовка модуля к работе
Конфигурация модуля
Заключение



Инфракрасный датчик углекислого газа (CO2) MH-Z19B

Smacont. Инфракрасный датчик углекислого газа (CO2) MH-Z19

Датчики серии MH-Z выпускаются китайской компанией Winsen. Компания Winsen специализируется на разработке и производстве датчиков для определения газов. В активе компании имеются как электрохимические, так и датчики, выполненные по другим технологиям. Датчики серии MH-Z (MH-Z14A, MH-Z19B, MH-Z14 и MH-Z19) относятся к группе сенсоров, работающих по принципу оптического измерения содержания определенного газа (принцип недисперсионного инфракрасного излучения (NDIR)).

Недисперсный инфракрасный датчик (или датчик NDIR) представляет собой относительно простой спектроскопический датчик, часто используемый в качестве детектора газа. Он является недисперсионным в смысле оптического рассеяния, поскольку инфракрасная энергия может проходить через атмосферную камеру для отбора проб без деформации.

Smacont. Инфракрасный датчик углекислого газа (CO2) MH-Z19

Основными компонентами датчика NDIR являются инфракрасный источник (лампа), камера для образцов или световая трубка, светофильтр и инфракрасный детектор. Инфракрасный свет направляется через камеру для образцов к детектору. Параллельно имеется еще одна камера с закрытым эталонным газом, обычно азотом. Газ в камере образца вызывает поглощение определенных длин волн в соответствии с законом Бера-Ламберта, и затухание этих длин волн измеряется детектором для определения концентрации газа. Перед детектором установлен оптический фильтр, который устраняет весь свет, кроме длины волны, которую могут поглощать выбранные молекулы газа.


Smacont. Внешний вид датчика газа (CO2) MH-Z19B

Внешний вид датчика газа (CO2) MH-Z19B

Данный датчик имеет внутреннюю температурную компенсацию, может подключаться по 3-м интерфейсам (аналоговый, ШИМ, UART), имеет малые размеры и большой срок службы.

Инфракрасный датчик обнаружения газа CO MH-Z19B NDIR обычно используется в:
• Климатическом оборудовании в школах, офисных зданиях и т. д. ;
• Для мониторинга качества воздуха в помещении;
• Умной бытовой технике.


Характеристики


• Определяемый газ: CO2
• Рабочее напряжение: 3.6 ~ 5.5В пост.тока
• Потребление тока: менее 18мА
• Уровень TTL: 3.3В
• Диапазон измерения: 0 - 5000 PPM (0 ~ 0.5%)
• Точность измерений: ± (50ppm+5%)
• Сигнал на выходе: UART(Tx,Rx), PWM
• Время разогрева: до 3 мин
• Время распознавания T90: менее 60 сек.
• Рабочая температура: 0 ~ 50 °C
• Рабочая влажность окружающей среды: 0 ~ 95% RH (без конденсата)
• Габариты: 33мм*20мм*9мм (ДxШxВ)
• Вес: 21 г
• Срок эксплуатации: более 5 лет

Описание датчика (datasheet) MHZ19B.


Калибровка датчика MH-Z19B

В датчике MH-Z19B предусмотрено два способа клибровки:

Zero-Point калибровка

Рекомендуемый вариант калибровки, который необходимо провести, даже если будет проводится калибровка методом Span. Запуск калибровки можно провести двумя способами:
• командой через последовательный порт;
• замкнув контакт HD на землю на время не менее 7 секунд.

За это время датчик проведет несколько измерений и откалибруется. Калибровка в этом варианте происходит по общемировому значению CO2 в атмосфере которая примерно составляет 400 ppm. Для проведения калибровки, датчик необходимо переместить на свежий воздух на время не менее 20 минут, затем запустить калибровку. Необходимо учитывать, что в городе значение CO2 будет выше, чем в сельской местности (причем в ночное время суток, уровень будет ниже, чем в дневное).

Span калибровка

Данный вариант рекомендуется запускать после прохождения Zero-Point калибровки. Перевод датчика в данный режим калибровки осуществляется посредством команды через последовательный порт. В этом варианте подразумевается, что точно известен уровень CO2 в атмосфере, в которой находится датчик. Спецификация рекомендует проводить Span-калибровку при значении 2000 ppm, но можно использовать и другое значение, т.к. оно передается вместе с командой на проведение калибровки. Перед проведением калибровки, датчик необходимо выдержать в калибруемой атмосфере не менее 20 минут.

Схема подключения

При подключении используются все три интерфейса (аналоговый, ШИМ, UART) для сравнения показаний.


Smacont. Подключение датчика MH-Z19B

Подключение датчика 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» (см. рисунки ниже).


Smacont. Конфигурирование «GPIO12»     Smacont. Конфигурирование «GPIO12»     Smacont. Конфигурирование «GPIO12»

Конфигурирование «GPIO12»

Для получения значений CO2 с аналогового выхода датчика MH-Z19B, необходимо настроить АЦП устройства (см. рис. ниже).


Smacont. Конфигурирование «A0»

Конфигурирование «A0»

Установлены следующие параметры:
- период пороса АЦП 1000мс ( 1сек.);
- значение оцифровке будут привязаны к переменной «V17».

Интерфейсы

Так как обмен информацией с датчиком MH-Z19B осуществляется по интерфейсу «UART», необходимо разрешить работу интерфейса. Обмен информацией с сенсором можно вести через «UART0» (GPIO1 (TX), GPIO3 (RX)) или «UART2» (GPIO15 (TX), GPIO13 (RX)). В данном примере используется «UART0».


Smacont. Настройка интерфейса «I2C»

Настройка интерфейса «UART»

TIMER

Для периодического опроса датчика MH-Z19B будем использовать «TMR2», так как он по умолчанию уже настроен на работу с периодом 5 сек.

На вкладке «TIMER» необходимо произвести конфигурирование таймера «TMR2»:
• включить таймер (установить «галочку» у параметра «Управление»);
• параметр «При подаче напр. пит.» установить в состояние «ВКЛ.».

Для обеспечения возможности дальнейшей обработки события от таймера, необходимо привязать параметр «Состояние» таймера «TMR2» к одному из «Vx», например, к «V12».


Smacont. Конфигурирование «TIMER»

Конфигурирование «TIMER»

Действия

Создаем действие-функцию «sens_MHZ19B()». Устанавливаем параметры функции, как показано на рисунке ниже.

В качестве параметра "Значение измеренного содержания углекислого газа «CO2»" указываем переменную «V15». Соответственно, получаем список наших выходных данных:
• «V15» - Значение измеренного содержания углекислого газа «CO2», ppm;
• «V16» - Значение текущей температуры «T», ºС.


Smacont. Действие вызова функции «sens_MHZ19B()»     Smacont. Действие вызова функции «sens_MHZ19B()»     Smacont. Действие вызова функции «sens_MHZ19B()»

Действие вызова функции «sens_MHZ19B()»

Для пересчета значения длительности импульсов от датчика MH-Z19B в значения СО2 используем формулу:
ppm = ((Tимп / 1000) - 2мс) * 2 (для предела измерения 0...2000ppm)
ppm = ((Tимп / 1000) - 2мс) * 5 (для предела измерения 0...5000ppm)
где:
ppm - рассчитанное содержание CO2, ppm;
Тимп - длительность импульса, мкс.

Упрощенная формула:
ppm = (Tимп / 500) - 4 (для предела измерения 0...2000ppm)
ppm = (Tимп / 200) - 10 (для предела измерения 0...5000ppm)

Создаем действие для пересчета значения длительности импульсов в значения СО2.


Smacont. Действия для пересчета значения длительности импульсов в значения СО2     Smacont. Действия для пересчета значения длительности импульсов в значения СО2     Smacont. Действия для пересчета значения длительности импульсов в значения СО2     Smacont. Действия для пересчета значения длительности импульсов в значения СО2

Действия для пересчета значения длительности импульсов в значения СО2

Создаем действие для пересчета значения АЦП в значения СО2.


Smacont. Действия для пересчета значения АЦП в значения СО2     Smacont. Действия для пересчета значения АЦП в значения СО2     Smacont. Действия для пересчета значения АЦП в значения СО2

Действия для пересчета значения АЦП в значения СО2

Алгоритм выбора коэффициентов для функции «map()».
1. Замеряется значение АЦП при показаниях CO2 «400», полученных по UART-интерфейсу или ШИМ-сигнала. В нашем случае, значение АЦП равно 243.
2. Замеряется значение АЦП при показаниях CO2 «2000», полученных по UART-интерфейсу или ШИМ-сигнала. В нашем случае, значение АЦП равно 666.
3. Значения заносятся в качестве параметров функции «map()».


Smacont. Значение АЦП

Значение АЦП

Сценарии

При обновлении переменной «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»).


Smacont. Сценарии

Сценарии

Получаем следующий алгоритм работы:
1. При событии «Обновление статуса TMR2» (формируется каждые 5 секунд), будет выполняться «Действие N0» («sens_MHZ19B()»);
2. При выполнении «Действие N0», получаем обновленные значения СО2 и значение температуры.
3. При событии «Обновление переменной duration_GP12_V14» (формируется при изменении длительности импульса от датчика MHZ19B), будут выполняться сценарий «Действие N1»;
4. При выполнении «Действие N1», получаем обновленные значения СО2 (пересчитанные из значения длительности импульса);
5. При событии «Обновление переменной adc_V17» (формируется при изменении значения АЦП), будут выполняться сценарий «Действие N2»;
6. При выполнении «Действие N2», получаем обновленные значения СО2 (пересчитанные из значения АЦП).

Как видно из рисунка ниже, значения содержания углекислого газа (переменная «V15»), полученное по интерфейсу «UART», полностью совпадает со значением, полученным по интерфейсу ШИМ-сигнала (переменная «V14»). Значение переменной «V18» иногда отличается от «V15» на 1...5 единиц.


Smacont. Переменные

В дальнейшем, полученное значение содержания углекислого газа (CO2), можно использовать в других сценариях, например, в следующих проектах:
• автоматическое проветривания помещения;
• предупреждение выхода уровня содержания углекислого газа (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»:
скачать

«Программа Настройки»:
запусить (только браузер Firefox)
скачать zip-архив

Телеграм канал

Новости

Энергонезависимая память (EEPROM)

Переменные «Vx» (карта переменных «Vx»)

WEB-интерфейс

Действие «wifi_CheckConn()». После подключения к WiFi-сети, выполнить действие с задержкой

Обмен данными. Open Monitoring

Датчики температуры и влажности AHT10/AHT15/AHT20/AHT21/AHT25

Датчик температуры и влажности SHT30 (SHT31/SHT35)

Действие «valueToVx()», «valueToArrVx()». Отслеживание заданного уровня в диапазоне значений

Действие «termostat()». Термостат

ESP-NOW. Датчик температуры и влажности с питанием от батареек

Последовательные интерфейсы (UART, I2C, SPI)

Управление одноканальным модулем реле

Протокол MQTT

Обмен данными. NarodMon

Обмен данными. ioControl



Программы для модулей ESP     Программы     Применения     Справочник         Контакты     SMACONT. Напишите нам smacont@ya.ru