Как стать автором
Обновить

Делаем устройство для мониторинга концентрации CO₂

Время на прочтение8 мин
Количество просмотров25K
Всего голосов 53: ↑52 и ↓1+75
Комментарии71

Комментарии 71

а нельзя сам модуль не держать включенным постоянно, а запускать раз в 10 секунд? Кажется, для этого нужна одна нога контроллера и полевой ключ.

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

Чаще одной минуты и нет смысла измерять. Непонятно, экран гаснет со времем или нет. Если да, то как его включать; если нет, то зачем отдельные светодиоды, когда все предупреждения можно показывать на экране?

экран гаснет со времем или нет.

Нет

зачем отдельные светодиоды, когда все предупреждения можно показывать на экране

Мигания на экране не сильно бросаются в глаза в отличии от светодиодов

Нет

Вот что происходит с этим экраном через 6-9 месяцев непрерывной работы.

100% воспроизведение или просто 1 экземпляр такой?

Плюсую. Есть несколько девайсов что работают 24/7 с такими экранами. За несколько месяцев уже "проседают" пиксели - те, которые постоянно включены. У этих экранов есть функция отключения. У себя делаю обычно таймаут 120секунд и тушу. Дальше если нужно что-то увеломить-включаем и заново считаем тайм аут. Также экран пробуждается по любой кнопке управления(если они есть)

Спасибо всем за информацию, я не ожидал что с ними всё так плохо :(

LED экраны все выгарают, даже на Самсунговских флагманах.

Моя статистика - три из трех.

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

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

С потреблением я смотрю у вас тоже трудности. Почему бы не вывести настройку или отдельную команду -- "Измерь концентрацию и дай данные". В общем MH-Z19 не самый хороший сенсор

Да, есть такое, хоть свою прошивку под STM32 датчика пиши)
Есть такие датчики: SCD40: https://aliexpress.ru/item/1005002906374739.html
В них вроде бы можно добиться меньшего потребления тока.

Питание там, если не ошибаюсь, от USB, встроенного аккумулятора нет.
Иногда автономности хочется.

От пауэрбанка работает, но в моём случае работает только, если отключить Power Delivery

Дороговато.

У китайцев дешевле тысячи встречаются: https://aliexpress.com/item/1005003268843575.html

С автономным питанием. Правда, неизвестно как там с точностью..

Там стоит не датчик СО2 а так сказать "интегральный датчик загрязненности воздуха" который арифметически покажет вам какие-то цифры СО2. Он не замеряет непосредственно СО2.

Я тоже так сначала подумал, но посмотрел обзоры на mysku, в том числе и с разборкой - там какой-то инфракрасный CO2 датчик. Немного похожий на MH Z19, но не он. Видимо какая-то новая китайская разработка.

Я как-то озадачился измерением со2 и купил за 40 евро готовый прибор. Он показал 2500 ppm. В лесу. После дождя.

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

Когда я искал себе прибор то видел что стоимость нормальных откалиброванных датчиков начинается от 200 евро, 40 евро это генератор случайных чисел.

Я его калибровал просто на свежем воздухе на улице. Датчик в этом случае берет это за 400ppm и уже дальше относительно этого измеряет. Т.е. по факту он показывает не абсолютную концентрацию, а относительно воздуха на улице

За такие деньги на Али продаются в основном с датчиками TVOC, которые CO2 выдумывают вообще как угодно. И об этом о датчике могут врать в описании. Надо смотреть отзывы с фотками вскрытия.

Значение на КДПВ говорит, что дышать автору уже нечем.

Это я надышал во время съемки))

Значение на КДПВ говорит, что дышать автору уже нечем.

А сколько CO2 в выдохе человека?

Порядка 10 000, емнип

Скорее 35 000.

Уж сколько раз обсуждали это на Хабре.

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

Еще они в большинстве случаев самокалибруются, и требуют для этого регулярного вынесения на свежий воздух (им еще надо об этом сказать, что он свежий). Иначе - дрифт нуля.

Конкретно про упомянутый не помню.

Друзья, подскажите адекватный датчик из-коробки с ZigBee? Готов даже регулярно носить на улицу его…

https://modkam.ru/2020/09/28/datchik-co2-zigbee/

Или https://wirenboard.com/ru/product/wb-msw-zigbee-v3/, но тут цена уже на мой вкус высоковата, и плюсом к тому устанавливать лучше в подрозетник и питание нужно где-то там же взять. Ну в общем лучше co2 измерять выделенным датчиком на мой взгляд.

Датчик MH-Z19B мне не понравился тем, что его надо калибровать. Да ещё и регулярно калибровать.

Для калибровки предлагается выносить датчик на балкон, но на улице не всегда 400 ppm. Иногда там 380 ppm, а иногда 500.

Сам использую этот прибор, https://habr.com/ru/post/390607/ он в калибровке не нуждается. Как они это сделали не знаю, но не ощущения что врёт. Напротив самоделка MH-Z19B сразу говорит о том, что врёт, а значит просит калибровки. Если кто знает как это решить, пишите.

Тут меня знающие люди поправляют, что концентрация меняется не сильно, дельта составляет порядка 6 пунктов между разными временами года. https://ru.wikipedia.org/wiki/График_Килинга

Среднее потребление 30мА. Главный пик тока приходится на вспышку светодиода во время измерения концентрации.

Там не светодиод, там как раз натуральная микроминиатюрная лампочка накаливания (любители ТЛЗ радуются :))) ), от того у датчика такое конское потребление.

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

НЛО прилетело и опубликовало эту надпись здесь

Да, забыл поправить на счет светодиода (поправил). Спасибо.

Если светодиоды подключены через ключи, значит светодиоды достаточно мощные, а они питаются от 3.3В. Тогда не ясен ход с линейным решулятором 5В -> 3.3В. Аккумулятор просто его греет. Надо использовать импульсный DC-DC.

Проще сразу подключить их к аккуму без всяких стабилизаторов.

Вместо mh-z19 лучше использовать SenseAir S8. У него с калибровкой получше дела обстоят.

Несомненно, но на момент разработки на него были не самые приемлемые цены. Сейчас да, я бы взял S8

На самом деле датчик можно поменять не меняя железа. Там и питание и форм-фактор одинаковый. FW разве что подкорректировать нужно, но это так -- мелочи.

Да. Я знаю. У меня похожее решение года два уже работает.
Сначала было на esp8266, сейчас в Zigbee сети работает.
Но mh-z19 откровенно разочаровал. Показания уплывают что со включенной калибровкой, что с отключенной.

А какие вообще хорошие датчики из коробки честно показывают СО2?

Sensirion SCD30, например. Если готовое устройство на нём, то Cleargrass CGS1.

Когда начал читать статью, сразу решил загуглить используемый датчик (где продаётся, сколько стоит) и тут-же по маркировке датчика натыкаюсь на готовое устройство 3 в 1 (CO2, качество воздуха и влажность) которое стоит 1900р. с доставкой. Решились на разработку из любопытства или есть какие-то уникальные функции о которых в статье не упомянули?

Нет. Устройство из разряда "померил - показал". Делал исключительно из интереса к измерению концентрации, т.е. никакой экономии денег, никаких супер фич -- просто пощупать это самому.

По результатам могу сказать, что я не сильно доволен. Если делать реальное устройство для продажи -- нужно половину переделывать :)

готовое устройство 3 в 1 (CO2, качество воздуха и влажность) которое стоит 1900р. с доставкой

Поделитесь ссылкой или названием, а? :)

Простым поиском удалось найти только девайс от Даджет, который только CO2 и температуру измеряет за 3990 руб. (без учёта доставки)

И аналог изделия из статьи тоже есть

По ссылке датчик СО, а не СО2. Аналоги разумеется есть, я не претендую на уникальность :)

Моя ошибка, невнимательно смотрел на тип датчика. Помимо конструкционных различий, уникальность вашего проекта в открытости. За это отдельное спасибо )

Вторая ссылка - это сигнализатор CO (совсем другой газ).

А прибор по первой ссылке выглядит годным, но в других местах ( например, https://www.aliexpress.com/item/4001342074070.html ) , где отзывов побольше, пишут, что показывает отсебятину, например:

Я, конечно, умельцев с AliExpress уважаю, но тамошние дельцы умеют считать деньги, т.е. продавать в розницу работоспособный прибор (с немаленьким цветным дисплеем при этом) по цене, сравнимой с ценой типового датчика CO2, там не будут.

Кстати, есть отзыв и о внутренностях:

В приборе установлен комплексный датчик качества воздуха TPM-300a-v2.2, который не измеряет CO2. 

Такие дела :)

Ссылка на товар на озоне

Гуглится по названию датчика: MH-Z19B причём готовое устройство прямо в гугловом рекламном модуле показывают. Подозреваю, что на алике ещё дешевле будет, но там ждать надо.

Доставка из-за рубежа

Это тот же девайс, что и на "алиэкспрессах", только в профиль :)

Если кратко - показометр 80-го уровня (см. мой комментарий выше).

И всё же там, судя по обзорам, настоящий ИК-датчик CO2, но не MH-Z19, а какой-то другой.

Спасибо за ссылку.

В комментариях пишут, что там QC102, но самого датчика на AliExpress вообще (пока?) нет. Впрочем текущие разновидности MH-Z19 выглядят похожим образом.

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

В комментариях к обзору, кстати, есть подсказка:

Если рядом с СО2 в приборе есть tvoc и при этом цена «20 долларов(хотя скорее даже 30), то сенсора СО2 там нет. А показания берутся с датчика ЛОС(tvoc) из них считают СО2а. Метод крайне не точный, если сравнивать с датчиком.

Да, я всегда смотрю на наличие tvoc при низкой цене. В этом приборе именно его отсутствие заставило пойти искать что там внутри.

Кстати, сам обзор указывает на прибор, под которым есть всего 3 (три!) формальных отзыва, и при этом сам отзыв от обзорщика отстуствует.

Скорее всего, автор обзора покупал прибор (или же он вообще достался ему в "рекламных целях") в другом магазине и, возможно, по другой цене, а не за условные $30.

В этом обзоре есть ссылка на обзор Алексея Надежина @AlexeyNadezhin

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

Простой вопрос: как рассчитывали номиналы R2 и R3?

R2 выбирал на основе максимального тока GPIO микроконтроллера, чтобы не превысить его. R3 не считал вообще, это просто подтяжка на момент запуска МК. Взял его из соображения "много больше резистора затвора". Не считаю нужным запариваться с емкостью и прочими параметрами для расчета правильного номинала резистора затвора, мы тут светодиодом мигаем :)

У Вас есть сомнения?

Не столько сомнения, сколько интерес к методике расчета.
Можете привести расчет R2?
По поводу R3 в принципе понятно, но хотелось бы узнать, почему номинал, например, не 10 кОм, ведь это тоже «много больше резистора затвора»?

Расчет там очень простой:

  1. Ищем в даташите максимальное значение тока GPIO и не забываем про максимальный ток VDD пинов (т.е. ограничение самого МК). В моем случае суммарный ток 120 мА, а ток GPIO 25 мА.

  2. Т.к. транзистор мы дергаем с низкой частотой, то быстро заряжать\разряжать затвор нам не нужно. Значит возьмем ток с большим запасом, зачем лишний раз насиловать GPIO. Далее любимый закон Ома: I = 3.3 / 1000 = 3.3 мА -- 1 кОм резистор подходит.

В идеале нужно брать 120 мА и делить на количество используемых GPIO. Внезапно вместо 25 мА на пин у нас получается сильно меньше: 120 / 12 = 10 мА. Тут можно и балансировать, т.е. на одном пине делать ток больше, на другом меньше. Очень много НО и всё зависит от задачи.

В качестве подтяжки 10 кОм тоже подходит. Я обычно 10к и меньше использую в Open-Drain цепях, для push-pull использую 100к. По сути 100к резисторы нужны чтобы транзистор наводками не открылся, пока МК запускается. В 80% случаях связка 1к - 100к работает отлично.

В случае 100к подтяжки будет утекать меньше электронов в пустую, соответсвенно при 10к в 10 раз больше :)

Это всё работает только для низких частот. При высоких начинаются веселья с емкостью затвора, его индуктивностью и сопротивлением. Эти паразиты уже при 100 кГц начинают оказывать ощутимое влияние. В этом случае уже расчеты сложнее. Про СВЧ даже говорить не буду :)

Надеюсь я смог ответить на вопрос

Отлично, спасибо!
Поставил бы плюс и в карму, но уже сделал это ранее.

Осталось загадкой, почему бы вместо 100к не поставить, скажем, 220к? Электронов меньше бы утекало впустую… )
Часто встречаю 100к в подобных схемах. Но никак не могу найти источник, откуда это пошло. Не может быть, чтобы данный номинал взялся с потолка, только на основании того, что «работает». Наверняка в каком-нибудь Application Note есть расчет. Если встретите, киньте в меня ссылкой пожалуйста )

Чем больше сопротивление подтяжки, тем меньшую наводку такая подтяжка сможет скомпенсировать. В данном случае ток через этот резистор не будет превышать 33 мкА, он просто ничтожен по сравнению с током, потребляемым остальными компонентами. И он будет только тогда, когда горит светодиод. Даже если бы в этом девайсе использовался глубокий сон, этот ток ни на что бы не влиял, так как оставлять светодиоды включенными при глубоком сне как-то глупо, а значит и тока бы не было. Оптимизация здесь не нужна.

По поводу автокалибровки базовой линии. Часто говорят, что её нужно отключать, но мой опыт использования MH-Z19 и SenseAir S8 показывает, что лучше этого не делать, по крайней мере, если помещение хоть иногда проветривается. Без калибровки показания плывут неконтролируемо. С ней же датчик может до следующей калибровки сдвинуть базовую линию до минимального зафиксированного с прошлой калибровки значения, и в нормальной жизни это более чем приемлемо. Даже если показания временно сместятся на пару сотен ppm, это не особо страшно. Если помещение не герметично и люди его иногда покидают, уровень CO2 довольно быстро падает. Так что существенных проблем у меня не возникало. А в офисе, из которого все люди уходят вечером, у меня показания каждую ночь падали до наружных.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий