Generally, pressure, humidity, and ambient temperature must be detected frequently within embedded products. So if there is any sensor that has these three sensors, it will be very convenient. So BME280 IC from Bosch’s fulfills all these requirements. This is a combined pressure, temperature, and digital humidity sensor, located within a remarkably small metal-lid LGA box. So its compact size & low power utilization provide a benefit over other types of battery-powered gadgets like GPS modules, cell phones, watches, etc. Thus, this sensor performs very well in all applications that measure humidity & pressure. This article discusses the BME280 IC, pinout, interfacing, and its applications.
What is BME280 IC?
The BME280 is a compact and small-sized humidity sensor that measures humidity, pressure, and temperature. This sensor is housed in a very compact metal-lid LGA package. So this is particularly designed for wearables and mobile applications wherever low power consumption and size are key design parameters in battery-driven devices like GPS modules, watch handsets, etc.
BME280 sensor has high accuracy and fast response time over a broad range of temperatures. Thus, this sensor provides a very quick response time and also supports performance requirements mainly for emerging applications like high accuracy and context awareness over a wide range of temperatures. The BME280 sensor supports a complete set of operating modes to provide the flexibility to enhance the device for resolution, filter performance & power consumption.
The sensor provides both I2C and SPI interfaces which can be supplied from 1.71 to 3.6 V for the VCC supply of sensor & 1.2 to 3.6 Volts for the interface supply. So measurements can be activated by the host and performed within normal intervals. Once this sensor is disabled then current consumption can be dropped to 0.1 pA.
How BME280 IC Work?
The BME280 sensor works by measuring humidity, temperature, and pressure with integrated sensors like humidity sensors, pressure sensors, temperature sensors, and communication interfaces. The humidity sensor in this IC measures humidity in the range of 0% to 100%. The pressure sensor measures atmospheric pressure that ranges from 300 hPa to 1100 hPa. So this data can be utilized to guess altitude. So the temperature sensor of this IC measures ambient temperature that ranges from -40°C to +85°C.
The BME280 IC utilizes the SPI or I2C protocol to communicate with different microcontrollers which makes it easy to incorporate with different devices such as the Arduino, ESP32 & Raspberry Pi. Thus, the BME280 sensor is designed mainly for small size and low power consumption which makes it suitable to utilize in watches, mobile devices, battery-powered devices, etc.
BMIE280 C Pin Configuration:
The pin configuration of the BME280 IC is shown below. So this IC includes 8 pins which are discussed below.

BME280 IC Pin Configuration
- Pins -1 & 7 (GND): These are the ground pins of this IC.
- Pin-2 (CSB): It is a chip select pin, so this pin must be dropped low to begin an SPI transaction. This is an input to the IC.
- Pin-3 (SDI): This is a serial data interface pin, so the data is transmitted from your processor to the IC.
- Pin-4 (SCK): It is a serial clock interface pin and is an input to the IC.
- Pin-5 (SDO): It is a serial data output pin thus the data is transmitted from the IC to your processor.
- Pin-6 (VDDIO): It is a digital or interface supply pin of the IC so the interface voltage ranges from.2 V to 3.6 V.
- Pin-8 (VDD): It is an analog voltage supply pin of the IC.
Features & Specifications:
The features and specifications of BME280 IC include the following.
- BME280 is a digital sensor IC.
- This sensor includes 8 pins.
- This IC is combined with digital humidity, temperature, and pressure sensors depending on verified sensing principles.
- It is available in a compact metal-lid LGA package.
- It is designed for mobile applications.
- This IC supports digital interfaces like I2C & SPI.
- Its voltage supply ranges from 1.71V to 3.6Volts.
- Interface voltage ranges from 1.2 V to 3.6 Volts.
- Current consumption is 1.8uA at 1Hz temperature and humidity.
- It is RoHS-compliant and halogen-free.
- The humidity sensor & pressure sensor can be enabled or disabled independently.
- The average current consumption within sleep mode is 0.1 μA.
- Response time is 1 s
- Accuracy tolerance is ± 3 %.
- Hysteresis is ≤ 2 % relative humidity
- RMS Noise is 0.2 Pa.
- Its sensitivity error is ± 0.25 %.
- Its temperature coefficient offset is ±1.5 Pa/K.
- Operating temperature ranges from -40 to +85 C.
Equivalents & Alternatives:
The equivalent to BME280 IC is ASAIR AHT20, HTU21D,SHT31, BME680, etc. So alternative BME280 ICs are; DHT11, LM35, DS18B20, DHT22, BMP180, etc.
BME280 IC Interfacing with Arduino
The BME280 is a precision sensor from Bosch utilized in a myriad of applications which includes weather monitoring, altitude measurement, and to gaming controls. So this sensor is very simple to use and is pre-calibrated which needs no extra components, thus you can start measuring temperature, relative humidity, and altitude in no time & barometric pressure.
Thus, this module core is the next-generation digital temperature, pressure, and humidity sensor. It is the successor to sensors like the BMP180, BMP183, BMP085, etc.
Working
This module has a 3.3V onboard LM6206 regulator IC & I2C voltage level translator, thus you can utilize it with a 5V or 3.3V logic microcontroller such as Arduino.
The BME280 module consumes < 1mA in measurements and 5μA only when it is idle. So this can be utilized within battery-powered devices such as watches, GPS modules, and handsets due to its low power consumption.
The BME280 communicates through I2C and simply supports two I2C addresses, 0x77 & 0x76 by allowing up to two sensors to be utilized on a similar bus. So the default I2C address of this module is 0x76HEX which can be changed easily to 0x77HEX with a given solder jumper.
The BME280 IC interfacing with Arduino is shown below. So the required components for this interfacing include; a BME280 IC, Arduino board, and connecting wires. The connections of this interfacing follow as;
- The VCC pin of the BME280 module is connected to the 5V output of Arduino.
- The GND pin of this module is connected to the GND pin of Arduino.
- The SCL pin of the BME280 module is connected to the SCL (or) A5 pin of Arduino.
- The SDA pin of the BME280 module is connected to the SDA (or) A4 pin of Arduino.

BME280 IC Interfacing with Arduino
Code
The required code for BME280 IC interfacing with Arduino is shown below.
#include <Wire.h> <SPI.h>
#include <Adafruit_Sensor.h> <Adafruit_BME280.h>
#define BME_SCK 13, BME_MISO 12, BME_MOSI 11, BME_CS 10
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI
unsigned long delayTime;
void setup() {
Serial.begin(9600);
Serial.println(F(“BME280 test”));
bool status;
// default settings
// (you can also pass in a Wire library object like &Wire2)
status = bme.begin();
if (!status) {
Serial.println(“Could not find a valid BME280 sensor, check wiring!”);
while (1);
}
Serial.println(“– Default Test –“);
delayTime = 1000;
Serial.println();
}
void loop() {
printValues();
delay(delayTime);
}
void printValues() {
Serial.print(“Temperature = “);
Serial.print(bme.readTemperature());
Serial.println(” *C”);
// Convert temperature to Fahrenheit
/*Serial.print(“Temperature = “);
Serial.print(1.8 * bme.readTemperature() + 32);
Serial.println(” *F”);*/
Serial.print(“Pressure = “);
Serial.print(bme.readPressure() / 100.0F);
Serial.println(” hPa”);
Serial.print(“Approx. Altitude = “);
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(” m”);
Serial.print(“Humidity = “);
Serial.print(bme.readHumidity());
Serial.println(” %”);
Serial.println();
}
Working
The above code starts by using the required libraries like the wire library to utilize I2C, the Adafruit_Sensor & Adafruit_BME280 libraries for interfacing with the sensor.
In the above code, I2C communication is used by defining the commented SPI pins.
A variable is created like SEALEVELPRESSURE_HPA which saves the force at the sea level within hectopascal. So this variable is utilized to guess the altitude for a specified pressure by evaluating it through the sea level force. Thus, this example utilizes the default value, however for more precise results it replaces the value by the current sea level force at your location.
So this example utilizes an I2C communication protocol but needs to create bme or an Adafruit_BME280 object.
In the setup () function, start a serial communication & the sensor is initialized.
Thus, the printValues() function in the loop(), reads the sensor values & prints the final results in the Serial Monitor.
Reading pressure, temperature, and humidity, guess altitude is as simple.
Upload the above code to your Arduino board and open the serial monitor at 9600 a baud rate.
Thus, the BME280 sensor provides a very simple and low-cost method to obtain temperature, humidity, and pressure readings. This sensor communicates through I2C communication protocol, It means the wiring is simple, so you just need to connect the BME280 sensor to the Arduino I2C pins.
So the sensor readings can be obtained by reading the code. Thus, all you need to do is utilize the readHumidity(), readTemperature() and readPressure() methods. Here, altitude can also be estimated with the readAltitude() technique.
Difference between BME280 and BMP280 Sensors
The difference between BME280 and BMP280 sensors includes the following.
BME280 | BMP280 |
BMP280 IC is a precision environmental sensor that measures temperature, humidity, and air pressure. | BMP280 is a barometric pressure sensor that measures only air pressure & temperature. |
BME280 is very expensive. | It is not expensive than BMP280. |
It can use either SPI or I2C communication protocol. | This sensor uses the SPI and I2C communication protocols to communicate with a digital device or a microcontroller. |
This sensor size is 2.5 x 2.5 x 0.93 mm | This sensor size is 2.0 x 2.5 x 0.95 mm, |
It consumes 3.6 μA power at a 1 Hz sampling rate. | It consumes 2.7 μA power at a 1 Hz sampling rate |
Advantages & Disadvantages
The advantages of BME280 IC include the following.
- BME280 IC combines high accuracy and high linearity sensors, so these are completely feasible for long-term stability, high EMC robustness & low current consumption.
- This sensor is very simple to use, needs no additional components, and comes pre-calibrated.
- It is an incorporated environmental sensor, thus developed for mobile applications wherever low power consumption and size are key design constraints.
- It is a compact sensor and provides precise environmental data.
- This sensor has a small form factor, high precision including stability and low power consumption.
The disadvantages of BME280 IC include the following.
- The BME280 sensor does not provide the actual temperature but it tracks the temperature changes.
- These ICs don’t come calibrated from the plant and will generally provide a higher temperature.
- This module interfacing with a 5V Arduino UNO will need an extra logic level shifter circuit.
- Supplying >~3.6V can damage the IC permanently.
- It is more expensive.
Applications
The applications of BME280 IC include the following.
- The BME280 sensor can be used in different applications like weather monitoring, Indoor air quality monitoring, smart agriculture, greenhouse monitoring, gaming controls, altitude measurement, etc.
- This sensor measures humidity, temperature & barometric pressure. So this sensor can also be utilized to guess altitude due to changes in pressure with altitude.
- This IC is used in context awareness, fitness monitoring, warning regarding high temperatures or dryness, etc.
- It is used to measure airflow or volume, home automation control, Internet of Things, etc.
- This is used to control heating, air conditioning ventilation, etc.
- This sensor is used in GPS enhancement, weather forecasting, indoor navigation, vertical velocity indication, outdoor navigation, and sports & leisure applications.
Please refer to this link for the BME280 IC Datasheet.
Thus, this is an overview of BME280 IC, pinout, features, specifications, interfacing, pros, cons, and applications. So, it is a multi-functional sensor, used to measure humidity, pressure & temperature. This sensor is mainly designed for low power consumption and is suitable for wearable devices due to its small size. Thus, here is a question for you, what is DHT11?