Перейти к содержанию

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 В и земля. GPIO21 соединён с SDA, GPIO22 с SCL.ESP32-DevKitCМодуль BME2803V33V3 / VCCGNDGNDGPIO21SDAGPIO22SCL
Подключайте провода при отключённом питании. Подтяжки шины должны идти к 3,3 В.

Комплект и подключение

Нужны ESP32-DevKitC, модуль BME280 с подтяжками I²C к 3,3 В, четыре коротких провода и USB-кабель с линиями данных. Для модулей с отдельным CSB проверьте, что он установлен в высокий уровень для I²C. Уровень SDO определяет адрес, его не оставляют плавающим.

ESP32-DevKitCBME280
3V3Вход питания 3,3 В
GNDGND
GPIO21SDA
GPIO22SCL

Конфигурация 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.

Источники

  1. ESPHome 2026.10.2
  2. ESPHome. BME280
  3. ESPHome. Native API
  4. ESPHome. I²C Bus
  5. Bosch Sensortec. BME280
Страница помогла?

Нашли ошибку? ·