ESPHome и ESP32: датчик BME280 в Home Assistant
Соедините BME280 и ESP32 четырьмя проводами. Проверьте адрес I²C в журнале, затем подключите устройство к Home Assistant через зашифрованный API ESPHome.
Обновлено Редакция GAW
В примере используется ESP32-DevKitC с классическим ESP32 и модуль BME280, рассчитанный на питание и логику 3,3 В. Конфигурация рассчитана на ESPHome 2026.10.2.
Коротко
- Плата питается от USB, модуль датчика от вывода 3V3.
- SDA подключается к GPIO21, SCL к GPIO22.
- Адрес BME280 по I²C может быть 0x76 или 0x77.
- Первый запуск выполняют по USB. Ключ API и Wi-Fi хранят в secrets.yaml.
Комплект и подключение
Нужны ESP32-DevKitC, модуль BME280 с подтяжками I²C к 3,3 В, четыре коротких провода и USB-кабель с линиями данных. Для модулей с отдельным CSB проверьте, что он установлен в высокий уровень для I²C. Уровень SDO определяет адрес, его не оставляют плавающим.
| ESP32-DevKitC | BME280 |
|---|---|
| 3V3 | Вход питания 3,3 В |
| GND | GND |
| GPIO21 | SDA |
| GPIO22 | SCL |
Конфигурация ESPHome
Сохраните файл room-sensor.yaml. В secrets.yaml в том же каталоге задайте wifi_ssid, wifi_password и room_api_key как строки. Ключ API — 32 случайных байта в Base64. Его можно сгенерировать на странице документации Native API или командой openssl rand -base64 32.
esphome:
name: room-sensor
friendly_name: Датчик комнаты
esp32:
board: esp32dev
framework:
type: esp-idf
logger:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
api:
encryption:
key: !secret room_api_key
i2c:
sda: GPIO21
scl: GPIO22
scan: true
sensor:
- platform: bme280_i2c
address: 0x76
temperature:
name: Температура
humidity:
name: Влажность
pressure:
name: Давление
update_interval: 60s
В ESPHome проверьте конфигурацию и при первом запуске установите прошивку через USB. Для CLI используйте esphome config room-sensor.yaml, затем esphome run room-sensor.yaml и выберите последовательный порт. Если сканер не находит адрес, проверьте 3V3, землю, SDA, SCL и подтяжки. Если найден 0x77, исправьте адрес в YAML и повторите установку.
После подключения к Wi-Fi добавьте интеграцию ESPHome в Home Assistant. Если автоматического обнаружения нет, укажите IP-адрес вручную. Введите тот же ключ API и дождитесь обновления сущностей. При сбросе платы проверьте журнал и питание. Этот пример оставляет устройство включённым постоянно. Для батареи отдельно оцените ток сна платы и датчика.
Частые вопросы
Что делать, если сканер нашёл 0x77 вместо 0x76?
Замените address в секции sensor на 0x77 и прошейте конфигурацию снова.
Почему модуль не показывает влажность?
Проверьте маркировку и журнал. BMP280 измеряет температуру и давление, а влажность поддерживает BME280.
Что делать, если Home Assistant не обнаружил датчик?
Убедитесь, что датчик получил IP-адрес. Добавьте интеграцию ESPHome вручную по этому адресу и введите ключ API.
Источники
Нашли ошибку? ·
Смотрите также
- ESP32-DevKitC V438 контактов, АЦП, сенсоры, обвязка загрузки, питание, прошивка
- I²CSDA и SCL, START/STOP, ACK, адреса, скорости, расчёт подтяжек
- Установка Home Assistant на мини-ПКUbuntu Live, отдельный SSD, первый вход и копия
- Почему ESP32 перезагружается при включении Wi-Fi?Пики тока передатчика и просадка питания модуля
- Почему ESP32 в deep sleep потребляет больше, чем в даташите?10 мкА — ток чипа; стабилизатор, мост USB–UART и подтяжки добавляют в сотни раз больше