Найти тему
etrivia

Датчик концентрации углекислого газа SCD41 и все все все.

Оглавление

Счастье было так близко.

Прогуливаясь по просторам "алиэкспресса", обнаружил появление новых датчиков концентрации CO2 SCD41.

Картинка с сайта продавца.
Картинка с сайта продавца.
Картинка с сайта продавца.
Картинка с сайта продавца.

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

Ай какая замечательная штука подумал я и решил в комплект к домашней метеостанции по быстрому изготовить универсальный (температура + влажность + CO2) датчик. Поскольку метеостанция на крыше имеет интерфейс rs485 и работает с протоколом MODBUS, решено было прикрутить RS485 и к этому датчику. К тому же и корпус красивый для этой конструкции уже был на примете. А может и что-то коммерчески успешное из этого выгорит :)

Суровая реальность.

Как обычно, гладко было на бумаге, но забыли про овраги. Уже на этапе более вдумчивого чтения документации оказалось, что SCD4X при работе нагреваются, причём производитель даже предусмотрел возможность прописать в датчик корректировочный коэффициент по температуре. И по умолчанию в регистре "temperature offset" c завода записано смещение аж в 4 градуса. Стало понятно, что измерять температуру в комнате посредством этой штуки такое себе занятие. К каналу измерения влажности тоже появились вопросы, заявленная точность при комнатных условиях ± 6%. Видимо для корректировки измерений по влажности хватает и такой точности. Грустно. Недорогой датчик влажности SHT41 этого же производителя имеет при тех же условиях точность ± 1.8%. Ну и вишенка на торте… Из за использованного в SCD4X прогрессивного фотоакустического метода измерений, для окончательного расчёта результата необходимо знать не только температуру и влажность, но и текущее значение атмосферного давления. Для этого в датчике есть два регистра.

Первый "sensor altitude" в него можно записать высоту над уровнем моря местности в которой производятся измерения. Заводская установка - ноль. Мне кажется, что заставлять конечного пользователя выяснять и указывать высоту над уровнем моря не очень хорошее решение.

И второй регистр "ambient pressure" в который можно записать реальное значение текущего давления в гектопаскалях. При этом если используется второй регистр, то значение записанное в первом отбрасывается.

Эксперименты.

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

Вот что получилось:

Нижнее значение давления из документации 700hPa 2363ppm.
Реальное давление
1001hPa 950ppm.
Верхнее значение давления из документации
1200hPa 610ppm.

Жуть. Учитывая что меняем только корректировочный коэффициент, а реальное значение концентрации CO2 остаётся постоянным. Ну это ладно, экстрим, использованы предельные значения из документации на датчик. Взял реальные архивные значения, минимального и максимального атмосферного давления зафиксированного в Москве.

Вот результат:

Архивная нижняя граница давления в Москве 945hPa 1305ppm.
Реальное давление
1001hPa 950ppm. Архивная верхняя граница давления в Москве 1042hPa 802ppm.
1305 - 802 = 503ppm Всё равно сильный разброс.

Итоги.

По моему скромному мнению, эксплуатация SCD41 без стоящего рядом барометра, особого смысла не имеет.

В итоге стала вырисовываться конструкция с тремя датчиками, собственно SCD41 с которого всё и началось, гигрометра-термометра SHT41 и куда уже теперь без него барометра BMP280. Благо датчики совсем маленькие и все три без проблем уместятся в маленький элегантный корпус. И вот тут я задумался, а стоит ли овчинка выделки? Датчик SCD41 сам по себе не дешёвый. А для нормальной эксплуатации к нему надо добавить ещё два. В общем надо думать...

Статью можно обсудить в комментариях и телеграм канале etrivia.