Система датчиков качества воздуха ESPHome (SEN6x)

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

Аппаратное обеспечение матрицы

В основе системы лежат высококачественные и компактные компоненты:

  • Микроконтроллер: ESP32-C3-DevKitM-1 обеспечивает достаточную мощность для дисплея и обеспечивает стабильное соединение WLAN.

  • Сенсорная: Der Сенсирион SEN66 (совместим с SEN6x/SEN5x) — это универсальный датчик для измерения CO2, твердых частиц (PM1.0, PM2.5, PM4.0, PM10), летучих органических соединений (VOC), оксидов азота (NOx), а также температуры и влажности.

  • Отображать: Круглый ЖК-дисплей с диагональю 1,28 дюйма и GC9A01 Контроллер, управляемый через SPI.

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

ESP32-C3 SEN66 Датчик № 1

ESP32-C3 SEN66 Датчик № 1

ESP32-C3 SEN66 Датчик № 2

ESP32-C3 SEN66 Датчик № 2

Возможности программного обеспечения и технические особенности

Прошивка основана на ESPHome и использует библиотеку LVGL для графического интерфейса. При разработке основное внимание уделялось максимальной гибкости и физической точности.

1. Полностью динамический пользовательский интерфейс и работа без головы.

Устройство спроектировано как настоящая автономная система. Для этого не обязательно требуется облако или даже активный экземпляр Home Assistant. Благодаря встроенному веб-серверу ESPHome устройством можно управлять без подключения к сети через любой браузер в локальной сети. Все назначения (какое измеренное значение отображается на каком слоте дисплея), цвета, настройки темы (темный/светлый режим) и частоту обновления можно изменить в реальном времени в веб-интерфейсе. Дисплей настраивается в режиме реального времени.

2. Специальная логика газового двигателя Sensirion.

Датчикам газа CO2, VOC и NOx требуется непрерывный период прогрева для расчета правильных базовых уровней. Простой перезапуск таймера запроса приведет к полной перезагрузке датчика и искажению измеренных значений. Поэтому прошивка использует разделенную логику запросов: датчик работает внутри непрерывно в режиме 24-часового интервала, в то время как отдельный настраиваемый сценарий аккуратно и асинхронно извлекает данные с желаемым интервалом (например, каждые 30 секунд) через шину I2C.

3. Динамическая компенсация влаги (формула Магнуса)

Компактные корпуса выделяют отходящее тепло, что требует корректировки температуры в программном обеспечении. Однако относительная влажность физически напрямую зависит от температуры. Если калибруется только температура, точность отображаемой влажности снижается. Таким образом, встроенное ПО выполняет расчет через Формула Магнуса-Тетенса текущее давление пара насыщения и корректирует относительную влажность, чтобы она соответствовала установленному смещению температуры. Это означает, что отображаемые измеренные значения остаются физически согласованными.

4. Индивидуальные пределы сигнализации

Чтобы иметь возможность сразу оценить качество воздуха, было реализовано 21 индивидуальное предельное значение (по три уровня для семи датчиков). Если значение превышает определенный предел, соответствующий лист или текст на дисплее автоматически окрашивается в желаемый цвет предупреждения (например, желтый, оранжевый или красный). Эти пороговые значения и цвета также можно легко установить через пользовательский интерфейс.

Ресурсы и загрузка

Проект полностью с открытым исходным кодом. Я размещаю полный код ESPHome (YAML) и 3D-модель корпуса на GitHub и Thingiverse:

ESP32-C3 SEN66 Датчик № 11

ESP32-C3 SEN66 Датчик № 11

ESP32-C3 SEN66 Датчик №4

ESP32-C3 SEN66 Датчик №4

ESP32-C3 SEN66 Датчик №5

ESP32-C3 SEN66 Датчик №5

ESP32-C3 SEN66 Датчик №6

ESP32-C3 SEN66 Датчик №6

ESP32-C3 SEN66 Датчик №7

ESP32-C3 SEN66 Датчик №7

ESP32-C3 SEN66 Датчик № 10

ESP32-C3 SEN66 Датчик № 10

You may also like...

10 ответов,,en,gpo123,,en,15. Февраль 2018 года,,en,7:54,,en,Я получил оригинальную электронную нагрузку (не поддельную) из KKK-магазина на aliexpress. Достаточно долго ехать в Германию.,,en

  1. Дре says:

    Привет, на фото №3 есть что-то вроде вставки из серого пенопласта, где датчик расположен в корпусе. Он идет в комплекте с датчиком? Похоже, что его вырезали на станке. Если нет, то где вы это взяли?

    • 360customs says:

      Привет, это правильно, он вырезан из пены ЭВА с помощью лазера. Датчик в комплекте не идет. Я загрузил форму наthingiverse.com (надеюсь). Они были получены от sensirion со страницы фактов о датчиках.

      С наилучшими пожеланиями

      • Дре says:

        У вас есть потрясающий проект, и я пытаюсь сделать его сам. Я нашел вашу страницуthingiverse (ссылка в статье вместо этого указывает на github), но не могу найти вырез для пенопласта. Для меня это недостающая часть, если бы вы могли ее загрузить, я бы очень признателен. Насколько толстой была пена, которую вы использовали, чтобы хорошо прикрепить ее к корпусу? Я предполагаю, что вы находитесь в Германии. Я в Швейцарии. Есть какие-нибудь рекомендации по резке ЭВА? Я никогда этого не делал.

        Изменения, которые я планирую внести в ваш дизайн: я обновлюсь до ESP32-C6 (длиннее примерно на 3 мм) и попробую добавить датчик внешней освещенности для управления экраном. Я так понимаю, вы это жестко запрограммировали (или контролируете через HA)?

        Также буду рад, если вы отправите мне подробную информацию по электронной почте.

        • 360customs says:

          Display brightness and Day/Night mode are available in HA for manipulation. Ничего не закодировано. I use the sun modifier for decision to alter brightness. Все это находится в коде ESPHome.

          EVA составляет 2 или 3 мм от многоцветной упаковки листов, ничего особенного. Я вырезал это на дешевом УФ-лазере мощностью 5 Вт со «средней» мощностью/скоростью.

      • Дре says:

        Я нашел файл STEP пены на странице Sensiron, см. ссылку ниже.

  2. Я пытался справиться с ним вручную, но все было покрыто булочкой.

  3. слоистые слои says:

    Здравствуйте, я заинтересован в создании такого же проекта, не могли бы вы запросить более подробную информацию?
    Потому что я не знаю, как программировать на Ардуино.
    Спасибо

  4. До этого says:

    Можете ли вы прислать мне схему кабелей? как подключиться?

Leave a Reply

Your email address will not be published. Required fields are marked *

* Checkbox GDPR is required

*

I agree