Схема подключения BME280 к ESP8266 или ESP32
Для примера возьмем плату Node MCU и датчик BME280. Для ESP32 принцип тот же.
Подключим по следующей схеме:
VIN — 3V3 NodeMCU
GND — GND NodeMCU
SDA — D6 NodeMCU (GPIO12)
SCL — D5 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
Если по русски назвать Температуру, то в Home Assistant потом не отобразится: https://github.com/esphome/issues/issues/819
Да, поэтому в конфиге name: «bme280_temperature», а уже после я жму шестеренку и пишу имя по русски.
Здравствуйте, Alex, у меня похожий датчик только у меня bmp280, можете подсказать как его откалибровать кажет вот такое высокое давление
Здравствуйте! Могу предположить что это из-за неуказанного значения высоты над уровнем моря, гляньте STANDARD_SEA_LEVEL_PRESSURE тут: https://esphome.io/cookbook/bme280_environment.html
Прошу извинить. 962hPa (гектопаскаль) — это 720 мм ртутного столба. Я бы назвал это давление низким, а не высоким. Норма в гПа — чуть больше 1000 Табличка.
А как перевести в стандарт?
p=p*0.00750062
Добрый) при исполнение вашего урока в 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… Подробнее »