Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use BME280 Breakout: Examples, Pinouts, and Specs

Image of BME280 Breakout
Cirkit Designer LogoDesign with BME280 Breakout in Cirkit Designer

Introduction

The BME280 Breakout (Manufacturer Part ID: SEN-13676) by SparkFun Electronics is a versatile sensor module designed for environmental sensing. It combines three key sensing capabilities—temperature, humidity, and barometric pressure—into a single compact device. This makes it an ideal choice for weather monitoring, indoor climate control, and IoT applications.

Explore Projects Built with BME280 Breakout

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Wemos D1 Mini Based Environmental Monitoring System with OLED Display and Light Sensing
Image of WeatherStation: A project utilizing BME280 Breakout in a practical application
This circuit features a Wemos D1 Mini microcontroller interfaced with a BME280 environmental sensor and an OLED display for data output, as well as an ADS1115 ADC module connected to a photocell for light intensity measurements. A pushbutton is included for resetting the microcontroller.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Wi-Fi Weather Station with Data Logging
Image of bme280-sd-openlog: A project utilizing BME280 Breakout in a practical application
This circuit features an ESP32 microcontroller interfaced with an Adafruit BME280 sensor for environmental data acquisition and a SparkFun OpenLog for data logging. The ESP32 communicates with the BME280 via I2C and with the OpenLog via UART, while all components share common power and ground connections.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Smart Weather Station with BME280, BH1750, and OLED Display
Image of Smart Station: A project utilizing BME280 Breakout in a practical application
This circuit is a smart weather station that uses an ESP32 microcontroller to interface with a BME280 sensor for measuring temperature, humidity, and pressure, a BH1750 sensor for measuring light intensity, and a 0.96" OLED display to show the sensor readings. Additional components include a wind vane and a soil moisture module for environmental monitoring, all powered by a 18650 Li-ion battery managed by a TP4056 charging module.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Smart Weather Station with BME280, BH1750, and OLED Display
Image of Smart Station: A project utilizing BME280 Breakout in a practical application
This circuit is a smart weather station that uses an ESP32 microcontroller to interface with a BME280 sensor for measuring temperature, humidity, and pressure, a BH1750 sensor for measuring light intensity, and a 0.96" OLED display for showing the sensor readings. Additional sensors include a wind vane, rain sensor, and soil moisture sensor, with a relay module controlling a pump and solenoid valve for potential irrigation control.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with BME280 Breakout

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of WeatherStation: A project utilizing BME280 Breakout in a practical application
Wemos D1 Mini Based Environmental Monitoring System with OLED Display and Light Sensing
This circuit features a Wemos D1 Mini microcontroller interfaced with a BME280 environmental sensor and an OLED display for data output, as well as an ADS1115 ADC module connected to a photocell for light intensity measurements. A pushbutton is included for resetting the microcontroller.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of bme280-sd-openlog: A project utilizing BME280 Breakout in a practical application
ESP32-Based Wi-Fi Weather Station with Data Logging
This circuit features an ESP32 microcontroller interfaced with an Adafruit BME280 sensor for environmental data acquisition and a SparkFun OpenLog for data logging. The ESP32 communicates with the BME280 via I2C and with the OpenLog via UART, while all components share common power and ground connections.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Smart Station: A project utilizing BME280 Breakout in a practical application
ESP32-Based Smart Weather Station with BME280, BH1750, and OLED Display
This circuit is a smart weather station that uses an ESP32 microcontroller to interface with a BME280 sensor for measuring temperature, humidity, and pressure, a BH1750 sensor for measuring light intensity, and a 0.96" OLED display to show the sensor readings. Additional components include a wind vane and a soil moisture module for environmental monitoring, all powered by a 18650 Li-ion battery managed by a TP4056 charging module.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Smart Station: A project utilizing BME280 Breakout in a practical application
ESP32-Based Smart Weather Station with BME280, BH1750, and OLED Display
This circuit is a smart weather station that uses an ESP32 microcontroller to interface with a BME280 sensor for measuring temperature, humidity, and pressure, a BH1750 sensor for measuring light intensity, and a 0.96" OLED display for showing the sensor readings. Additional sensors include a wind vane, rain sensor, and soil moisture sensor, with a relay module controlling a pump and solenoid valve for potential irrigation control.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Weather stations and environmental monitoring systems
  • IoT devices for smart homes and buildings
  • Altitude measurement for drones and other vehicles
  • HVAC (Heating, Ventilation, and Air Conditioning) systems
  • Data logging and scientific experiments

Technical Specifications

The BME280 Breakout is built around Bosch's BME280 sensor and offers high precision and low power consumption. Below are the key technical details:

General Specifications

Parameter Value
Supply Voltage 1.8V to 3.6V
Operating Current 2.7 µA (in sleep mode)
Communication Protocols I2C (default) or SPI
Temperature Range -40°C to +85°C
Humidity Range 0% to 100% RH
Pressure Range 300 hPa to 1100 hPa
Dimensions 0.6" x 0.6" (15.24mm x 15.24mm)

Pin Configuration and Descriptions

The BME280 Breakout has a total of 6 pins. Below is the pinout and description:

Pin Name Pin Number Description
VIN 1 Power supply input (1.8V to 3.6V). Connect to 3.3V for most applications.
GND 2 Ground connection.
SCL 3 Serial Clock Line for I2C communication.
SDA 4 Serial Data Line for I2C communication.
CS 5 Chip Select for SPI communication. Pull HIGH for I2C mode (default).
SDO 6 Serial Data Output for SPI communication. Can also set I2C address.

Usage Instructions

The BME280 Breakout is easy to integrate into your projects using either I2C or SPI communication. Below are the steps to use the sensor in a circuit and some best practices.

Connecting the BME280 to an Arduino UNO (I2C Mode)

  1. Wiring: Connect the BME280 Breakout to the Arduino UNO as follows:

    • VIN3.3V on Arduino
    • GNDGND on Arduino
    • SCLA5 (I2C Clock Line on Arduino UNO)
    • SDAA4 (I2C Data Line on Arduino UNO)
    • CS → Leave unconnected or pull HIGH
    • SDO → Leave unconnected or pull LOW for default I2C address (0x76)
  2. Install Required Libraries:

    • Install the Adafruit BME280 Library and Adafruit Sensor Library from the Arduino Library Manager.
  3. Example Code: Use the following code to read temperature, humidity, and pressure data from the BME280:

    #include <Wire.h>
    #include <Adafruit_Sensor.h>
    #include <Adafruit_BME280.h>
    
    // Create an instance of the BME280 sensor
    Adafruit_BME280 bme;
    
    // Define I2C address (default is 0x76, or 0x77 if SDO is HIGH)
    #define BME280_I2C_ADDRESS 0x76
    
    void setup() {
      Serial.begin(9600);
      while (!Serial); // Wait for serial monitor to open
    
      // Initialize the BME280 sensor
      if (!bme.begin(BME280_I2C_ADDRESS)) {
        Serial.println("Could not find a valid BME280 sensor, check wiring!");
        while (1);
      }
    
      Serial.println("BME280 sensor initialized successfully!");
    }
    
    void loop() {
      // Read and print temperature, humidity, and pressure
      Serial.print("Temperature: ");
      Serial.print(bme.readTemperature());
      Serial.println(" °C");
    
      Serial.print("Humidity: ");
      Serial.print(bme.readHumidity());
      Serial.println(" %");
    
      Serial.print("Pressure: ");
      Serial.print(bme.readPressure() / 100.0F); // Convert Pa to hPa
      Serial.println(" hPa");
    
      Serial.println(); // Add a blank line for readability
      delay(2000); // Wait 2 seconds before the next reading
    }
    

Important Considerations and Best Practices

  • Power Supply: Ensure the sensor is powered with 3.3V. Using 5V may damage the module.
  • Pull-Up Resistors: The breakout board includes pull-up resistors for I2C lines. If using multiple I2C devices, ensure the total pull-up resistance is appropriate.
  • I2C Address: The default I2C address is 0x76. To change it to 0x77, connect the SDO pin to VIN.
  • SPI Mode: For SPI communication, connect the CS pin to a GPIO pin on your microcontroller and configure it in your code.

Troubleshooting and FAQs

Common Issues

  1. Sensor Not Detected:

    • Cause: Incorrect wiring or I2C address mismatch.
    • Solution: Double-check the wiring and ensure the SDO pin is configured correctly for the desired I2C address.
  2. Incorrect Readings:

    • Cause: Environmental factors such as condensation or rapid temperature changes.
    • Solution: Place the sensor in a stable environment and avoid exposing it to water or extreme conditions.
  3. Communication Errors:

    • Cause: Conflicting I2C devices or incorrect pull-up resistor configuration.
    • Solution: Verify that no other devices are using the same I2C address and check the pull-up resistor values.

FAQs

Q1: Can the BME280 Breakout measure altitude?
Yes, the BME280 can calculate altitude based on barometric pressure readings. Use the formula provided in the Adafruit BME280 library for altitude calculation.

Q2: Can I use the BME280 with a 5V microcontroller?
Yes, but you must use a logic level shifter to step down the 5V signals to 3.3V for the BME280.

Q3: How do I switch between I2C and SPI modes?
The BME280 operates in I2C mode by default. To use SPI mode, connect the CS pin to a GPIO pin and configure it in your code. Ensure the SDO pin is connected as required for SPI communication.

By following this documentation, you can effectively integrate the BME280 Breakout into your projects and troubleshoot common issues with ease.