Сравнение датчиков MH-Z19B и CCS811
Имея два разных датчика уровня углекислого газа было бы глупо не положить их рядом и не сравнить показания. Что я и сделал.
Подробнее об этих датчиках можно почитать здесь:
А вот они на картинке:
Основные параметры обоих датчиков, согласно даташитам производителей:
MH-Z19B | CCS811 | |
---|---|---|
Тип датчика | инфракрасный | оксид металла |
Напряжение питания | 4.5V — 5.5V | 1.8V — 3.6V |
Потребление тока | 60mA | 30mA |
Диапазон измерения | 0 — 5000ppm | 400-29206ppm |
Интерфейс | UART, PWM | I2C |
Цена | ~15 EUR | ~8 EUR |
Оба предназначены для измерения уровня углекислого газа в помещениях.
Из неоспоримых плюсов CCS811 — существенно меньший размер, меньшее напряжение питания и потребление тока, меньшая цена.
Для сравнения показаний оба датчика были подключены к модулям на базе микроконтроллера ESP8266 с практически идентичной прошивкой. Показания снимались раз в 10 секунд и отправлялись по протоколу MQTT на Raspberry PI с установленным стеком mosquitto -> telegraf + influxdb -> grafana. Эксперимент занял в районе недели, всё это время оба датчика лежали у меня на рабочем столе в паре сантиметров друг от друга.
За неделю получился вот такой график:
В целом, оба датчика показывают что-то похожее — подъёмы и спады у них располагаются примерно одинаково. Однако, CSS811 реагирует более бурно. Вообще, я ожидал что графики будут гораздо ближе друг к другу.
В самом начале эксперимента CSS811 выдал странный пик высотой в 8000ppm, который продержался несколько минут и потом медленно опустился до более-менее нормальных значений, и это несмотря на рекомендуемый burn-in в течении 48 часов.
В остальном показания выглядят довольно похоже. Вот, например картинка за понедельник:
Видны плоские участки ночью, когда в комнате никого нет. С вечера было прохладно и окно всю ночь было закрыто, поэтому концентрация держалась более-менее на одном уровне. С утра, когда я начал работать, очень быстро стало душно, что видно на графике, но открытое окно быстро исправило ситуацию. Вечером опять стало прохладно.
Заключение
Результат меня огорчил. Я ожидал более согласованных значений. Согласитесь, это странно, когда один из лежащих всего в нескольких сантиметрах друг от друга модулей показывает меньше 1000ppm, что в целом норм, а второй больше 2000ppm, что требует немедленного проветривания. Какому из модулей верить? Или оба врут?
Возможно сами модули не очень качественные. Возможно, добавление поправок на температуру и влажность поможет увеличить точность показаний CCS811. Датчик у MH-Z19B находится внутри корпуса с закрытыми фильром окошками, может быть, такой же фильтр нужен и для CSS811. Сложно сказать.
Из общих наблюдений — CSS811 реагирует на изменения гораздо быстрее, чем MH-Z19B. Если подышать прямо на датчики, то на первом показания взлетают практически мгновенно и очень быстро возвращаются обратно.
Да, очевидно, что оба датчика реагируют на уровень CO2 в воздухе, об этом говорят изменения показаний в разных условиях. Но какой из них точнее? Для ответа на этот вопрос нужно повторить эксперимент, но уже с точным калиброванным датчиком, данные которого можно взять за основу.