Подключение датчика температуры, влажности и давления BME280 к ESP8266

Схема подключения BME280 к ESP8266 или ESP32

Для примера возьмем плату Node MCU и датчик BME280. Для ESP32 принцип тот же.

Подключим по следующей схеме:

 

VIN3V3 NodeMCU

GNDGND NodeMCU

SDAD6 NodeMCU (GPIO12)

SCLD5 NodeMCU (GPIO14)

Я использую прошивку ESPHome, поэтому все настройки для примера буду проводить именно в ней.

Добавляем в конфиг esphome пины i2c:

i2c:
  sda: D6
  scl: D5
  scan: True

 

И смотрим лог esphome на предмет i2c адреса датчика.

Распознался адрес bme280 — 0x76

Теперь добавляем в конфиг esphome данные датчика, с указанием адреса:

sensor:
  - platform: bme280
    temperature:
      name: "bme280_temperature"
      oversampling: 16x
    pressure:
      name: "bme280_pressure"
    humidity:
      name: "bme280_humidity"
    address: 0x76
    update_interval: 60s

 

И можно загружать прошивку.

Как видно по логу, данные о температуре, влажности и давлении успешно считываются.

Полный конфиг для esphome выглядит следующим образом:

esphome:
  name: nodemcu
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: 'ssid'
  password: 'password'

logger:

api:
  password: "nodemcu"

ota:
  password: "nodemcu"

i2c:
  sda: D6
  scl: D5
  scan: True

sensor:
  - platform: bme280
    temperature:
      name: "bme280_temperature"
      oversampling: 16x
    pressure:
      name: "bme280_pressure"
    humidity:
      name: "bme280_humidity"
    address: 0x76
    update_interval: 60s

 

В Home Assistant добавляем через Настройки > Интеграции > ESPHome

Данное исполнение датчика дает нам возможность изменить его i2c адрес.

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

Затем соединяем центральный и правый контакт. Адрес i2c изменится с 0x76 на 0x77

 

Поделитесь с друзьями
Подписаться
Уведомить о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

8 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Михаил
Михаил
4 лет назад

Если по русски назвать Температуру, то в Home Assistant потом не отобразится: https://github.com/esphome/issues/issues/819

Алексей
Алексей
3 лет назад

Здравствуйте, Alex, у меня похожий датчик только у меня bmp280, можете подсказать как его откалибровать кажет вот такое высокое давление

Снимок.PNG
Последний раз редактировалось 3 лет назад Алексей Козихин ем
Андрей
Андрей
3 лет назад
Ответить на  Алексей

Прошу извинить. 962hPa (гектопаскаль) — это 720 мм ртутного столба. Я бы назвал это давление низким, а не высоким. Норма в гПа — чуть больше 1000 Табличка.

Алексей Козихин
Алексей Козихин
3 лет назад
Ответить на  Андрей

А как перевести в стандарт?

Алексей
Алексей
2 лет назад
Ответить на  Алексей Козихин

p=p*0.00750062

Vladimir Sedogin
Vladimir Sedogin
5 месяцев назад

Добрый) при исполнение вашего урока в 2024,04..возникла проблема…. оказывается изменилось название библиотек теперь надо прописывать так.. //////////////////////////////////////////////// sensor:  — platform: bme280_i2c   temperature:    name: «BME280 Temp»    oversampling: 16x   pressure:    name: «BME280 Dav»   humidity:    name: «BME280 Vla»   address: 0x76   update_interval: 10s /////////////////////////////// # Example configuration entry SPI sensor:  — platform: bme280_spi   temperature:    name: «BME280 Temperature»    oversampling: 16x   pressure:    name: «BME280 Pressure»   humidity:    name: «BME280 Humidity»   cs_pin: GPIO5   update_interval: 60s ///////////////////////////////// а иначе не проходит инсталляция….. но теперь возникла проблема не корректнее отображение температуры и давления…. и в чем может быть проблема ? [06:03:50][D][sensor:093]: ‘BME280 Temp’: Sending state -147.51219 °C with 1 decimals… Подробнее »