ESP32 & IoTIntermediate

ESP32 Weather Station with BME280 Sensor

Read temperature, humidity, and atmospheric pressure with the high-precision BME280 sensor.

20 March 202612 min read

Introduction

The BME280 is a high-precision sensor from Bosch that measures temperature, humidity, and barometric pressure. It's much more accurate than the DHT11/22 sensors.

Wiring (I2C)

BME280ESP32
VCC3.3V
GNDGND
SCLGPIO 22
SDAGPIO 21

Libraries

Install Adafruit BME280 Library from the Library Manager.

The Code

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

Adafruit_BME280 bme;

void setup() {
  Serial.begin(115200);
  if (!bme.begin(0x76)) {
    Serial.println("Could not find BME280 sensor!");
    while (1);
  }
}

void loop() {
  Serial.print("Temp: "); Serial.print(bme.readTemperature()); Serial.println(" *C");
  Serial.print("Hum:  "); Serial.print(bme.readHumidity()); Serial.println(" %");
  Serial.print("Pres: "); Serial.print(bme.readPressure() / 100.0F); Serial.println(" hPa");
  delay(2000);
}
Tags:ESP32BME280I2CWeather