test adv
,

Собрал детектор CO2 для умного дома. Он дешевле готовых, рассказываю поэтапно

Подробная инструкция со всеми особенностями готового решения. Нацелена на пользователей системы HomeAssistant

Понемногу собирая систему умного дома, я осознал, что одних только показателей температуры и влажности недостаточно, и нужно следить ещё и за качеством воздуха. Появилась потребность в как минимум датчике для отслеживания уровня СО2. Это довольно важный показатель, который влияет на состояние человека в течение всего дня и прямо отражается на продуктивности — чем больше углекислого газа в воздухе, тем сильнее усталость и сонливость.

Вся моя существующая экосистема завязана на HomeAssistant (или HAss для краткости), благодаря которому я смог прокинуть все умные девайсы в HomeKit и управлять через стандартное приложение Home от Apple. Поэтому и хотелось получить не просто автономную станцию с экраном, а именно датчик, который мог работать в связке с остальным оборудованием.

Отсутствие поддержки HomeKit у недорогих датчиков и высокие цены на такие же девайсы с нужной технологией натолкнули на мысль собрать устройство для измерения уровня CO2 самостоятельно. Это и правда обошлось в разы дешевле (и интереснее), чем покупка готового решения. Например, популярные станции Netatmo Urban Weather Station и Kaiterra Laser Egg+ CO2 стоят от 10 до 20 тысяч рублей, в то время как датчик с платой обошлись мне в сумме в 1800 рублей. Однако, как и всегда, есть некоторые недостатки.

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

Что нужно

Для сборки устройства и его нормальной работы понадобится следующий список предметов:

  • Raspberry Pi или ПК с HomeAssistant — к нему подключится девайс и там будут отображаться все показания. Одноплатник подходит для этого лучше всего, ибо потребляет меньше электричества и не шумит;
  • датчик MH-Z19B — нужен для получения показателей воздуха. Его, как и всё остальное, можно найти на AliExpress, но надо быть аккуратным и не попасть на подделку. «Правильный» MH-Z19B отличается зелёной печатной платой и круглым выступом сверху;
  • микроконтроллер NodeMCU32-s — к нему подключается датчик CO2, а он, в свою очередь, к HAss;
  • провода для подключения — помогут в соединении пинов датчика и платы;
  • макетная плата (опционально) — иногда упрощает соединение датчика и платы;
  • microUSB-кабель для питания платы — NodeMCU32-s с датчиком питаются от сети или ПК.

Подключение компонентов

Для начала надо подключить датчик к плате. Сразу предупрежу, что иногда плата не прошивается с подключенным сенсором MH-Z19B, поэтому советую сразу перейти к следующему разделу и вернуться сюда после прошивки NodeMCU32-s.

Собрал детектор CO2 для умного дома. Он дешевле готовых, рассказываю поэтапно

Если плата успешно прошита, её можно отключить от сети и соединить пины датчика с ней, как показано на картинке выше. Можно воспользоваться макетной платой как прослойкой — я так и сделал, ибо у меня были в наличии только провода с одним входным и одним выходным контактами. «Прослойку» можно убрать, если есть провода с двумя входными контактами.

Собрал детектор CO2 для умного дома. Он дешевле готовых, рассказываю поэтапно

Вот и один из нюансов, о которых я говорил в самом начале — вид у собранного устройства неаккуратный, поэтому придётся создавать корпус с нуля, распечатав на 3D-принтере или сделав из подручных материалов.

Собрал детектор CO2 для умного дома. Он дешевле готовых, рассказываю поэтапно

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

Едва датчик окажется подключен к плате, можно снова подсоединить microUSB-кабель для питания и продолжать конфигурацию софта.

Настройка программной части

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

Установка ESPHome в HAss

Дополнение ESPHome сильно облегчает жизнь, поэтому в веб-панели HAss открываем раздел Supervisor, кликаем на «Магазин» внизу и ищем нужное название. После установки в том же разделе Supervisor нажимаем на появившийся аддон и открываем веб-интерфейс. Там я создавал конфигурационный YAML-файл для последующей компиляции прошивки.

Создание YAML-файла

Нажав кнопку "+", введите любое имя устройства, имя и пароль сети, к которой подключено устройство с HAss. Желательно, чтобы в SSID не было пробелов, а сеть работала в режиме 2,4 ГГц. На следующем этапе выбираем пункт Pick specific board и в выпадающем списке ищем NodeMCU-32S. После создания карточки нажимаем Edit и в конец добавляем текст, который можно скопировать по ссылке.

Количество секунд в строке update_interval можно выбрать по своему усмотрению, это частота обновления данных CO2. Для меня 5-10 минут оказались наиболее оптимальными, так как график оказывается точным, но не перегруженным лишними данными — отклонения CO2 не настолько резкие.

Компиляция прошивки

Сохранив файл, можно скомпилировать прошивку на основе только что созданной конфигурации. Откройте меню, нажав на три точки в карточке девайса, выберите Install и затем Manual Download. Откроется консоль, в которой отобразится весь процесс компиляции прошивки — если он прошёл успешно, на компьютер автоматически скачается bin-файл. У меня на компиляцию с помощью Raspberry Pi 4 ушло чуть больше двух минут.

Прошивка через ESPHome-Flasher

На этот же компьютер загрузите программу ESPHome-Flasher и запустите её, подключив плату NodeMCU32-s по USB. Выберите загруженный ранее bin-файл в строке Firmware, а в разделе Serial Port — порт с подключенной платой. Зажмите на микрокомпьютере кнопку справа от порта USB, и, не отпуская её, нажмите Flash ESP в программе. Держите, пока не получите сообщение об успешной прошивке.

Прокидывание датчика в HomeKit

Чтобы данные с датчика поступали не только в HomeAssistant, но и были доступны из приложения Home на девайсе от Apple, нужно настроить мост, если вы настраиваете систему умного дома впервые. Если это не первое стороннее умное устройство в доме, то он, вероятно, уже существует, и надо лишь добавить новый сенсор.

В первом случае зайдите в «Настройки» HAss, затем откройте раздел «Интеграции» и нажмите «Добавить интеграцию HomeKit».

  1. Выберите нужные девайсы (можно поставить флаги везде и позже убрать лишние), подтвердите.
  2. Отметьте нужную зону в доме, где будет расположен датчик (этот пункт не особо важен).
  3. Самый важный шаг — откройте «Уведомления». Там вы увидите QR-код.
  4. В приложении Home на iPhone или iPad нажмите кнопку "+" и затем «Добавить аксессуар».
  5. Просканируйте QR-код, выполните все указанные действия.

Как только мост настроен (или если он был до этого), снова зайдите в «Интеграции».

  1. Найдите карточку с устройством HASS Bridge.
  2. На ней нажмите кнопку «Настроить».
  3. Первый пункт пропустите кнопкой «Подтвердить».
  4. На втором этапе выберите в верхнем поле Include, а в нижнем — объекты CO2 и MH-Z19 Temperature, после чего снова подтвердите.

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

Добавление графика на главную панель HomeAssistant

Исследовать график в приложении Home от Apple нельзя, зато это можно сделать в приложении или веб-панели HomeAssistant. На главной странице «Обзор» откройте меню и там нажмите «Изменить панель», а затем кликните на кнопку «Добавить карточку». Найдите «Сенсор» и в поле «Объект» выберите CO2.

Собрал детектор CO2 для умного дома. Он дешевле готовых, рассказываю поэтапно

На главной график будет в упрощенном виде, но стоит кликнуть на строку с названием датчика — открывается более детальная версия исторических данных.

Последнее изменение:
 

Добавить комментарий
Если нужно ответить кому-то конкретно,
лучше нажать на «Ответить» под его комментарием