перевод вольты в ppm для датчика со2 mh-z14

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
qwer
Сообщения: 1
Зарегистрирован: 16 фев 2017, 16:42

перевод вольты в ppm для датчика со2 mh-z14

Сообщение qwer » 16 фев 2017, 19:25

Прошу помощи! Можете помочь как подсчитать или перевести вольты в ppm для датчика mh-z14A? Подключать буду аналоговый вход, где показания в вольтах! А как их перевести в ppm? Помогите пожалуйста)
Канал для подключения were
В описание датчика показано от 0-5000ppm
Аналоговый канал в диапазоне от 0,4-2вольт
Линейный от 0-2,5вольт

Как быть ? Помогите пожалуйста

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение Alex_Jet » 16 фев 2017, 20:03

На моем датчике (MH-Z14A) "Линейного канала" не оказалось - на обоих пинах был один и тот же уровень, по нему понял, что это "Аналоговый канал" 0,4-2V. То есть если диапазон датчика 0-5000ppm, то имеем коэффициент 3125ppm/V или 3,125ppm/mV

Andrey2509
Сообщения: 141
Зарегистрирован: 22 июн 2015, 13:24

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение Andrey2509 » 17 фев 2017, 07:04

Alex_Jet Какая формула пересчёта показаний из единиц Megad (0-1024) в ppm в вашем случае? У меня тоже MH-Z14A но диапазон (0-2000), предположил что коэф. 1.6. Но вот думаю может сначала смещение делать а уж потом коэффициент применять...

d.v.ermakov
Администратор
Сообщения: 2187
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение d.v.ermakov » 17 фев 2017, 11:48

Не воспринимайте MH-Z14A как точный прибор, реально его погрешность плюс-минус 100ppm. Но для вентиляции хватает. Я перешёл на 0-2000, они для вентиляции точнее.
Помните, что раз в неделю (или около того) он сам перекалибровывается. То есть берёт статистику за прошедшую неделю, и самый низкий увиденный им уровень CO2 принимает за 350ppm. То есть, если вы за этот период ни разу хорошо не проветривали, то будет показывать завышенные данные. При свежем ветре и некоторой погоде на улице бывает и 200-250ppm реальных, особенно летом и вблизи растений. В зимний период, даже если проветриваете, в отдельных местах, особенно в городе, могут наблюдаться области с 600-700-800ppm на улице, держится днями. Так что мне и проветривание иногда не помогает. Однако, у меня эталонный прибор на стенке висит. Он отличается большей точностью, и перекалибровывается сам раз в 6 месяцев.
Если такого прибора нет, то есть, ИМХО, два пути калибровки связки MH-Z14A - MegaD.
Можно считать той же Ардуиной показания ppm по цифровому интерфейсу датчика и по трём точкам найти правильный коэффициент (или смещение и коэффициент, в зависимости от того, к какому пину подключились), чтобы аналоговые и цифровые показания были одинаковыми.
Второй вариант (возможно, более точный) - подержать дней 10 датчик во включённом состоянии, при этом пару раз его гарантированно проветрить в течение часа. Затем снова проветрить и в процессе проветривания зафиксировать аналоговые показания - это будет 350ppm. Затем качественно подышать на него - это будет его паспортный максимум. Ну и на бумажке построить прямую, чтобы рассчитать коэффициент/смещение.
Последний раз редактировалось d.v.ermakov 17 фев 2017, 12:24, всего редактировалось 2 раза.

d.v.ermakov
Администратор
Сообщения: 2187
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение d.v.ermakov » 17 фев 2017, 12:00

У меня датчики MH-Z14A (0-2000), аналоговыми линейными каналами 0-2,5 вольта подключены к аналоговым входам Мег. Я показания Мег (0-1024) умножаю на 3,2 и считаю это числом ppm. Датчиков четыре, полтора года управляют всей вентиляцией в доме. Результатом доволен, точность устраивает. Пробовал сначала более точные формулы, смысла не увидел. Показания с датчика 0-5000 (раньше использовал такой один) умножал на 8. Могу сказать ещё, что на число ppm значительно сильнее влияет вытяжка, чем приточка.

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение Alex_Jet » 18 фев 2017, 19:48

Andrey2509 писал(а):Alex_Jet Какая формула пересчёта показаний из единиц Megad (0-1024) в ppm в вашем случае? У меня тоже MH-Z14A но диапазон (0-2000), предположил что коэф. 1.6. Но вот думаю может сначала смещение делать а уж потом коэффициент применять...
В моем случае все очень просто - использую в скриптах формулу из статьи Андрея и пока не парюсь. Когда установлю датчик в доме, то откалибрую на свежем воздухе и буду понимать какое он напряжение выдает при "эталонных" 400 ppm (http://lop.iao.ru/RU/other/year_mean/).
А сейчас более точно для MH-Z14A (DAC - 0,4-2,0V: http://www.winsen-sensor.com/d/files/in ... -v1_01.pdf) можно рассчитать примерно так: CO2[ppm] = ((MegaD x 3515mV/1024) - 400mV) х 3,125ppm/mV
Вообще, единицы MegaD - это такая "засада". Кстати, интересно фьюзы пересчитать и посмотреть какой ИОН используется - внутренний ATmega2561 или напряжение питания (3.3В, а у меня на плате MegaD - 3,515В)? По моим измерениям в качестве ИОН используется напряжение питания. Тогда Ku=3,43 - то есть при показания MegaD=230 - это соответствует 230х3,43=789мВ.

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение Alex_Jet » 20 фев 2017, 09:32

Еще полезной информации для перевода напряжения в уровень СО2 (писал это в личке топикстартеру) для датчика MH-Z14A:

Для датчика 0-2000ppm.
Для выхода 0-2,5В. Коэффициент получается 0,8ppm/mV. То есть если на выходе 800 мВ, то 800мВх0,8ppm/мВ = 640ppm и зависимость линейная.
Для выхода 0,4-2,0В. Коэффициент получается 1,25ppm/mV. То есть если на выходе 800 мВ, то (800мВ-400мВ)х1,25ppm/мВ = 500ppm и зависимость линейная.

Для датчика 0-5000ppm.
Для выхода 0-2,5В. Коэффициент получается 2,0ppm/mV. То есть если на выходе 800 мВ, то 800мВх2,0ppm/мВ =1600ppm и зависимость линейная.
Для выхода 0,4-2,0В. Коэффициент получается 3,125ppm/mV. То есть если на выходе 800 мВ, то (800мВ-400мВ)х3,125ppm/мВ = 1250ppm и зависимость линейная.

Если представить графически, то это будет выглядеть так:
MH_Z14A_DAC1&DAC2.png
MH_Z14A_DAC1&DAC2.png (15.89 КБ) 4455 просмотров

Andrey2509
Сообщения: 141
Зарегистрирован: 22 июн 2015, 13:24

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение Andrey2509 » 20 фев 2017, 09:34

Alex_Jet, спасибо, настроил по твоей формуле. У меня тоже оба аналоговых выхода 0,4-2V.

d.v.ermakov
Администратор
Сообщения: 2187
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение d.v.ermakov » 20 фев 2017, 11:47

Andrey_B, подскажите, каков источник опорного напряжения для аналоговых входов MegaD328 и MegaD2561?

Alex_Jet, я, когда всё настраивал, тоже читал даташиты и графики рисовал, но в реальности всё немного не так оказалось. Подробности не помню уже.
И со "средними" 400 ppm осторожнее, это как средняя температура по больнице. Бывает днями держится 200, бывает - 600.

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение Andrey_B » 20 фев 2017, 12:29

d.v.ermakov писал(а):Andrey_B, подскажите, каков источник опорного напряжения для аналоговых входов MegaD328 и MegaD2561?
ADMUX |= (1 << REFS0); // AVCC with external capacitor at AREF pin

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение Alex_Jet » 20 фев 2017, 14:59

d.v.ermakov писал(а):И со "средними" 400 ppm осторожнее, это как средняя температура по больнице. Бывает днями держится 200, бывает - 600.
Так я привел статистику именно для моего города, даже почти для моего места проживания. Причем tor-станция онлайн выдает показания CO2, поэтому, думаю, ей верить можно:)

d.v.ermakov
Администратор
Сообщения: 2187
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение d.v.ermakov » 20 фев 2017, 16:19

ИМХО, для того, чтобы этой статистикой пользоваться в наших целях, нужен как минимум почасовой график. Я, возможно, не туда смотрел, но более подробной информации, чем помесячно, не видел.

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение Alex_Jet » 20 фев 2017, 17:59

d.v.ermakov писал(а):Я, возможно, не туда смотрел, но более подробной информации, чем помесячно, не видел.
Вот тут - http://lop.iao.ru/RU/tor/gas/ - вплоть до суточного графика :)

Andrey2509
Сообщения: 141
Зарегистрирован: 22 июн 2015, 13:24

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение Andrey2509 » 27 фев 2017, 10:23

Вот график по формуле CO2=((megad_val*3515/1024)-400)*(2000/(2000-400));
Видно что выходит за пределы (0-2000 ppm) - это когда я подышал на него.
Что поправить в формуле?
Вложения
co2.png
co2.png (18.61 КБ) 4842 просмотра

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение Alex_Jet » 27 фев 2017, 13:39

1. Необходимо данные от датчика брать разными выборками и усреднять.
2. Какое у Вас напряжение на шине 3.3В? В формуле стоит значение 3515мВ - это для моего образца MegaD.
3. 0-2000 ppm - это, как я понимаю, диапазон работы датчика, в котором он имеет нормированное выходное значение. Но это не говорит о том, что он не должен воспринимать концентрацию СО2 выше 2000ppm.

Andrey2509
Сообщения: 141
Зарегистрирован: 22 июн 2015, 13:24

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение Andrey2509 » 28 апр 2017, 10:42

Вот такие сейчас данные от двух датчиков (включены уже больше месяца) на даче рядом с лесом,
На картинке - показания, при отсутствии людей 5 дней (в единицах Megad) и после работы приточно-вытяжной вентиляции.
Предлагаемые тут формулы перевода показаний Megad в CO2 ppm не подходят - слишком кривые данные получаются.
Питание датчиков - 5V, у megad-328 3.25V. При питании от megad - разброс был ещё больше.
Ручную калибровку я не делал - вернее думал что делал, но держал замкнутые контакты (Hd и V-) не 7 сек,а 1 сек.
Автокалибровка судя по документации работает 1 раз в сутки.
Вложения
sensors_co2.png
sensors_co2.png (144.09 КБ) 4420 просмотров

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение Alex_Jet » 30 апр 2017, 10:45

Не могу сейчас привести графики (упала база на очередной флэшке в RP2), но у меня MH-Z14A, подключенный к MegaD-2561 на порт ADC выдавал правдоподобные показания. То есть:
1. Утром когда все встаем уровень СО2 начинает расти, если дома кто-то остается, то уровень растет до тех пор пока все не уйдут, либо пока не откроется окно
2. Если открывается окно, то уровень СО2 довольно резко падает, при закрытии окна плавно поднимается.
3. Когда вечером снова появляемся дома, то уровень СО2 снова начинает расти до момента когда уходим из гостевой в спальни (уровень поднимается до 2200-2500 - тогда вынужденно открываю окно). Дальше уровень СО2 стабилизируется и понемногу падает.
4. Если в квартире никого нет, то уровень медленно, но верно спадает до примерно 800ppt.

Ваши графики совершенно не информативны. Не понятно где "при отсутствии людей 5 дней (в единицах Megad)", а где "после работы приточно-вытяжной вентиляции". Приведите суточные графики, рассмотрим их. Вообще формулы "линейные", то есть не влияют на ход кривой, а лишь приводят показания MegaD в ppt.

Andrey2509
Сообщения: 141
Зарегистрирован: 22 июн 2015, 13:24

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение Andrey2509 » 02 май 2017, 08:47

Датчики работают и реагирует на кол-во людей вполне адекватно (скачки показаний при этом сохранаются во всём диапазоне).
Вопрос у меня такой: почему в доме где нет людей, после длительного хорошего проветривания такие большие скачки? В том графике что я привёл должно быть при пересчёте 400 pm = равно внешнему воздуху (согласно документации, на момент создания ПО датчика самый свежий воздух был с CO2 400 ppm).
У датчика MH-Z14A скачки 10 единиц megad328, то у датчика MH-Z14 - 60 единиц megad328. При пересчёте в ppm это разброс ~40 ppm и ~153 ppm, что намного хуже паспортной точности. Питание датчика- стабильное, мощный конвертор со стабилизацией 5V.
Это разброс самого датчика или разброс АЦП megad328 из-за не очень качественного питания megad328?
У кого есть такие датчики - отпишитесь - в длительном состоянии покоя - у вас такие же скачки? Если это особенность этих датчиков - то тогда смирюсь...
P.S. По документации автокалибровка происходит 1 раз в сутки по минимальным значениям в течении суток.
P.S.2. В мире в настоящее уже нет показаний CO2 в атмосфере ниже 409 ppm. По крайне мере с научных, а не с любительских станций. Специально искал. Если найдёте - покажите url.

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение Alex_Jet » 02 май 2017, 13:49

Andrey2509 писал(а):У кого есть такие датчики - отпишитесь - в длительном состоянии покоя - у вас такие же скачки? Если это особенность этих датчиков - то тогда смирюсь...
Если дома никого нет, то показания идут к минимуму, достигая нижнего лимита (у меня порядка 800 ppm - на свежем воздухе не калибровал). Ниже месячный график СО2 в гостевой квартиры, обратите внимание на 01-02 октября - в квартире никого не было и график достиг минимального предела. Единственное, не находясь в квартире, не могу открыть окно для проветривания, так что дальнейшие эксперименты будут только после монтажа УД и ПВУ в доме.
CO2.png
CO2.png (5.66 КБ) 3808 просмотров
Последний раз редактировалось Alex_Jet 03 май 2017, 12:29, всего редактировалось 1 раз.

Andrey2509
Сообщения: 141
Зарегистрирован: 22 июн 2015, 13:24

Re: перевод вольты в ppm для датчика со2 mh-z14

Сообщение Andrey2509 » 02 май 2017, 14:07

Ваш линк требует регистрации. Картинки не видно.
Покажите как сможете график за ~3 часа в хорошо проветриваемом помещении, без людей.

Ответить