HA Pressure Temperature Humidity WiFi | ESP32 S2 MINI + BME280

HA Pressure Temperature Humidity WiFi | ESP32 S2 MINI + BME280

What I’ve used:

BME280 Sensor (buy at this link)

ESP32-S2-MINI (buy at this link)

4 dupont cables


ESPHome Code

esphome:
  name: sensore-bme280
  friendly_name: Sensore BME280

esp32:
  board: lolin_s2_mini
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "YOUR-KEY"

ota:
  - platform: esphome
    password: "YOUR-PASSWORD"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Sensore-Bme280 Fallback Hotspot"
    password: "YOUR-PASSWORD"

captive_portal:
    
i2c:
  sda: 8
  scl: 9
  scan: true

sensor:
  - platform: bme280_i2c
    temperature:
      name: "Temperatura BME280"
      oversampling: 16x
    pressure:
      name: "Pressione BME280"
    humidity:
      name: "Umidità BME280"  
    address: 0x76
    update_interval: 10s
    

If everything is working fine, you can now try the advanced configuration updating the code.

sensor:
  - platform: bme280_i2c
    temperature:
      name: "Temperatura"
      oversampling: 16x
      id: bme280_temperature
    pressure:
      name: "Pressione"
      id: bme280_pressure
    humidity:
      name: "Umidità"
      id: bme280_humidity
    address: 0x76
    update_interval: 15s
  - platform: template
    name: "Altitude"
    lambda: |-
      const float STANDARD_SEA_LEVEL_PRESSURE = 1014; //in hPa, cerca su windy.com
      return ((id(bme280_temperature).state + 273.15) / 0.0065) *
        (powf((STANDARD_SEA_LEVEL_PRESSURE / id(bme280_pressure).state), 0.190234) - 1); // in metri
    update_interval: 15s
    icon: 'mdi:signal'
    unit_of_measurement: 'm'
  - platform: absolute_humidity
    name: "Umidità Assoluta"
    temperature: bme280_temperature
    humidity: bme280_humidity
  - platform: template
    name: "Punto di rugiada"
    lambda: |-
      return (243.5*(log(id(bme280_humidity).state/100)+((17.67*id(bme280_temperature).state)/
      (243.5+id(bme280_temperature).state)))/(17.67-log(id(bme280_humidity).state/100)-
      ((17.67*id(bme280_temperature).state)/(243.5+id(bme280_temperature).state))));
    unit_of_measurement: °C
    icon: 'mdi:thermometer-alert'