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

Собрал детектор 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 для умного дома. Он дешевле готовых, рассказываю поэтапно

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

Krokodil707
@Krokodil707
>_^。
Комментариев пока нет
Оставьте комментарий...
Оставьте комментарий...