Система датчиков качества воздуха ESPHome (SEN6x)
Table of Contents
Простого датчика 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.
Для этого проекта я также разработал подходящий корпус, который обеспечивает оптимальный поток воздуха для датчика и компактно размещает все компоненты.
Возможности программного обеспечения и технические особенности
Прошивка основана на ESPHome и использует библиотеку LVGL для графического интерфейса. При разработке основное внимание уделялось максимальной гибкости и физической точности.
1. Полностью динамический пользовательский интерфейс и работа без головы.
Устройство спроектировано как настоящая автономная система. Для этого не обязательно требуется облако или даже активный экземпляр Home Assistant. Благодаря встроенному веб-серверу ESPHome устройством можно управлять без подключения к сети через любой браузер в локальной сети. Все назначения (какое измеренное значение отображается на каком слоте дисплея), цвета, настройки темы (темный/светлый режим) и частоту обновления можно изменить в реальном времени в веб-интерфейсе. Дисплей настраивается в режиме реального времени.
2. Специальная логика газового двигателя Sensirion.
Датчикам газа CO2, VOC и NOx требуется непрерывный период прогрева для расчета правильных базовых уровней. Простой перезапуск таймера запроса приведет к полной перезагрузке датчика и искажению измеренных значений. Поэтому прошивка использует разделенную логику запросов: датчик работает внутри непрерывно в режиме 24-часового интервала, в то время как отдельный настраиваемый сценарий аккуратно и асинхронно извлекает данные с желаемым интервалом (например, каждые 30 секунд) через шину I2C.
3. Динамическая компенсация влаги (формула Магнуса)
Компактные корпуса выделяют отходящее тепло, что требует корректировки температуры в программном обеспечении. Однако относительная влажность физически напрямую зависит от температуры. Если калибруется только температура, точность отображаемой влажности снижается. Таким образом, встроенное ПО выполняет расчет через Формула Магнуса-Тетенса текущее давление пара насыщения и корректирует относительную влажность, чтобы она соответствовала установленному смещению температуры. Это означает, что отображаемые измеренные значения остаются физически согласованными.
4. Индивидуальные пределы сигнализации
Чтобы иметь возможность сразу оценить качество воздуха, было реализовано 21 индивидуальное предельное значение (по три уровня для семи датчиков). Если значение превышает определенный предел, соответствующий лист или текст на дисплее автоматически окрашивается в желаемый цвет предупреждения (например, желтый, оранжевый или красный). Эти пороговые значения и цвета также можно легко установить через пользовательский интерфейс.
Ресурсы и загрузка
Проект полностью с открытым исходным кодом. Я размещаю полный код ESPHome (YAML) и 3D-модель корпуса на GitHub и Thingiverse:
-
Прошивка/исходный код: Нажмите здесь, чтобы перейти в репозиторий GitHub.
-
Корпус для 3D-печати (STL/STEP): Нажмите здесь, чтобы перейти к проекту Thingiverse
-
Водитель: В качестве кастомного компонента использован отличный драйвер SEN6x из репозитория. tuct/esphome-проекты использовал.









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