Андрей Овчаров

маленькое невинное хобби

Андрей Овчаров

Сравнение датчиков MH-Z19B и CCS811

Имея два разных датчика уровня углекислого газа было бы глупо не положить их рядом и не сравнить показания. Что я и сделал.

Подробнее об этих датчиках можно почитать здесь:

А вот они на картинке:

Датчики уровня CO2 - MH-Z19B и CCS811

Основные параметры обоих датчиков, согласно даташитам производителей:

  MH-Z19B CCS811
Тип датчика инфракрасный оксид металла
Напряжение питания 4.5V - 5.5V 1.8V - 3.6V
Потребление тока 60mA 30mA
Диапазон измерения 0 - 5000ppm 400-29206ppm
Интерфейс UART, PWM I2C
Цена ~15 евро ~8 евро

Оба предназначены для измерения уровня углекислого газа в помещениях.

Из неоспоримых плюсов CCS811 - существенно меньший размер, меньшее напряжение питания и потребление тока, меньшая цена.

Для сравнения показаний оба датчика были подключены к модулям на базе микроконтроллера ESP8266 с практически идентичной прошивкой. Показания снимались раз в 10 секунд и отправлялись по протоколу MQTT на Raspberry PI с установленным стеком mosquitto -> telegraf + influxdb -> grafana. Эксперимент занял в районе недели, всё это время оба датчика лежали у меня на рабочем столе в паре сантиметров друг от друга.

За неделю получился вот такой график:

График за 7 дней

В целом, оба датчика показывают что-то похожее - подъёмы и спады у них располагаются примерно одинаково. Однако, CSS811 реагирует более бурно. Вообще, я ожидал что графики будут гораздо ближе друг к другу.

В самом начале эксперимента CSS811 выдал странный пик высотой в 8000ppm, который продержался несколько минут и потом медленно опустился до более-менее нормальных значений, и это несмотря на рекомендуемый burn-in в течении 48 часов.

Пиковое значение в начале эксперимента

В остальном показания выглядят довольно похоже. Вот, например картинка за понедельник:

График за один день

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

Заключение

Результат меня огорчил. Я ожидал более согласованных значений. Согласитесь, это странно, когда один из лежащих всего в нескольких сантиметрах друг от друга модулей показывает меньше 1000ppm, что в целом норм, а второй больше 2000ppm, что требует немедленного проветривания. Какому из модулей верить? Или оба врут?

Возможно сами модули не очень качественные. Возможно, добавление поправок на температуру и влажность поможет увеличить точность показаний CCS811. Датчик у MH-Z19B находится внутри корпуса с закрытыми фильром окошками, может быть, такой же фильтр нужен и для CSS811. Сложно сказать.

Из общих наблюдений - CSS811 реагирует на изменения гораздо быстрее, чем MH-Z19B. Если подышать прямо на датчики, то на первом показания взлетают практически мгновенно и очень быстро возвращаются обратно.

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