Метеостанция и датчик VOC на ESP32 с BME680 и Алисой
- Комплексный замер 4 ключевых параметров микроклимата в одном миниатюрном чипе BME680
- Вычисление индекса качества воздуха IAQ и летучих органических соединений (VOC / газы)
- Автоматический запуск приточного бризера, вытяжки или очистителя воздуха через Алису
- Бюджетная стоимость сборки менее 1 200 рублей при точности на уровне фабричных станций
- Для точного замера сопротивления газового слоя требуется прогрев нагревателя в течение 20-30 минут
Качество воздуха в жилых комнатах, спальне и детской напрямую влияет на самочувствие, концентрацию и глубину сна. Большинство стандартных фабричных датчиков умного дома измеряют лишь базовую температуру и относительную влажность, игнорируя атмосферное давление и присутствие опасных летучих органических соединений (VOC — выхлопные газы с улицы, испарения пластика, лаков, мебели и бытовой химии).
Самодельная метеостанция и газоанализатор на базе чипа Bosch Sensortec BME680 и микроконтроллера ESP32 под управлением прошивки ESPHome решает эту задачу на профессиональном уровне:
- Сенсор измеряет температуру (
±0.5 °C), влажность (±3%), атмосферное давление (±1 гПа) и сопротивление газового слоя (Gas Resistance / VOC Index). - Передает данные в локальную сеть по протоколам Wi-Fi, MQTT и Matter без задержек.
- Интегрируется в приложение «Дом с Алисой»: Яндекс Станция голосом предупреждает о духоте («Качество воздуха ухудшилось, включаю приточную вентиляцию») и автоматически регулирует скорость бризера и увлажнителя.
1. Схема распиновки и подключения по шине I2C
Сенсор BME680 обменивается данными с микроконтроллером по стандартной двухпроводной шине I2C:
BME680 (I2C) ESP32 DevKit
──────────── ────────────
VCC (3.3V) ──> 3V3
GND ──> GND
SCL (Clock) ──> GPIO 22 (SCL)
SDA (Data) ──> GPIO 21 (SDA)
IMPORTANT
Питайте модуль BME680 строго от стабилизированной линии 3.3 В платы ESP32. Подача 5 В на модуль без встроенного LDO-стабилизатора приведет к необратимому выходу из строя чувствительного кремниевого кристалла датчика давления и нагревателя газового сенсора.
TIP
Внутри чипа BME680 встроен микронагреватель для анализа газов, который слегка подогревает подложку сенсора. Чтобы тепло от нагревателя и самого процессора ESP32 не завышало показания термометра, размещайте плату датчика на расстоянии не менее 2–3 см от микроконтроллера или в отдельном отсеке корпуса с вентиляционными прорезями.
2. Конфигурация прошивки ESPHome для BME680
Создайте новый узел в панели управления ESPHome и добавьте блок опроса сенсора BME680:
i2c:
sda: 21
scl: 22
scan: true
frequency: 100kHz
sensor:
- platform: bme680
temperature:
name: "BME680 Температура"
oversampling: 16x
filters:
- offset: -1.2 # Компенсация собственного нагрева платы
pressure:
name: "BME680 Давление"
oversampling: 16x
unit_of_measurement: "гПа"
humidity:
name: "BME680 Влажность"
oversampling: 16x
gas_resistance:
name: "BME680 Сопротивление газа (VOC)"
id: bme680_gas
address: 0x77
update_interval: 30s
Принцип работы газового сенсора (VOC):
Газовый резистор BME680 реагирует на спирты, летучие углеводороды, ацетон и угарный газ. Чем чище воздух в комнате, тем выше сопротивление сенсора (от 50 до 200+ кОм). При появлении загрязнений или сильной духоте сопротивление резко падает ниже 20–30 кОм, что служит идеальным программным триггером для проветривания.
3. Сценарии автоматизации климата в «Доме с Алисой»
После проброса сенсоров в приложение «Дом с Алисой» настраивается гибкая климатическая логика:
Сценарий 1: «Автоматическое проветривание по индексу газов (VOC)»
- Условие (Если): Датчик
«Качество воздуха BME680»-> Сопротивление газа «Ниже 35 кОм» (высокая концентрация запахов/газов). - Действия (Тогда):
- Алиса включает настенный бризер приточной вентиляции на максимальную скорость
4. - Включает вытяжной вентилятор на кухне или в санузле.
- Яндекс Станция сообщает: «В комнате обнаружен застойный воздух. Включаю интенсивное проветривание».
- Алиса включает настенный бризер приточной вентиляции на максимальную скорость
Сценарий 2: «Контроль сухости воздуха и защита дыхания»
- Условие (Если): Показания
«Влажность BME680»-> «Ниже 40%» в течение10 минут. - Действие: Включить умную розетку Zigbee с увлажнителем воздуха до достижения комфортных
50%.
Сценарий 3: «Барометрический прогноз и предупреждение о перепадах давления»
- Голосовая команда: «Алиса, какое давление в комнате?».
- Ответ Алисы: «Атмосферное давление составляет 752 миллиметра ртутного столба, микроклимат в норме».
4. Сравнение BME680 с другими датчиками качества воздуха
| Параметр | Bosch BME680 (4-in-1) | Sensirion SCD30 (CO2 NDIR) | Plantower PMS5003 (PM2.5) |
|---|---|---|---|
| Что измеряет | Температура, Влажность, Давление, VOC | Реальный углекислый газ ($CO_2$) | Пыль, дым, взвешенные частицы PM2.5 |
| Интерфейс | I2C / SPI | I2C / UART | UART / GPIO |
| Энергопотребление | Сверхнизкое (12 мА в пике нагрева) | Среднее (75 мА) | Высокое (100–120 мА с лазером) |
| Средняя цена | ~650–900 рублей | ~2 800–3 500 рублей | ~1 400–1 800 рублей |
BME680 является непревзойденным лидером по соотношению цены, компактности и универсальности для комплексного мониторинга жилых комнат.
5. Смежные DIY-проекты и автоматизации
Самодельная метеостанция отлично сочетается с другими модулями домашней лаборатории. Рекомендуем ознакомиться с нашими инструкциями по датчику углекислого газа SCD30 на ESP32, лазерному анализатору пыли PM2.5, радарному датчику присутствия LD2410 и шлюзу SLS Zigbee Gateway своими руками.
6. Выводы
Создание собственной метеостанции с датчиком BME680 на микроконтроллере ESP32 позволяет получить высокоточный прибор контроля климата всего за час работы. Прямая интеграция с Яндекс Алисой обеспечивает автоматический запуск климатической техники, чистый свежий воздух и здоровый микроклимат в доме.
Инструкция по настройке
Подключение сенсора BME680 к плате ESP32 и прошивка ESPHome
Соедините линии питания и шины I2C между датчиком BME680 и микроконтроллером ESP32, загрузите конфигурацию ESPHome и передайте сенсоры в экосистему Яндекс Алисы.
Обсуждение статьи