Comments 99
1. Как по Вашему насколько датчик CO2 точно работает?
2. Можно ему доверять измерения с указанными в документациями погрешностями?
3. Есть ли какието особенности, подводные камни при его использовании?
2. Можно ему доверять измерения с указанными в документациями погрешностями?
3. Есть ли какието особенности, подводные камни при его использовании?
0
1) Как написал, сравнивал с китайским девайсом — результаты весьма коррелируют.
Ну и представляю примерно, сколько когда должно быть ppm — с открытым окном, с закрытым, при одном и нескольких людях в помещении. Очень похоже.
2) В документации указана точность до 50ppm. На мой взгляд, для бытового применения вполне хватает пары пороговых значений — в 700 и в 1000ppm. Её он обеспечивает. Если же интересуют точные измерения, то конечно надо сравнить с показаниями крутого промышленного датчика, которого у меня под рукой нет. Если у кого есть — можем попробовать.
3) Про реакцию на перепад напряжения я написал. Так же конечно следует учитывать условия эксплуатации — должна быть не загрязнённая среда (в каком-нибудь цеху датчик может быстро засориться) и температура от 0 до 50. Выше 50 у вас вряд ли будет, а вот на улицу датчик зимой высовывать не стоит. По поводу датчика температуры и влажности — тоже стоит учитывать описанные в спецификации условия эксплуатации.
Ну и представляю примерно, сколько когда должно быть ppm — с открытым окном, с закрытым, при одном и нескольких людях в помещении. Очень похоже.
2) В документации указана точность до 50ppm. На мой взгляд, для бытового применения вполне хватает пары пороговых значений — в 700 и в 1000ppm. Её он обеспечивает. Если же интересуют точные измерения, то конечно надо сравнить с показаниями крутого промышленного датчика, которого у меня под рукой нет. Если у кого есть — можем попробовать.
3) Про реакцию на перепад напряжения я написал. Так же конечно следует учитывать условия эксплуатации — должна быть не загрязнённая среда (в каком-нибудь цеху датчик может быстро засориться) и температура от 0 до 50. Выше 50 у вас вряд ли будет, а вот на улицу датчик зимой высовывать не стоит. По поводу датчика температуры и влажности — тоже стоит учитывать описанные в спецификации условия эксплуатации.
+1
Аналоговый датчик в качестве заголовка страницы — как то не очень. Лучше его вынести на отдельную страницу, если так уж хочется смотреть на него.
0
Прошу прощения за глупый вопрос: в каких единицах измеряется концентрация углекислого газа? Это проценты или другие величины?
0
Евгений — полное вам уважение! Совсем недавно здесь же была рекламная статья о датчике СО за 100 баксов. Как раз тогда меня очень смутила стоимость устройства — цена показалась запредельной для достаточно примитивного устройства. Собственно, обоснованность моих сомнений вы только что подтвердили: у вас, при розничной закупке, себестоимость 44$. У массового продукта с оптовыми закупочными ценами цена реализации — over 100$ (почти в 3 раза выше). При этом у вас добавлены доп.функции — влажность + работа по сети.
Отличная работа и отличная статья!
Отличная работа и отличная статья!
+1
у вас, при розничной закупке, себестоимость 44$. У массового продукта с оптовыми закупочными ценами цена реализации — over 100$
Не спешите делать выводы.
Тот же барометр на arduino мне обошелся в $10. Попробуйте купить за такую стоимость в магазине.
Это не массовый продукт а «на любителя». Термометр — да, нужен всем. Стоит копейки. А вот барометр и тем более измерительно углекислого газа — нужен единицам. И часто такие устройства у любителей выходят дешевле, ведь они не платят налогов, не платят зарплаты бухгалтерам и пр., не делают рекламу…
0
Да, хотел написать комментарий в том же духе. Себестоимость во-первых мало что значит, а во-вторых сильно зависит от массовости производства. Железо — ничто, маркетинг — всё.
Правда, в данном случае непонятно, почему цена довольно высока у китайцев, которые обычно не вкладываются в рекламу и продают всё по цене, близкой как раз к себестоимости. Это вам не какое-нибудь мвидео. Но всё равно, 100$ это вполне нормальная цена.
Ну и надо сказать, что определение влажности обычно есть на любых китайских датчиках, а добавление работы по сети практически ничего не стоит.
Правда, в данном случае непонятно, почему цена довольно высока у китайцев, которые обычно не вкладываются в рекламу и продают всё по цене, близкой как раз к себестоимости. Это вам не какое-нибудь мвидео. Но всё равно, 100$ это вполне нормальная цена.
Ну и надо сказать, что определение влажности обычно есть на любых китайских датчиках, а добавление работы по сети практически ничего не стоит.
+1
Отличная статья, довольно подробная, прямо инструкция пошаговая. А теперь внимание, вопрос! Напишите про размер итогового прибора, и поместится ли он в подрозетник стандартный или углубленный.
0
Размер определяется в общем-то размером борды. Это 68.6*53.4мм. Должен влезть. Плюс наверняка можно взять мини вариант борды, если выходов хватит.
0
Если делать минималистично, то надо собирать на esp8266 (версия распайки 12), качественно питание 220 -> на 5 и 3.3 вольта. В таком случае в подрозетник должно поместиться, но придется немного попаять. Дисплей 1602 в подрозетник не поместится, но если дисплей нужен — можно взять 128x64 олед — может быть даже парочку.
+1
Ээээ, называть ESP-8266 ардуиной — это немного неправильно. Arduino-like шилд на ESP-8266.
0
Тоже купил себе такой датчик, и заметил, что если при включении датчика реальный уровень CO2 больше 1000ppm, то датчик начинает несколько завышать показания.
Не сталкивались с таким?
P.S. Практически сделал автономный индикатор CO2 на этом датчике на STM32 (без нелюбимой многими Arduino). Нужна ли статья?
Не сталкивались с таким?
P.S. Практически сделал автономный индикатор CO2 на этом датчике на STM32 (без нелюбимой многими Arduino). Нужна ли статья?
+2
Не сталкивался, я очень остро реагирую на воздух, и поэтому условий с более 100ppm на старте не было. Попробую.
Статья скорее не про датчик СО2, а про то, как легко и быстро можно собрать полезное работающее устройство, претендующее на IoT. Понятно, что можно использовать STM32, можно Rastberry, наверняка можно вообще обойтись датчиком и индикатором со стрелкой (PWM же есть). Холивар по Arduino меня не очень волнует, что оказалось под рукой, на том и собрал. Но вообще мне нравятся средства лёгкого прототипирования, поскольку по текущей жизни идёт очень большое количество итераций разработки, и зачастую результат всё равно уходит в помойку. Главное в таких условиях — скорость создания. А если продукт востребован, то дальше можно на любой оптимальной платформе собрать.
Кстати, сколько у вас времени ушло с STM32 до почти готового решения?
Статья скорее не про датчик СО2, а про то, как легко и быстро можно собрать полезное работающее устройство, претендующее на IoT. Понятно, что можно использовать STM32, можно Rastberry, наверняка можно вообще обойтись датчиком и индикатором со стрелкой (PWM же есть). Холивар по Arduino меня не очень волнует, что оказалось под рукой, на том и собрал. Но вообще мне нравятся средства лёгкого прототипирования, поскольку по текущей жизни идёт очень большое количество итераций разработки, и зачастую результат всё равно уходит в помойку. Главное в таких условиях — скорость создания. А если продукт востребован, то дальше можно на любой оптимальной платформе собрать.
Кстати, сколько у вас времени ушло с STM32 до почти готового решения?
0
условий с более 100ppm на старте не было
Средний уровень CO2 в воздухе по планете сейчас около 400 ppm.
Кстати, сколько у вас времени ушло с STM32 до почти готового решения?
Прошивка писалась одновременно с некоторыми экспериментами с железом. Упор делался на сокращение потребления устройства, поэтому приходится экспериментировать с режимами пониженного потребления контроллера, индикатора и другого.
Пока около меньше недель потратил, по несколько часов по вечерам.
0
Прошу прощения, подумал, что вопрос звучал, нужна ли эта статья, на него и отвечал. Статья про STM32 конечно нужна — интересно же сравнить. И не ардуиной единой…
Да, я имел в виду что конечно же не было условий с ppm более 1000, описался, вы ведь про 1000 на старте говорили.
Да, я имел в виду что конечно же не было условий с ppm более 1000, описался, вы ведь про 1000 на старте говорили.
+1
конечно нужна!
Особенно. если будет такой же подробной с кодом, ссылками и подводными камнями
Особенно. если будет такой же подробной с кодом, ссылками и подводными камнями
+1
а что с питанием, сколько ест — MH-Z19 не замеряли? По mq-135 какими библиотеками(примерами) пользовались для перевода в ppm?
0
В спецификации MH-Z19 заявлено: Average current < 18 mA @ 3.6 ~ 5.5 V DC, что достигается, вероятно, отсутствием нагревательного элемента.
0
Сколько ест — не замерял, сейчас при себе мультиметра нет.
MQ-135 это только на первый взгляд хорошее решение — он очень сильно зависит от температуры и влажности. Ну и определять сопротивление для каждого датчика после прожига надо. Самое смешное было, окгда у меня датчик сошёл с ума и начал выдавать абсолютно неудобоваримые показания… Оказалось, что на кухне жена пирог с ромом пекла. Датчик честно поймал этанол из другой комнаты и об этом рассказал…
Сделал свой гибрид из нескольких библиотек (вроде бы этой и этой), правда, корреляция по температуре и влажности довольно сомнительна — автор писал, что в даташите вероятна ошибка. В общем, если вам надо примерно знать, когда всё совсем плохо, то mq135 подойдёт с учётом поправок. Но не более.
Мой код для mq-135 тут.
MQ-135 это только на первый взгляд хорошее решение — он очень сильно зависит от температуры и влажности. Ну и определять сопротивление для каждого датчика после прожига надо. Самое смешное было, окгда у меня датчик сошёл с ума и начал выдавать абсолютно неудобоваримые показания… Оказалось, что на кухне жена пирог с ромом пекла. Датчик честно поймал этанол из другой комнаты и об этом рассказал…
Сделал свой гибрид из нескольких библиотек (вроде бы этой и этой), правда, корреляция по температуре и влажности довольно сомнительна — автор писал, что в даташите вероятна ошибка. В общем, если вам надо примерно знать, когда всё совсем плохо, то mq135 подойдёт с учётом поправок. Но не более.
Мой код для mq-135 тут.
+1
Пробовал второй вариант библиотеки, после определенного порога показания уходили в минус. Возможно это проблемы с питанием, у меня 135 ел примерно 100мА и ПроМини начинала сильно греться.
Просто 135-ый в 10 раз дешевле, но уже склоняюсь к тому что зря сэкономил )
Кстати ваш дхтt11 в отличии от дхт22, сильно врет по влажности.
Просто 135-ый в 10 раз дешевле, но уже склоняюсь к тому что зря сэкономил )
Кстати ваш дхтt11 в отличии от дхт22, сильно врет по влажности.
0
Поглядываю в сторону датчика MH-Z14, не изучали его? Возможно есть что сказать, на первый взгляд выглядит «солиднее».
0
Ниже в комментариях уже писал — те же яйца, только сбоку. Различий в даташите не обнаружил, но z14 выглядит как выходец из мира стимпанка.
0
Я измерял у своего датчика, потребление тока там импульсное, при напряжении 5В большую часть времени 4 мА, но каждые 6 сек потребление возрастает до 100 мА, длительность импульса меньше секунды.
Во время импульса через защитный фильтр на торце датчика видно, что там что-то начитает светиться красным — скорее всего, лампа накаливания (она дает излучение в большом диапазоне длин волн).
Во время импульса через защитный фильтр на торце датчика видно, что там что-то начитает светиться красным — скорее всего, лампа накаливания (она дает излучение в большом диапазоне длин волн).
+1
На сколько мне известно, картинки под спойлером браузер загружает, но просто не отображает. По этому «осторожно, трафик» тут не работает %)
+1
А дешевле датчики не рассматривали? Или их нет в продаже?
0
После того, как накололся с MQ-135 (история в комментариях выше), решил взять гарантированное решение с большой точностью и цифровым выводом. Альтернативы есть, но или дороже, или сильно зависимые от внешних факторов. Впрочем, насчёт стоимости я сильно не заморачивался — вполне могут быть и более дешёвые решения.
0
Спасибо за статью. Как раз вовремя. Буквально вчера тоже начал собирать домашнюю метеостанцию.
Arduino mega + ESP-8266 + LCD4884 = Основные мозги. Датчики DHT11 для дома, DHT22 — для улицы. Передавать данные с датчиков температур и влажности хочу по беспроводному модулю NRF24L01. Покопаю Ваш код на выгрузку данный web странице. Может задействую свою Raspberry pi для сбора данных и обработки. Пока он как медиацентр.
В планах собрать из «Ultrasonic Mist Maker Fogger» (пока идет с китая) увлажнитель воздуха. И включать его удаленно по NRF24L01 через реле в зависимости от влажности DHT11.
Arduino mega + ESP-8266 + LCD4884 = Основные мозги. Датчики DHT11 для дома, DHT22 — для улицы. Передавать данные с датчиков температур и влажности хочу по беспроводному модулю NRF24L01. Покопаю Ваш код на выгрузку данный web странице. Может задействую свою Raspberry pi для сбора данных и обработки. Пока он как медиацентр.
В планах собрать из «Ultrasonic Mist Maker Fogger» (пока идет с китая) увлажнитель воздуха. И включать его удаленно по NRF24L01 через реле в зависимости от влажности DHT11.
0
Про увлажнители я готов хоть сейчас ещё один топик написать. Если вкратце — не стоит использовать ультразвуковой — у вас будет милый налёт по всем поверхностям. Ну или заливайте в него дистиллированную воду — вроде помогает. Ну и увлажнитель должен хорошо мыться, иначе в нём заводится жизнь, которую вы потом раскидываете по всему дому.
Мне гораздо больше нравится увлажнитель по типу «ведро с дисками и вентиллятором» — он исправно испаряет литров по 10 в сутки и не оставляет никаких следов. Минус — в том, что всё, что есть на рынке, стоит безумных денег (больше 10.000 за ведро, Карл, ведро с дисками и вентиллятором), и в механизме используются пластиковые шестерёнки, которые через год стираются и умирают — а купить новые негде.
Будет круто, если сделаете свой увлажнитель вёдерного типа — себестоимость никакая, надо только найти, из чего диски сделать. Готов у вас его купить.
Насчёт выгрузки данных — никакой магии — подключаемся по вайфаю и делаем POST запрос на сервер…
Мне гораздо больше нравится увлажнитель по типу «ведро с дисками и вентиллятором» — он исправно испаряет литров по 10 в сутки и не оставляет никаких следов. Минус — в том, что всё, что есть на рынке, стоит безумных денег (больше 10.000 за ведро, Карл, ведро с дисками и вентиллятором), и в механизме используются пластиковые шестерёнки, которые через год стираются и умирают — а купить новые негде.
Будет круто, если сделаете свой увлажнитель вёдерного типа — себестоимость никакая, надо только найти, из чего диски сделать. Готов у вас его купить.
Насчёт выгрузки данных — никакой магии — подключаемся по вайфаю и делаем POST запрос на сервер…
0
Спасибо за «ведро с дисками». Обдумаю. Видел в интернете умельцев на эту тему.
0
SUPRA SAWC-130 — есть вот такое ведро, но качество не очень.
Venta сильно лучше, но стоит в 3 раза дороже
Venta сильно лучше, но стоит в 3 раза дороже
0
Не, спасибо. Не стоит своих денег. Главное сделать самому для меня:). Главный вопрос — из чего сделать барабан с большой поверхностной площадью. Некоторые из CD/DVD дисков делают. Мне кажется результат не очень. Или может их отшлифовать погрубее, что бы влага больше задерживалась на поверхности при медленной скорости прокрутки барабана.
0
Чистая вода из осмоса точно помогает от налёта.
0
Немного возражу про ультразвуковой увлажнитель. Дома стоит две штуки уже 7 лет. Вода холодная из-под крана. Налет появился один раз на старом картридже, как только заменил содержимое — налет перестал появляться. От жизни спасает серебро или уф лампа (один увлажнитель со встроенной). Дисковый конечно лучше, но он дороже.
0
В ведре с дисками заводится не меньше живности.
Использование воды после фильтров с обратным осмосом в ультразвуковом увлажнителе убирает всякие налёты, и живности в этой воде питаться нечем.
Использование воды после фильтров с обратным осмосом в ультразвуковом увлажнителе убирает всякие налёты, и живности в этой воде питаться нечем.
0
лучше взять оба 22, сверьте показания 11 и 22, можете сильно удивиться. А может и пронесет, качество не стабильное у них
0
А можно нубский вопрос? Зачем брать Arduino mega + ESP-8266 + NRF24L01? Вроде всё это можно сделать только одной ESP-8266 (ESP-12E)
0
Можно, но затрахаетесь. Нестабильно ESP-8266, минное поле для новичков.
-1
А я вот начитался, насмотрелся и заказал NodeMCU на ESP-12E парочку и датчиков. Буду экспериментировать. Ещё лежит STM32F4 Discovery, но на ней какой-то высокий порог входа. Пока не разбирался сильно.
0
Говорят, что NodeMCU пока сыровата, кушает много памяти и вылетает. Ну и не вижу никакой сложности в том, чтобы использовать C++, а не Lua. Но опять же — вопрос не стоит выеденного холивара.
0
Как-то я пока из 4 минных полей пока ни одной мины не словил.
0
Мега — Например, если выводов не хватает. Может быть, если автор много всего меряет. Или для стабильности системы — я писал, что с этим пока что у ESP проблемы.
NRF24L01 это не к датчику, это для коммуникации с увлажнителем. Датчик сливает на сервер данные по вайфаю, а с остальными устройствами может общаться по любому другому каналу. Непринципиально, что использовать — радио, блютус, вайфай… Хоть ИК. Почему бы не NRF24L01. А на «одной» ESP не сделаешь — нужно их как минимум две.
NRF24L01 это не к датчику, это для коммуникации с увлажнителем. Датчик сливает на сервер данные по вайфаю, а с остальными устройствами может общаться по любому другому каналу. Непринципиально, что использовать — радио, блютус, вайфай… Хоть ИК. Почему бы не NRF24L01. А на «одной» ESP не сделаешь — нужно их как минимум две.
0
А, теперь понял. NRF24L01 просто для связи с датчиками. А я планировал просто все датчики на ESP цеплять, чтобы они по wi-fi всё на сервер слали, независимо.
0
Верно. Общение с Мега будет по радиоканалу NRF24L01 + Arduino Pro Mini + DHT11(или по плану любой датчик). Во только я 2 штуки Pro Mini похоже спалил из — за бракованного TTL (неправильный вольтаж на выходе). Еще думаю Pro Mini попробовать взять 3.3 вольтовые. Только не знаю потянет ли NRF24L01 + Arduino Pro Mini 3,3 + DHT11 от батареек.
0
Кто нибудь пробовал MH-Z14?
0
Датчик температуры и влажности иногда возвращает левые огромные значения. Их я просто отсекаю, но вообще неприятно. Возможно, сказывается общая запитка или некачественное соединение.
Дело не в этом, дело в самом датчике. Он работает по протоколу single wire (который не имеет ничего общего с 1-wire) и уж не знаю, то ли протокол паршивый, то ли его реализации хромают. Причём как на Arduino, так и на Raspberry Pi. Но в результате, иногда устройству не удаётся поймать начало ответа от датчика и вместо данных получается каша, которую программа честно интерпретирует как «левые огромные значения». Чисто теоретически можно попытаться перевести эту кашу в божеский вид двигая байты, но начальная часть данных всё равно теряется и проще выкинуть эти значения и опросить датчик заново.
Причём особой разницы между DHT11 и DHT22 в этом плане нету — и тот и другой временами присылают кривые ответы. DHT22 чуть реже, как мне показалось.
+1
Сюда бы еще детектор ЛОС прикрутить и будет монитор мечты.
0
MQ-135 это датчик «всего», для определения конкретно СО2 не годится, а вот для «пора открыть форточку» — самое оно.
0
Насколько я помню, «всё» — это спирт, дым, этанол и со2. Если у вас в комнате регулярный пьяный угар в дыму, то mq135 возможно поможет. В противном случае остаётся только СО2. А он определяется, как я писал выше, с огромной погрешностью. Если вас не волнует погрешность в 300-400 ppm, то конечно можно использовать.
0
Всё это — дым, спирты, со2, со, бензол, фенол, толуол (и похоже вообще всё что имеет бензольное кольцо) альдегиды, окислы азота, аммиак, метан, водород.
И не надо переходить на личности это как минимум не красиво, как максимум в рамках данного ресурса вредно для саморазвития.
И мне вот интересно, как вы определили погрешность? а то я всё ломаю голову над созданием контрольной смеси газов в домашних условиях, не создав в ней 100% влажность, и не лишившись тестовых газов в процессе обезвоживания.
И не надо переходить на личности это как минимум не красиво, как максимум в рамках данного ресурса вредно для саморазвития.
И мне вот интересно, как вы определили погрешность? а то я всё ломаю голову над созданием контрольной смеси газов в домашних условиях, не создав в ней 100% влажность, и не лишившись тестовых газов в процессе обезвоживания.
0
Где вы увидели переход на личности? Про вас я ничего не говорил, и местоимение можно вычеркнуть из комментария без потери смысла.
Погрешность я определял только для СО2 — больше ничего меня не интересовало. К сожалению, у меня не было возможности создать идеальные условия — в даташите указано, что стандартными условиями является температура 20+-2 и влажность 65+-5. Если температура была примерно такая, то догнать влажность до стабильных 65 было сложнее. Впрочем, в доступных библиотеках формула расчёта такая:
Так что по идее поправка на влажность довольно небольшая (cord довольно маленький). Кстати, значения с поправкой в моих условия незначительно отличались от значений без поправки — не более, чем на 50 ppm.
Далее я сравнивал полученные значения с китайским датчиком. Сам китайский датчик я сравнивал с собранным мной, так что на основании этого делаю выводы.
Безусловно, есть вероятность того, что и мой и китайский датчик врут. Так же у меня мог быть неисправный датчик mq-135 (я его и прожигал и прогревал, но у китайцев просто есть некий процент брака). Так же я уже писал о том, что автор библиотеки с корреляцией сам писал, что она может обманывать (по его ощущениям).
В общем, никоим образом не исключаю вероятность того, что можно точно определять содержание со2 при помощи mq-135, но по-моему она довольно мала.
Если у вас получится посчитать точные параметры, то буду только рад — это вдвое снизит общую стоимость детектора. А совсем круто, если получится ещё определять, норма какого именно газа превышена — вроде как можно, основываясь на допустимых значениях. Если уже получалось — публикуйте, интересно!
Погрешность я определял только для СО2 — больше ничего меня не интересовало. К сожалению, у меня не было возможности создать идеальные условия — в даташите указано, что стандартными условиями является температура 20+-2 и влажность 65+-5. Если температура была примерно такая, то догнать влажность до стабильных 65 было сложнее. Впрочем, в доступных библиотеках формула расчёта такая:
float getCorrectionFactor(float t, float h) {
return CORA * t * t - CORB * t + CORC - (h-33.)*CORD;
}
Так что по идее поправка на влажность довольно небольшая (cord довольно маленький). Кстати, значения с поправкой в моих условия незначительно отличались от значений без поправки — не более, чем на 50 ppm.
Далее я сравнивал полученные значения с китайским датчиком. Сам китайский датчик я сравнивал с собранным мной, так что на основании этого делаю выводы.
Безусловно, есть вероятность того, что и мой и китайский датчик врут. Так же у меня мог быть неисправный датчик mq-135 (я его и прожигал и прогревал, но у китайцев просто есть некий процент брака). Так же я уже писал о том, что автор библиотеки с корреляцией сам писал, что она может обманывать (по его ощущениям).
В общем, никоим образом не исключаю вероятность того, что можно точно определять содержание со2 при помощи mq-135, но по-моему она довольно мала.
Если у вас получится посчитать точные параметры, то буду только рад — это вдвое снизит общую стоимость детектора. А совсем круто, если получится ещё определять, норма какого именно газа превышена — вроде как можно, основываясь на допустимых значениях. Если уже получалось — публикуйте, интересно!
0
Просто потыкал тему палочкой заранее, сейчас жду когда датчики приедут, по идее всё сводится к матрице и её решениею, но тут вылазит такая неприятность, что МQ135 ловит чертовски много газов да ещё и с примерно одинаковой чувствительностью(а пдк, то для разных газов разная).
А вообще имея в доме газовую плиту можно запросто столкнуться с превышением по метану, (пропану/бутану) СО, СО2, водороду (поставили аккумулятор на зарядку и забыли), задымлением (истории про жареную картошку вместо варёной наверное каждый слышал), остальные варианты это уже к отчаянным химикам.
Пришёл к выводу что необходимый минимум это использовать пару MQ-9 и MQ-135 + датчик влажность/температура( если надо точность приподнять) первый чувствителен к CO и метану второй ещё к куче всего, первый настраиваем на максимальную чувствительность (ни метана ни угарного газа в квартире быть не должно), второй калибруем на СО2, для которого шибкая точность не нужна.
И судя по тому что в разных датащитах указывается разная кривая для влажности и температуры каждый датчик надо калибровать персонально, вот я и ломаю голову над тем как создать контрольную смесь.
А вообще имея в доме газовую плиту можно запросто столкнуться с превышением по метану, (пропану/бутану) СО, СО2, водороду (поставили аккумулятор на зарядку и забыли), задымлением (истории про жареную картошку вместо варёной наверное каждый слышал), остальные варианты это уже к отчаянным химикам.
Пришёл к выводу что необходимый минимум это использовать пару MQ-9 и MQ-135 + датчик влажность/температура( если надо точность приподнять) первый чувствителен к CO и метану второй ещё к куче всего, первый настраиваем на максимальную чувствительность (ни метана ни угарного газа в квартире быть не должно), второй калибруем на СО2, для которого шибкая точность не нужна.
И судя по тому что в разных датащитах указывается разная кривая для влажности и температуры каждый датчик надо калибровать персонально, вот я и ломаю голову над тем как создать контрольную смесь.
0
Ещё интересно, если опишете, какие ещё неприятные газы можно найти в квартире. Мне навскидку пришёл в голову только метан. Про дым и этанол я писал только к тому, что не вижу пользы в его измерении в домашних условиях. Конечно, другое дело, если говорить о индустриальном применении — но там уже нужно знать, что именно превышено.
0
А где выгодно купить MH-Z19? Что-то на али всего в одном месте есть.
0
Часто слышу что датчик CO2 надо калибровать, что это значит и как это сделать?
0
В идеале надо составить контрольную смесь газов- воздух+ СО2 и протестировать ей датчики, в домашних условиях с этим проблемы (хотя если есть баллон со2, компрессор для воздуха и два расходомера это уже не проблема).
Если совсем туго можно с помощью лимонной кислоты и соды получить углекислый газ набрать в шприц потом добрать воздуха, подождать пока оно там всё в шприце перемешается, выпустить и ещё добрать воздуха(воздух при этом надо предварительно лишить углекислого газа с помощью раствора щёлочи), потом с шприца дуть в датчик, но при чувствительности датчика к влажности можно дико проколоться.
У нас на работе есть газоанализаторы, их калибруют по чистому воздуху и специальной уже готовой смесью газов из баллона, — по двум точкам, но там от газоанализатора требуется показывать ноль в чистом воздухе и пищать при превышении пдк.
Второй вариант иметь уже откалиброванный датчик и по нему калибровать второй.
Если совсем туго можно с помощью лимонной кислоты и соды получить углекислый газ набрать в шприц потом добрать воздуха, подождать пока оно там всё в шприце перемешается, выпустить и ещё добрать воздуха(воздух при этом надо предварительно лишить углекислого газа с помощью раствора щёлочи), потом с шприца дуть в датчик, но при чувствительности датчика к влажности можно дико проколоться.
У нас на работе есть газоанализаторы, их калибруют по чистому воздуху и специальной уже готовой смесью газов из баллона, — по двум точкам, но там от газоанализатора требуется показывать ноль в чистом воздухе и пищать при превышении пдк.
Второй вариант иметь уже откалиброванный датчик и по нему калибровать второй.
0
У Wemos D1 есть новая ревизия R2, может она не зависает, закажу себе такую.
0
Недавно получил посылку с MH-Z19. Пытаюсь считывать данные через UART, первые пакеты выдает правильно, даже контрольная сумма в порядке. А через некоторое время начинает выдавать полный бред после заголовка и кода команды, даже "разогреться" не успевает. При это PPM без проблем. Кто-нибудь с таким сталкивался?
0
Вероятно, вы имели в виду — "pwm без проблем"?
Не, у меня всё в порядке, проверяю каждый раз нулевой байт и команду (с контрольной суммой как-то не сложилось), ну и собственно данные хорошие.
Нулевой байт и код команды у вас правильные, да? Проблема только с данными?
С напряжением всё в порядке? Стабильное 5v без конкурентов? Может быть, неправильный тип переменной / переполнение стека в какой-то момент?
Не, у меня всё в порядке, проверяю каждый раз нулевой байт и команду (с контрольной суммой как-то не сложилось), ну и собственно данные хорошие.
Нулевой байт и код команды у вас правильные, да? Проблема только с данными?
С напряжением всё в порядке? Стабильное 5v без конкурентов? Может быть, неправильный тип переменной / переполнение стека в какой-то момент?
0
Да, PWM. Вечером ещё раз всё перепроверю, в т.ч. с вольтметром и отпишусь.
0
Проверил.
Питание — 4.8v на MH-Z19, плата Particle Photon.
Контрольная сумма перестает совпадать почти сразу, но сами значения в порядке. Возможно резкие скачки до 65 тысяч были из-за резкого перепада температуры, когда я тестировал в первый раз.
Питание — 4.8v на MH-Z19, плата Particle Photon.
Контрольная сумма перестает совпадать почти сразу, но сами значения в порядке. Возможно резкие скачки до 65 тысяч были из-за резкого перепада температуры, когда я тестировал в первый раз.
код
`
byte readCommand[]={0XFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79};
`
byte readCommand[]={0XFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79};
char packet[9];
char j;
char checksum;
void setup() {
Serial.begin(9600);
Serial1.begin(9600);
}
void loop() {
Serial1.write(readCommand, 9);
Serial1.readBytes(packet, 9);
int high = (int) packet[2];
int low = (int) packet[3];
int ppm = 256 * high + low;
for( j = 1; j < 8; j++)
{
checksum += packet[j];
}
checksum = 0xff - checksum;
checksum += 1;
if(checksum == packet[8]){
Serial.println("OK");
}
Serial.println(ppm);
delay(5000);
}
`
0
Да, у меня код проверки контрольной суммы был идентичный, что логично так как писали по одному даташиту.
Только объявите лучше переменную j числовым типом, а то странно цикл с прибавлением char выглядит. И у меня тоже не сошлось с контрольной суммой, так что проверка выглядит так:
При первом опросе датчика у меня вываливалось какое-странное число в районе 65000, но все последующие выдавали корректные значения. Так что думаю, что вы тоже можете обойтись без проверки контрольной суммы. И лучше давайте датчику сначала прогреться секунд 10 (в даташите написано про 3 минуты, но везде используют 10 секунд, и мне тоже хватало).
Только объявите лучше переменную j числовым типом, а то странно цикл с прибавлением char выглядит. И у меня тоже не сошлось с контрольной суммой, так что проверка выглядит так:
if (response[0] != 0xFF)
{
Serial.println("Wrong starting byte from co2 sensor!");
return -1;
}
if (response[1] != 0x86)
{
Serial.println("Wrong command from co2 sensor!");
return -1;
}
При первом опросе датчика у меня вываливалось какое-странное число в районе 65000, но все последующие выдавали корректные значения. Так что думаю, что вы тоже можете обойтись без проверки контрольной суммы. И лучше давайте датчику сначала прогреться секунд 10 (в даташите написано про 3 минуты, но везде используют 10 секунд, и мне тоже хватало).
+1
Похоже только так и получится. Ну и думаю, буду отсекать всё, что выше 5000 и ниже 370.
0
Спасибо за статью! Можно ссылку на библиотеку для работы Arduino с Telegram?
0
> Осторожно, трафик
Я не знаю, для кого вы это написали. Нынче 100-мегабайтные гифы выкладывают без предупреждения. А те, у кого трафик на вес золота, и так без всяких подсказок сидят с отключёнными картинками и жабаскриптом. Так что не вижу препятствий для того, чтобы прямо в тексте картинки приводить.
Пользуясь случаем, замечу, что упомянутый MH-Z19 может ещё и температуру говорить, хотя в даташите это не указано. Однако указано, что градусник там есть, что и побудило меня порыться в интернете на эту тему.
https://revspace.nl/MHZ19#Command_0x86_.28read_concentration.29
Байт сразу после СО2 — температура плюс некоторая константа (по-хорошему надо её калибровать). Хотя здесь ложка дёгтя — для генерации дальнего ИК используется лампочка Ильича, каковая дополнительно нагревает датчик. Но это опять же мерять надо, насколько она его греет.
Следующий байт — судя по всему, символизирует точность, достигаемую прибором на настоящий момент. А оная точность время от времени ухудшается — когда датчик тревожат, открывают дверь, либо вовсе без видимых причин (быть может, калибруется?), и тогда на графике мы видим пляски святого Витта. Коли всё хорошо — то байт равен 64, а когда плохо — то падает до 4. Например, это может пригодиться, ежели мы чем-то управляем на основании измерения СО2 — коли мы видим, что байт упал ниже 64, мы не рвёмся сразу переключать реле, а ждём, пока снова не станет 64, и показаниям снова можно будет доверять (ну или просто усредняем усерднее).
Далее там ещё два байта — а вот что они значат, одному аллаху ведомо. Но, видимо, ничего, что бы относилось к параметрам окружающей среды. Автор упомянутой статьи высказывает предположение, что это давление, но вряд ли давление будет час стоять на одном месте с абсолютной точностью, затем несколько минут падать, а затем столь же незыблемо сохранять своё значение.
Я не знаю, для кого вы это написали. Нынче 100-мегабайтные гифы выкладывают без предупреждения. А те, у кого трафик на вес золота, и так без всяких подсказок сидят с отключёнными картинками и жабаскриптом. Так что не вижу препятствий для того, чтобы прямо в тексте картинки приводить.
Пользуясь случаем, замечу, что упомянутый MH-Z19 может ещё и температуру говорить, хотя в даташите это не указано. Однако указано, что градусник там есть, что и побудило меня порыться в интернете на эту тему.
https://revspace.nl/MHZ19#Command_0x86_.28read_concentration.29
Байт сразу после СО2 — температура плюс некоторая константа (по-хорошему надо её калибровать). Хотя здесь ложка дёгтя — для генерации дальнего ИК используется лампочка Ильича, каковая дополнительно нагревает датчик. Но это опять же мерять надо, насколько она его греет.
Следующий байт — судя по всему, символизирует точность, достигаемую прибором на настоящий момент. А оная точность время от времени ухудшается — когда датчик тревожат, открывают дверь, либо вовсе без видимых причин (быть может, калибруется?), и тогда на графике мы видим пляски святого Витта. Коли всё хорошо — то байт равен 64, а когда плохо — то падает до 4. Например, это может пригодиться, ежели мы чем-то управляем на основании измерения СО2 — коли мы видим, что байт упал ниже 64, мы не рвёмся сразу переключать реле, а ждём, пока снова не станет 64, и показаниям снова можно будет доверять (ну или просто усредняем усерднее).
Далее там ещё два байта — а вот что они значат, одному аллаху ведомо. Но, видимо, ничего, что бы относилось к параметрам окружающей среды. Автор упомянутой статьи высказывает предположение, что это давление, но вряд ли давление будет час стоять на одном месте с абсолютной точностью, затем несколько минут падать, а затем столь же незыблемо сохранять своё значение.
+1
Sign up to leave a comment.
Ещё один способ определения качества воздуха на Arduino — с передачей данных в сеть