Статья

Carbon Dioxide Sensor + Raspberry Pi + HomeAssistant

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

Проще и дешевле всего заполучить такой датчик - это купить на Алиэкспрессе популярный датчик MH-Z19B. В свое время, я брал его тут.

Есть два способа подключить датчик в ваш Умный Дом. Первый, который я использовал сначала - это подключение его к NodeMCU ESP8266, которая требует прошивки, а затем через WiFi и MQTT, либо в HomeBridge c плагином homebridge-mqtt-co2, либо в HomeAssistant. Я пробовал и тот, и другой вариант, и все работало замечательно.

Удобство этого способа в том, что вы можете разместить этот датчик в любом нужном вам месте, где сможете его запитать. Недостаток же заключается в том, что нагружается ваша 2.4ГГц WiFi сеть еще одним устройством.

После того, как я в качестве платформы для моего Умного Дома решил попробовать HomeAssistant и установил на свою Raspberry Pi 4образ от уважаемого OXOTH1K, я решил использовать второй способ подключения датчика - непосредственно к GPIO Raspberry Pi.

Преимущества этого способа очевидны - не нужна покупка NodeMCU ESP8266 и ее прошивка, убирается лишнее подключение к WiFi. Недостаток в том, что уровень CO2 у вас будет измеряться там, где у вас находится ваш сервер Умного Дома на Raspberry Pi. Мне это было не критично, поэтому я расскажу, как это сделать.

Для начала, нужно подключить датчик MH-Z19B к GPIO вашей малинке.

Схема подключения выглядит так: 

Нужно заметить, что в случае использования версии датчика MH-Z19, его 6pin нужно будет подключить к питанию 3.3 вольта, то есть к 1pin или 17pin GPIO Raspberry Pi:

После подключения датчика, нам осталось настроить систему. Для начала, соединяемся с малинкой по ssh и в файле /boot/config.txt прописываем строку:

enable_uart=1

После этого запускаем конфигуратор Raspberry Pi командой:

$ sudo raspi-config

В открывшемся меню идем в пункт 5 Interfacing Options Configure connections to peripherals, далее выбираем пункт Serial  Enable/Disable shell and kernel messages on the serial connection и отвечаем No для Would you like a login shell to be accessible over serial? и Yes для Would you like the serial port hardware to be enabled?

После этого смело перегружаем малинку. Пока грузится ваш HomeAssistant, можно снова подключиться по ssh и командой:

$ ls /dev/tty*

Убедиться, что появился девайс /dev/ttyS0. Именно к нему и подключен ваш датчик, с которым будет работать HomeAssistant. Осталось только прописать в /config/sensors.yaml строки:

- platform: mhz19 serial_device: /dev/ttyS0 name: My MHZ19

Перезагружаем HomeAssistant. У вас появится сенсор с именем sensor.my_mhz19_co2, который вы можете в дальнейшем использовать по вашему усмотрению:

Таким образом, я сохранил NodeMCU ESP8266 для дальнейших поделок и освободил мою домашнюю WiFi сеть от лишнего устройства.По-моему, это самый дешевый способ получить в ваш Умный Дом датчик концентрации углекислого газа без паяльников, прошивок и всего прочего.Для этих датчиков известна проблема правильной калибровки. Точнее отключения автокалибровки. Думаю, ее можно как-то решить при таком подключении, но я пока не знаю как. Может быть кто-то в комментариях подскажет правильное направление :)

Отключить калибровку можно скриптом от сюда https://pypi.org/project/mh-z19/">https://pypi.org/project/mh-z1... с соответствующими опциями запуска.

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

Спасибо, что процитировали https://www.home-assistant.io/integrations/mhz19/">документацию, почти дословно.

Очевидный минус - автокалибловка сенсора остаётся включенной и уже через пару дней он начнет врать. При подключении к ESP этого можно избежать.

Не все уверенно читают по английски, адаптированный перевод лишним не будет. Тем более я добавил кое-какие детали, без которых описанный в документации способ у меня не работал.

Вы тогда всю документацию ХА переводите. Статей хватит на несколько лет.

Документация не всегда истина в последней инстанции. Корректировки часто нужны бывают для конкретных случаев.

Что ж всех так тянет к этому MH-Z19, как будто нормальных сенсоров мало, совсем немного дороже. 
MH-Z19 - это худший из распространённых вариантов NDIR CO2 сенсоров. 

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

Так предложите нормальный, тем более, если он буде совсем немного дороже

T6703 или Senseair S8. Даже MH-Z14 лучше. 

Напишите статью про выбор CO2 датчика.


Вернуться назад

Устройства


Raspberry Pi

Raspberry Pi 4

(16 отзывов)

Espressif Systems

ESP8266 NodeMcu v3

(16 отзывов)

noname

Датчик co2 MH-Z19

(1 отзыв)

Вернуться назад