Pull to refresh
Comments 64
UFO landed and left these words here
А к датчику не нагугливалось никаких даташитов или мануалов?
Наличие Modbus это здорово. С для работы с ним полно готового софта, куча разных утилит и почти все SCADA системы умеют работать с Modbus.
На хабре была статья «Программное обеспечение для тестирования и наладки устройств и сетей на базе MODBUS»:
https://habrahabr.ru/post/281430/
UFO landed and left these words here
UFO landed and left these words here
Это мегалайк! Теперь не знаю, что вкуснее, подключение к modbus без ардуино-переходника, или возможность пользоваться термометром.
Мой экземпляр иногда (крайне редко) не отвечает положенными 10 байтами. Вернее конструкции
while (Serial2.available()) {
 mhzBuffer[mhzBufferIndex] = Serial2.read();
 mhzBufferIndex++;
}
не всегда удается прочитать все 10 байт, и оставшиеся байты приходят только спустя 1-2 секунды при повторном чтении. Так и не смог решить эту проблему, но в остальном уже около года MH-Z19 в домашней метеостанции круглосуточно мониторит СО2 в квартире. Этот датчик приучил меня проветривать комнату!
А почему бы не делать так:

Serial2.write(cmd, 9);
memset(mhzBuffer, 0, 9);
Serial2.readBytes(mhzBuffer, 9);
Кажется именно так я и делал изначально, но readBytes ожидает все 10 байт в течении setTimeout миллисекунд (1000 по умолчанию). Ждать ответа от переферии по 1-2 секунды я не захотел, так как нужно еще обновить дисплей и обрабатывать нажатия кнопок управления (прерываниями пользоваться не умею, да), поэтому способ был отброшен.
В моём случае датчик умирал после пайки и после подключения к 5В. Оживал всегда сам после небольшого «отдыха»
У меня проблема с калибровкой работы датчика, после непрерывной работы более 2 дней показания стали в начале расти до 3500 ppm потом после перезагрузке ходит около 400-500 ppm
Хочу сделать «Calibrate zero point» но не могу понять это калибровка под 0 ppm или 400 ppm? на одном сайте пишут что это типа 0 ppm и без азота не обойтись а на другом пишут что это 400 ppm и достаточно хорошо проветрить помещение в течении 20 мин подержать датчик в нем и можно делать калибровку.
Есть еще «SPAN POINT CALIBRATION» код 0x88 где можно задать свое значение, побывал его но никакой особой ракции
понять это калибровка под 0 ppm или 400 ppm
Под 0, :-(.
Я так два датчика убил (первый откалибровал ради интереса, второй – просто по ошибке, эта калибровка запускается при замыкании одного из входов на землю – а я не знал, что его корпус из проводящего метализированного пластика, и заземлённй), не повторяйте моих ошибок.
Исправить без баллона нельзя потом, я его даже в эксикаторе с щёлочью держал – не помогает.
В крупных городах продается жидкий азот, стоит копейки. Единственное — учтите, что у co2 температура сжижения сильно выше, чем у азота. Поэтому наливать в пакет с датчиком азот неправильно.
Кислород тоже сжижается при температуре жидкого азота, но не знаю влияет ли он на датчик.

Я положил в пакет датчик, провода наружу. И несколько раз давал наполниться пакету азотом из термоса и потом выдавливал весь газ наружу. Потом запустил калибровку.
Хех, я с азота и начал – благо, его даже покупать не надо, достаточно в лаборатории у знакомого отлить. Увы, «Не помог и испаряющийся жидкий азот (оказалось, что он набирает углекислый газ из воздуха, и датчик зашкаливает, даже если у него сбита калибровка и он не реагирует ни на что другое).»

Вы, собственно, сами чуть ниже говорите, что никакого эффекта не добились.
Я пытался калибровать азотом и замыканием контакта калибровки на землю (или на vcc, не помню). Никакого эффекта не добился.
Как мне кажется, самое простое и правильное решение – вручную составить таблицу перекалибровки датчика по работающему – ставить рядом два датчика, записывать показания, а потом составить таблицу пересчёта (с шагом в 50-100 ppm, большую точность они всё равно не дают), и на её основе написать калибровочную функцию.
Беда в том, что работающего измерителя концентрации CO2 я для пока найти пока не могу, :- (.
У меня была похожая проблема, когда датчик начинает работать, то он постоянно повышал значение, а если его выключить и снова включить, то сразу падало.
Я так думаю, что бы это было связано с напряжением, я когда с 3.7В на 5В поменял, то стало нормально.
Очень интересная статья!
Только пара замечаний:
1). В интернете есть PDF-файлы под названием «datasheet» к датчикам этой серии – MH-Z19, MH-Z14 и другим. Они, в отличии от настоящих даташитов, очень куцые, но часть встреченных в статье «недокументированных функций» там описаны.

Правда, минимальное значение лежит заметно ниже, чем «эталонные» 400 ppm, так что калибровка оставляет желать лучшего.
Скорее всего, вы, среди прочих, подали команду сброса калибровки датчика – перекалибровали его так, что он теперь думает, что находится в воздухе с минимальной понятной ему концентрацией СО2, она как раз порядка 150 ppm.
В сети есть 2 datasheet один для MH-Z19 второй для новой ревизии MH-Z19B отличается от старого датчика то что может работать и с 5v логикой а так же эти датчики уже продают с распаянными колодками, так вот там в PDF MH-Z19B написано:

— 0x87-ZERO POINT CALIBRATION NOTE:ZERO POINT is 400PPM, PLS MAKE SURE THE SENSOR HAD BEEN WORKED UNDER 400PPM FOR OVER 20MINUTES

получается новая ревизия имеет калибровку нуля не 0 ppm а 400 ppm
О, значит китайцы молодцы. Легко доступная функция калибровки, убивающая датчик – это ужас.
Поиздеваться можно попробовать так: заменить микропроцессор датчика на arduino и сделать опенсорсную прошивку по прямой работе с железом.
Там и так на борту стоит вполне человеческий STM32F1 и пины для перепрошивки выведены наружу.
Нет, лучше заменить STM32 на атмел и все писать в недо-IDE arduino!
Отличная статья, спасибо!

Если вы не сильно далеко от Москвы и вам вдруг нужны сенсоры MH-Z19 или MH-Z19B для дальнейших экспериментов, то с радостью отдадим на растерзание — мы их используем в своих железках и поэтому у нас их всегда много.
Не тот график привёл для величины 261. Вечером исправлю. Правильный график — как на последней картинке синим цветом.

Rast1234
> А к датчику не нагугливалось никаких даташитов или мануалов?

Ну вот есть официальный даташит (хотел привести в статье ссылку, но забыл):

http://www.winsen-sensor.com/d/files/PDF/Infrared%20Gas%20Sensor/NDIR%20CO2%20SENSOR/MH-Z19%20CO2%20Ver1.0.pdf

Ни о каком модбусе там не говорится, да и вообще информации с гулькин нос. Я честно пытался найти статьи, где бы люди его более детально изучали — нашёл только вышеприведённую статью https://revspace.nl/MHZ19 и пост на форуме http://www.letscontrolit.com/forum/viewtopic.php?t=1785, насколько я понял, того же автора.

arcman
> Наличие Modbus это здорово.

Это да. Только меня смущает адрес датчика — 1. Небось если его подключать совместно с другими устройствами, то наверняка найдётся другое не менее «умное устройство» с таким же адресом (а если мы хотим мерять СО2 в двух и более местах — то эта вероятность становится равной единице). Хотя, быть может, удастся изменить этот адрес — вон в содержимом памяти три единицы виднеются.

legrus
> Теперь не знаю, что вкуснее, подключение к modbus без ардуино-переходника, или возможность пользоваться термометром.

Ну, по оригинальному протоколу тоже можно с компа без ардуины общаться. https://geektimes.ru/post/272090/ Или у вас готовая modbus-железка? А термометр там не очень точный, как я упомянул в статье.

@ Weles
> В моём случае датчик умирал после пайки и после подключения к 5В. Оживал всегда сам после небольшого «отдыха»

Насколько я понял, он вообще при включении «разогревается» три минуты, и в это время показывает различную чепуху. Пишут, что тепловой режим должен установиться, а после пайки он как раз нарушен.

APLe
> Я так два датчика убил

Ну почему же сразу убил? Повышение-то СО2 показывает. Ну и можно что-нибудь придумать с калибровкой. Первое, что вспоминается — получить водород электролизом воды (кислород брать я бы не стал — мало ли что окислит).

Ещё бы придумать, где брать СО2 для калибровки и как его точно измерять. Я уже попробовал соду с лимонной кислотой — в принципе получается наполнить пакет львиной долей СО2, только непонятно, насколько она львиная. Скорее всего, куплю точные весы и буду добавлять раствор соды к раствору кислоты.

> Скорее всего, вы, среди прочих, подали команду сброса калибровки датчика – перекалибровали его так, что он теперь думает, что находится в воздухе с минимальной понятной ему концентрацией СО2, она как раз порядка 150 ppm.

У меня было веселее. Он раз в сутки сам автоматически калибруется — вроде как минимальное значение принимает за 400 ппм. Так вот, он у меня так замечательно откалибровался, что стал показывать в 2 — 3 раза меньше, чем до этого, и показания обрезались на 400 ппм (то бишь сам он явно намерял меньше, но стеснялся в этом признаться). А вот по modbus он ничего не обрезает, зато минимум стал показывать даже меньше 150. Графики в следующий раз приведу.

Кстати говоря. Самая главная команда, которая упомянута на revspace — 0x79: ABC logic on/off. Взята из даташита на MH-Z19B. Я сначала не мог понять — алфавит отключает, что ли? И только после того, как я почитал даташитов на более понтовые датчики, я понял — это automatic baseline correction, то бишь таким способом можно отключать самовольную калибровку. Я считаю, это первое, что надо делать с датчиком после покупки. Хотя быть может, конечно, что со временем показания плывут, но по крайней мере так можно быть уверенным, что если сегодня показания одни, а завтра другие — это действительно что-то изменилось в среде, а не датчик решил пошутить.

SegreyBorovkov
> В крупных городах продается жидкий азот, стоит копейки.

А тара для него тоже копейки стоит? Вообще, как его покупают, чтобы дёшево и сердито?

> Я пытался калибровать азотом и замыканием контакта калибровки на землю (или на vcc, не помню). Никакого эффекта не добился.

А почему? Получается, что датчик настолько тролльский, что в условиях атмосферы сбить калибровку может, а в условиях азота калиброваться отказывается?

evgeny_boger
> Там и так на борту стоит вполне человеческий STM32F1 и пины для перепрошивки выведены наружу.

О, значит, кто-то всё-таки его уже мучал! Было бы интересно почитать вашу статью на эту тему, она наверняка будет познавательнее моей. В частности, как его вскрывать, чтобы ничего не сломать.

> с радостью отдадим на растерзание

Спасибо! Если свой убью, то с радостью приму.
Ну почему же сразу убил? Повышение-то СО2 показывает.
Потому что повышение он тоже показывает очень криво, :-(.
Я так понимаю, у него теперь «0» откалиброван по атмосферной концентрации (уже чуть ниже, после калибровке в эксикаторе над щёлочью), и «400» – тоже по атмосферной концентрации. Поэтому показания жутко нелинейные и непонятно где и как завышенные. В общем, надо вручную калибровать – по рабочему, которого у меня нет.

Он раз в сутки сам автоматически калибруется
Ого, а он калибруется разве? Вот этого в даташите я не видел (или не понял, что такое «ABC logic», тоже возможно).
Если да, то это может объяснять многие странности в его поведении.

А тара для него тоже копейки стоит?
Любой термос подходит. Лучше, на всякий случай, из нержавейки.
О, значит, кто-то всё-таки его уже мучал! Было бы интересно почитать вашу статью на эту тему, она наверняка будет познавательнее моей. В частности, как его вскрывать, чтобы ничего не сломать.


Да нет, мы как раз один сенсор разломали и посмотрели, что внутри :)
Я кстати немного ошибся, там стоит STM32F051

Статью думаю напишем, но я больше хотел написать про показания и автокалибровку. Мы делаем долговременные тесты, сравниваем между собой MH-Z19B и другие китайские, Fibaro CDM7160, SensAir S8 и т.д.
Я жидкий азот купил, приехав с металлическим литровым термосом. Мне сказали, что можно наливать только в дьюары. И тут же налили в термос :-).

>> Я пытался калибровать азотом и замыканием контакта калибровки на землю (или на vcc, не помню). Никакого эффекта не добился.

>А почему? Получается, что датчик настолько тролльский, что в условиях атмосферы сбить калибровку может, а в условиях азота калиброваться отказывается?

Я допускаю, что датчик немного изменил калибровку, но существенного изменения после калибровки по свежему воздуху не последовало. Как и раньше, раз в сутки на графике видна ступенька рекалибровки датчика.

Могу сказать, что в моих условиях (аптайм — месяцы, случайное проветривание, бывает минимум за сутки и 600ppm, это не влияет!), ступенька постепенно уменьшается. Если в первую неделю после калибровки и последующего полноценного подключения, калибровка легко сдвигала показания на 200ppm, то сейчас в большинстве случаев калибровка меняет значение меньше, чем на 50 ppm.

Я вполне допускаю, что если неверно откалиброванный датчик подключить к питанию, то он через месяц начнет показывать что-то адекватное.

Записывается ли такая ежесуточная калибровка в ППЗУ датчика — не знаю.
>Могу сказать, что в моих условиях (аптайм — месяцы, случайное проветривание, бывает минимум за сутки и 600ppm, это не влияет!), ступенька постепенно уменьшается. Если в первую неделю после калибровки и последующего полноценного подключения, калибровка легко сдвигала показания на 200ppm, то сейчас в большинстве случаев калибровка меняет значение меньше, чем на 50 ppm.

Получается что автоматическая калибровка или не имеет ограничения на размер единовременного изменения, или оно очень большое, если за сутки может сдвинуть значение на 200… В таком случае, вероятно, имеет смысл отключать ABC и делать ее снаружи, мне (умозрительно) кажется, что было бы логично ограничить возможность разовой калибровки 50ppm и проводить ее не раз в сутки, а раз в неделю, так будет значительно ниже вероятность перекалибровки (мало ли, пару дней комнату не проветривали и при этом там тусила толпа).
Измерители co2, типа
фотка
image
именно так и поступают — раз в неделю калибруются на <=50ppm.
Датчик вы скорее всего уже убили, и теперь его можно смело разбирать. Посылать случайные команды в сенсор с доступными конфигурационными параметрами в EEPROM (или его эмуляцией во флэш) — верный способ сбить настройки. Если Zero вы еще сможете восстановить в домашних условиях, то Span и температурные коррекции малореально. Если всё же займётесь — для калибровки нужны газы не более верхнего порога измерения, т.е. сода с лимонной кислотой не годится.
Так как в сенсоре есть ABC с периодом 24 часа, то величина U, очевидно, является минимальным значением измеренного поглощения IR CO2 за сутки, в каких-то внутренних единицах измерения.
ABC фича полезная, отключать её стоит лишь в средах, где 400ppm не бывает. Калибровка раз в сутки, конечно, слишком часто, даже в жилых помещениях не всегда бывает свежий воздух.
> Датчик вы скорее всего уже убили

Как вы, однако, смело записали его в покойники. А он работает и не знает, что уже труп.

> Посылать случайные команды в сенсор с доступными конфигурационными параметрами в EEPROM (или его эмуляцией во флэш) — верный способ сбить настройки.

Не думаю, что он в «родном» режиме что-то воспринимал как настройки. По крайней мере ежели бы они все слетели, он бы, скорее всего, показывал бы бред. А так показывает что-то похожее на правду, хоть и несколько смещённую.

> для калибровки нужны газы не более верхнего порога измерения

Процедуру разбавления уже запретили? Ну и по секрету скажу, что порог измерения у него теперь где-то в районе ста процентов. Про это будет в следующей статье.

> величина U, очевидно, является минимальным значением измеренного поглощения IR CO2 за сутки, в каких-то внутренних единицах измерения.

Нет. Ибо она падает совершенно в другие моменты, нежели регистрация минимальных значений.

> ABC фича полезная, отключать её стоит лишь в средах, где 400ppm не бывает.

Интересно вы рассуждаете. Немного слетела калибровка (хотя можно программно сделать поправку в случае чего) — это уже труп. А когда сам датчик самоуправством занимается (и программно это учесть либо невозможно, либо очень сложно) — это так и должно быть.
Мне кажется, вы смотрите с разных точек зрения =)
Для unsvp датчик — это откалиброванное устройство, работающее по известному алгоритму с известными, повторяемыми параметрами, и изменение этих параметров = потере старого датчика (и, возможно, приобретение нового с неизвестными параметрами).
Вы же рассматриваете его как устройство для изучения/реверса, ранее заложенный алгоритм Вам неизвестен, к тому же нет калиброванного известного датчика рядом, и вы работаете только с относительными значениями, которые похожи на абсолютные, но погрешность никто высчитать не может.

Спасибо Вам за работу =)
0x79 у меня работает на одну сессию (одно включение, надо подавать при инициализации) и позволяет смотреть изменение без ежесуточных сбоев. В долговременном плане меня смущает, конечно, засирание внутренней поверхности в условиях города с пылью/табачным дымом рядом, пока я просто вывожу недельный минимум рядом с текущим показанием. Минимум считаю скользящим окном, а не по фиксированным срокам.
> величина U, очевидно, является минимальным значением измеренного поглощения IR CO2 за сутки, в каких-то внутренних единицах измерения.

Да, вы знаете, сейчас посмотрел — всё происходит (происходило..) ровно так, как вы сказали. Посыпаю голову пеплом. Сейчас в пост добавлю.
Хотя, быть может, удастся изменить этот адрес — вон в содержимом памяти три единицы виднеются.

Обычно, можно менять адрес у любых устройств. Т.е. если даже нельзя у датчика, то у другого устройства с этим адресом будет можно.
Читается как роман. Надеюсь автору не подвернется на часок «ядерный чемоданчик»
попробовать считать прошивку если не залоченная и реверснуть
Не подскажете от чего возникают такие скачки? Правда у меня MH-Z14
График
image

верхний график: какая то ошибка в бите. прыжки +- 256.
нижний график: неверное преобразование знаковый/беззнаковый

так вот они (прыжки) стабильные, они сохраняются на протяжении нескольких часов, при запросах к датчику кажде 15 секунд. Только когда людей нет в помещении график ровный.
Про то, что нижний без знаковый знаю, но руки никак не дойдут поправить прошивку.
> Про то, что нижний без знаковый знаю, но руки никак не дойдут поправить прошивку.

Коли знаете, то зачем спрашиваете?
Картинка не удачная, у меня вопрос про верхний график только был. По нижнему четко виден переход знака.

у вас на обоих графиках "сбои" происходят одновременно. причем с нижним всё в порядке на самом деле. А вот для построения верхнего вы похоже используете байт из нижнего. В общем ищите где данные меняются местами. Или вы при вычитывании один байт не обновляете, а используете старое значение вычитанное для другой величины.

Не всегда, при построении использую точно верные данные. График рисует совершенно независимая машина. Данные концентрации и температуры приходят из ардуины. Там единственный косяк на текущий момент, что все int знаковые.
Бессмысленно и беспощадно
    mySerial.write(cmd,9);
    mySerial.readBytes(response, 9);
    int responseHigh = (int) response[2];
    int responseLow = (int) response[3];
    tem = (unsigned int) response[4]; // Удет в комп
    ppm = (256*responseHigh)+responseLow; // Уйдет в комп
Да с верхним графиком то же самое небось. Скорее всего, предыдущий оратор читает в два байта со знаком, а затем складывает их наподобие байт1 * 256 + байт2. Вот и прыжки на 256. А надо использовать беззнаковые. Хотя без вашего камента я бы не догадался.
А вот до этого я не додумался. Попробую, посмотрим, что получится.
У меня с датчиком MH-Z19 что то не заладилось совсем, первый стал глючить, второй китац прислал не рабочий(корозия на ножках) да и в инете постоянные жалобы на него

вопрос: у кого есть модель MH-Z14, у вас такаие же проблемы?
Подскажите, пожалуйста, где можно купить такую коробочку, которая бы показывала содержание углекислого газа в воздухе с небольшой погрешностью за вменяемые деньги?
Очень хочу такую, но собирать самому очень не хочется.
Нашел в интернете пост одного японца который утверждает что «Calibrate zero poin» это калибровка на 400 ppm (https://lowreal.net/2016/12/25/3) на датчике MH-Z19.

И так я решился сделать калибровку «Calibrate zero poin», решил не трогать ножку HD и все делать через команды UART.

Дома в одной из комнат решил сделать проветривание(окна у меня выходят на лесок, воздух должен был достаточно чистый) при температуре за бортом -15 я положил датчик возле окна а сам пошел на 30 мин в другую комнату чтобы выдыхаемый мной CO2 не портил картину.

Это была моя первая ошибка, после того как я через 30 мин отправил команду на калибровку я первый раз увидел как датчик стал выдавать 130-150 ppm, думал что уже тоже окончательно сломал датчик.

Но тут обратил внимание на то какую температура была в самом датчике (за это отвечает 4 байт в ответе TT is the temperature in degrees Celcius, plus 40. For example, when temperature is 25 deg C, then TT = 0x41) оно было +3..+5 и понял что калибровку лучше делать при постоянно не меняющейся температуре.

Во второй раз решил стабилизировать температуру, на окно поставил обогреватель чтобы воздух входящий в комнату подогревался и не остужал комнату, а датчик положил рядом на высокую тумбочку возле окна.

Через 15 мин показания температуры в датчике стабилизировались на отметке +19 и 5 байт ответа(SS is some kind of status byte, this byte always has only one bit set!) стал показывать стабильно долго одно значение «64», через 5 мин я запустил калибровку по новой, после этого обесточив датчик и включив его заново уже в другой комнате где я ожидал проветривание, датчик стал показывать с ростом ppm и остановился на отметки 850 через 10 мин что с ощущениями похоже на правду.

p.s. Вот уже несколько часов показания датчика похоже на те что были до поломки
p.s.s. ABC калибровку я отключил от греха подальше
p.s.s.s. Для контроля нужно купить еще один датчик, осталось выбрать или новую модель MH-Z19B(там не только припаяна колодка ног но и убрали микросхему) или взять MH-Z14A(меньше негатива об этом датчике)

Новый датчкик mh-z19b:
image


Привет всем!
После нескольких дней непрерывной работы на момент сегодняшнего утра датчик стабильно выдавал 500-530 ппм в сухой пятилитровой бутылке (в бутылке я сделал небольшой надрез, чтобы просунуть туда датчик и после плотно заклеил скотчем). После работы в бутылке я поместил датчик на створку окна, открыл окно на проветривание. Датчик откалибровался и стал выдавать значение на 70-100 ппм больше, чем в бутылке. После чего я вернул его в бутылку и он ожидаемо стал выдавать 640 ппм (вместо 530 ранее в той же бутылке, в бутылку я не дышал=)).
Теперь самое интересное. Я открутил крышку, сделал выдох в бутылку, закрутил крышку. Датчик за несколько измерений подошел к 5000 ппм и стал стабильно показывать эту цифру. Мне показалось, что от одного выдоха концентрация до 5000 ппм скакнуть не должна была, я отключил датчик, и после включения он показывал не 5000, а всего 950!!! После очередного выдоха в бутылку датчик уже не зашкалил, но подошел вплотную к 5000. Он стабилизировался на уровне 4950-4990. Затем я вытащил датчик к окну и он стал давать показания 150-550. В бутылке с уличным воздухом показания медленно ползли вниз от 500 до 400. После отключения питания и подключения снова выдает 500 и показания продолжают медленно расти вверх.
Прошу прощения за длинный пост. В итоге совсем не могу понять почему показания плавно меняются то вверх то вниз, не стабилизируются даже в изолированной бутылке.
Буквально сейчас аналогичный тест произвожу. Только более долговременный. Надышал в бутылку и закрыл. Показания болтаются в районе 12600+-100. И тоже не понимаю, отчего это они гуляют. С изменениями температуры вроде не соотносится. Но долговременная (несколько суток) стабильность есть.

Кстати говоря, в выдыхаемом воздухе «по уставу» 4% СО2, сиречь 40 000 ppm. Правда, никто не говорит, при каких это условиях. У меня в зависимости от того, насколько я задерживаю дыхание, показания в полтора раза меняются.

> в бутылке я сделал небольшой надрез, чтобы просунуть туда датчик и после плотно заклеил скотчем

Ну кто так делает? Я вот просверлил в крышке отверстие, просунул провода и залил термоклеем. Теперь можно считать, что она абсолютно герметична (по крайней мере в пределах нескольких дней при атмосферном давлении).

> я отключил датчик, и после включения он показывал не 5000, а всего 950!!!

Правильно, он три минуты после включения показывает различный бред. И вообще вроде как рекомендуется его всегда включённым держать и не выключать без крайней необходимости. И резкие перепады СО2 он плохо меряет (можно сказать, вовсе не меряет).

> я поместил датчик на створку окна, открыл окно на проветривание

Интересно, а у меня он при малейшем ветерке какую-то шерсть показывает. Каким напряжением питаете? Я для своего сделал вывод, что лучше всего он работает на нижней границе диапазона, то бишь 3,6 В. Правда, чуть ниже — уже начинает глючить. И, конечно, никак не говорит, что напряжения не хватает.
Задержка дыхания, естественно влияет =) на продолжительность и эффективность диффузии газов из/в крови в лёгких. Думаю, 4% — это либо средний максимум, либо максимальное значение, обусловленное падением эффективности переноса газов при большей концентрации
Очень интересная статья. Для исследования протокола Модбас всё таки лучше бы использовать специализированную программу типа Modbus Poll. Было бы интересно найти регистр переключения протоколов. Да и адрес, скорее всего меняется в каком то регистре.
> специализированную программу типа Modbus Poll

Быть может, но я с Modbus первый раз встречаюсь, потому никаких программ не знаю.

> Было бы интересно найти регистр переключения протоколов. Да и адрес, скорее всего меняется в каком то регистре.

Да, это тоже попроверяю. В принципе содержимое памяти есть, можно в случае чего обратно «первоначальные» значения записать.
А нормально, что на (условно) чистом городском воздухе датчик (В версия) может показывать 395ppm?
Ну вроде как он наименьшее значение за сутки принимает за 400 ппм. Это, конечно, не очень хорошо, но вот так.
А вот теперь наоборот… Купил ещё один такой же датчик, так он за городом на улице показывает 700 с копейками. Неужели калибровать придётся?
Откалибровал по уличному воздуху. Вроде нормально стал показывать.
Only those users with full accounts are able to leave comments. Log in, please.