- All products
- Sensors & Modules
- Pressure
- Pressure Temperature Sensor Module GY-BME280
- Pressure
Features:
- Low Power Consumption: Only 0.1µA in sleep mode, ideal for battery-powered devices.
- Adjustable Sampling: Operates at 1 Hz with 1.8–3.6µA consumption.
- Fast Humidity Response: Response time of ~1s for real-time tracking.
- High Precision: RMS noise of just 0.2 Pa for pressure measurements.
- Temperature Compensation: Offset of 1.5Pa/k ensures consistent pressure readings in varying temperatures.
- I2C Interface: Easy integration with microcontrollers via 2-wire I2C communication.
Operating Principle:
- Sensing elements measure temperature, humidity, and pressure.
- Signals converted to digital via high-resolution ADC.
- Built-in compensation and calibration algorithms ensure accuracy.
- Data is sent over I2C to a microcontroller.
- Supports sleep, forced, and normal operating modes.
I2C Address Configuration:
Default I2C address: 0x77. Modify solder jumper to switch to 0x76.
Pinout:

- VCC: 3.3V – 5V power input
- GND: Ground
- SCL: I2C clock
- SDA: I2C data
Applications:
- Context-aware sensing (e.g., indoor presence)
- Health and wellness monitoring
- Home automation and HVAC control
- IoT weather stations
- Altitude tracking and GPS enhancement
- Vertical velocity measurement (e.g., drones)
Supported Boards:
| Board | SCL | SDA |
|---|---|---|
| Arduino Uno/Nano | A5 | A4 |
| Arduino Mega | 21 | 20 |
| Leonardo/Micro | 3 | 2 |
Wiring Diagram:

Arduino Code Example:
#include "Wire.h"
#include "Adafruit_Sensor.h"
#include "Adafruit_BME280.h"
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme;
void setup() {
Serial.begin(9600);
if (!bme.begin(0x76)) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
}
void loop() {
printTemperature();
printPressure();
printAltitude();
printHumidity();
delay(1000);
}
void printTemperature() {
Serial.print("Temperature: ");
Serial.print(bme.readTemperature());
Serial.println(" *C");
}
void printPressure() {
Serial.print("Pressure: ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println(" hPa");
}
void printAltitude() {
Serial.print("Approx. Altitude: ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(" m");
}
void printHumidity() {
Serial.print("Humidity: ");
Serial.print(bme.readHumidity());
Serial.println(" %");
}
Technical Specifications:
- Voltage: 1.8V–5V DC
- Humidity Range: 0–100%
- Pressure Range: 300–1100 hPa
- Temperature Range: -40°C to +85°C
- Accuracy: ±1°C (temp), ±3% (humidity), ±1 Pa (pressure)
- Communication: I2C up to 3.4MHz
Comparison with Other Sensors:
| Sensor | Measures | Protocol | Voltage | Temp Range |
|---|---|---|---|---|
| DHT11 | Temp, Humidity | One-wire | 3–5.5V | 0 to 50°C |
| DHT22 | Temp, Humidity | One-wire | 3–6V | -40 to 80°C |
| LM35 | Temperature | Analog | 4–30V | -55 to 150°C |
| DS18B20 | Temperature | One-wire | 3–5.5V | -55 to 125°C |
| BME280 | Temp, Humidity, Pressure | I2C/SPI | 1.8–5V | -40 to 85°C |
| BMP180 | Temp, Pressure | I2C | 1.8–3.6V | 0 to 65°C |
Resources:
Features:
- Low Power Consumption: Only 0.1µA in sleep mode, ideal for battery-powered devices.
- Adjustable Sampling: Operates at 1 Hz with 1.8–3.6µA consumption.
- Fast Humidity Response: Response time of ~1s for real-time tracking.
- High Precision: RMS noise of just 0.2 Pa for pressure measurements.
- Temperature Compensation: Offset of 1.5Pa/k ensures consistent pressure readings in varying temperatures.
- I2C Interface: Easy integration with microcontrollers via 2-wire I2C communication.
Operating Principle:
- Sensing elements measure temperature, humidity, and pressure.
- Signals converted to digital via high-resolution ADC.
- Built-in compensation and calibration algorithms ensure accuracy.
- Data is sent over I2C to a microcontroller.
- Supports sleep, forced, and normal operating modes.
I2C Address Configuration:
Default I2C address: 0x77. Modify solder jumper to switch to 0x76.
Pinout:

- VCC: 3.3V – 5V power input
- GND: Ground
- SCL: I2C clock
- SDA: I2C data
Applications:
- Context-aware sensing (e.g., indoor presence)
- Health and wellness monitoring
- Home automation and HVAC control
- IoT weather stations
- Altitude tracking and GPS enhancement
- Vertical velocity measurement (e.g., drones)
Supported Boards:
| Board | SCL | SDA |
|---|---|---|
| Arduino Uno/Nano | A5 | A4 |
| Arduino Mega | 21 | 20 |
| Leonardo/Micro | 3 | 2 |
Wiring Diagram:

Arduino Code Example:
#include "Wire.h"
#include "Adafruit_Sensor.h"
#include "Adafruit_BME280.h"
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme;
void setup() {
Serial.begin(9600);
if (!bme.begin(0x76)) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
}
void loop() {
printTemperature();
printPressure();
printAltitude();
printHumidity();
delay(1000);
}
void printTemperature() {
Serial.print("Temperature: ");
Serial.print(bme.readTemperature());
Serial.println(" *C");
}
void printPressure() {
Serial.print("Pressure: ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println(" hPa");
}
void printAltitude() {
Serial.print("Approx. Altitude: ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(" m");
}
void printHumidity() {
Serial.print("Humidity: ");
Serial.print(bme.readHumidity());
Serial.println(" %");
}
Technical Specifications:
- Voltage: 1.8V–5V DC
- Humidity Range: 0–100%
- Pressure Range: 300–1100 hPa
- Temperature Range: -40°C to +85°C
- Accuracy: ±1°C (temp), ±3% (humidity), ±1 Pa (pressure)
- Communication: I2C up to 3.4MHz
Comparison with Other Sensors:
| Sensor | Measures | Protocol | Voltage | Temp Range |
|---|---|---|---|---|
| DHT11 | Temp, Humidity | One-wire | 3–5.5V | 0 to 50°C |
| DHT22 | Temp, Humidity | One-wire | 3–6V | -40 to 80°C |
| LM35 | Temperature | Analog | 4–30V | -55 to 150°C |
| DS18B20 | Temperature | One-wire | 3–5.5V | -55 to 125°C |
| BME280 | Temp, Humidity, Pressure | I2C/SPI | 1.8–5V | -40 to 85°C |
| BMP180 | Temp, Pressure | I2C | 1.8–3.6V | 0 to 65°C |