• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Подключение датчика температуры, влажности и давления bme280 в ESPHome и Home Assistant.

22 августа, 2021

bme280: http://alii.pub/5yjrsz

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.

 

Модуль BME280 предназначен для измерения атмосферного давления, температуры и влажности. Это очередной датчик давления фирмы Bosch Sensortec для измерения атмосферного давления и температуры. По сравнению с первыми датчиками серии (BMP085 и BMP180) он имеет лучшие характеристики и меньшие размеры. Отличие от датчика BMP280 – наличие гигрометра, что позволяет измерять относительную влажность воздуха и создать на его основе маленькую метеостанцию.

Технические характеристики датчика BME280:

  • Интерфейс: SPI, I2C;
  • Напряжение питания: 3.3В;
  • Диапазон измерений давления: 300-1100hPa;
  • Диапазон измерений температуры: -40 – +85 °C;
  • Диапазон измерений влажности: 0 – 100 %;
  • Энергопотребление: режим измерений – 2.74 нА; в спящий режим: – 0.1 нА
  • Точность измерений:давление – 0.01 hPa ( < 10 cm). Температура – 0.01° CВлажность – 3%

Теперь давайте поговорим про подключение его к ESP8266 или ESP32 чтоб работать с ним в ESPHome.

Так как датчик имеет шину i2c он собственно и подключаться будет к ESP32 или ESP8266 по 4рем пинам. Это VCC, GND, SDA, SCL.

Для ESPHome существует интеграция bme280 https://esphome.io/components/sensor/bme280.html. С ней собственно и работают датчики bme280.

Для начала в ESPHome Нужно задать пины для шины i2c. Это делается следующим образом:


i2c:
  sda: 32
  scl: 33
  scan: true

Собственно 32 и 33 – это заданные пины. ( имейте введу, абы какие пины нельзя назначать, нужно именно те которые умеют работать с i2c. Смотреть это нужно в технической документации контроллера.)

А вот строка scan: true – означает, что esp будет сканировать шину I2c постоянно и показывать адреса устройств. Дело в том что датчики bme280 имеют разные адреса i2c. И чтоб узнать какой у Вас мы включаем сканнер.

Заливаем этот скетч, и открываем логи. И у нас должно написаться адрес I2c устройства. Выглядит это примерно так:

Ну а теперь когда узнали адрес I2c нашего датчика, полностью код будет выглядеть следующим образом:


i2c:
  sda: 32
  scl: 33
  scan: true
  
sensor:
  - platform: bme280
    temperature:
      name: "BME280 Temperature"
      oversampling: 16x
    pressure:
      name: "BME280 Pressure"
    humidity:
      name: "BME280 Humidity"
    address: 0x76
    update_interval: 60s

Переменные конфигурации:

  • temperature (необязательное): информация для датчика температуры.
    • name (Обязательно): имя датчика температуры.
    • id (необязательно, ID): установите идентификатор этого датчика для использования в лямбдах.
  • pressure (Optional): информация для датчика влажности.
    • name (Обязательно, string): Имя датчика влажности.
    • id (необязательно, ID): установите идентификатор этого датчика для использования в лямбдах..
  • address (необязательно, int): вручную укажите адрес I²C датчика. По умолчанию 0x77.
  • update_interval (необязательно, Time): интервал проверки датчика. По умолчанию 60s.

 

А так выглядит Вывод значений Температуры, влажности и давления на экран M5stack:


spi:
  clk_pin: 18
  mosi_pin: 23
  miso_pin: 19

i2c:
  sda: 21
  scl: 22
  scan: true

  
sensor:
  - platform: bme280
    temperature:
      name: "BME280 Temperature"
      id: temperature
    pressure:
      name: "BME280 Pressure"
      id: pressure
    humidity:
      name: "BME280 Humidity"
      id: humidity
    address: 0x76
    update_interval: 60s
    
font:
  - file: "fonts/Roboto-Medium.ttf"
    id: font_roboto_medium22
    size: 22
color:
  - id: RED
    red: 100%
    green: 0%
    blue: 0%
  - id: BLUE
    red: 0%
    green: 0%
    blue: 100%
  - id: WHITE
    red: 100%
    green: 100%
    blue: 100%
      
display:
  - platform: ili9341
    id: m5stack_display
    model: M5Stack
    cs_pin: 14
    dc_pin: 27
    led_pin: 32
    reset_pin: 33
    rotation: 0
    lambda: |-
      it.rectangle(0,  0, it.get_width(), it.get_height(), WHITE);
      it.rectangle(0, 22, it.get_width(), it.get_height(), WHITE);   // header bar
      it.print(it.get_width() / 2, 11, id(font_roboto_medium22), WHITE, TextAlign::CENTER, "SHT21");
      it.print(11,  33, id(font_roboto_medium22), WHITE, TextAlign::LEFT, "Temperature");
      it.print(11,  55, id(font_roboto_medium22), WHITE, TextAlign::LEFT, "Humidity");
      it.print(11,  77, id(font_roboto_medium22), WHITE, TextAlign::LEFT, "Pressure");
      it.printf(it.get_width() - 11,  33, id(font_roboto_medium22), WHITE, TextAlign::RIGHT, "%.1f ", id(temperature).state);
      it.printf(it.get_width() - 11,  55, id(font_roboto_medium22), WHITE, TextAlign::RIGHT, "%.1f ", id(humidity).state);
      it.printf(it.get_width() - 11,  77, id(font_roboto_medium22), WHITE, TextAlign::RIGHT, "%.1f ", id(pressure).state);

Ну а как добавить этот датчик подключенный таким способом к ESPHome в Home Assistant. Тут все как обычно.

Заходим в Настройки->Интеграции-> Добавляем новую интеграцию ESPHome и введя ip адрес нашей ESPшки к которой подключен bme280. И все интеграция добавится.

В системе Home Assistant это все будет видеться какBME280 Temperature, BME280 Humidity и BME280 Pressure соответственно. И выглядит это так:

Ну и при добавлении в карточку:

Primary Sidebar

Поиск

Новые записи

  • Автоматизация перезагрузки устройства по команде Ping.
  • Разблокирование и добавление шлюза Xiaomi gateway 3 в Home Assistant для управления Bluetooth устройствами из экосистемы Xiaomi Home (mihome)
  • Интеграция для локального управления (без интернета) ик пультом Tuya работающим по wifi из Home Assistant
  • Транслируем показания с Уличного Bluetooth Датчика температуры по BTHome на дисплей датчика температуры XIaomi LYWSD03MMC
  • Заставляем Bluetooth датчики температуры tuya и xiaomi отправлять данные по Zigbee в Home Assistant.

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Подписаться на YouTube!

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·