Hello friends! Hope you’re well. In today’s tutorial, we’ll cover a detailed Introduction to BME280. BME280 is a digital environmental pressure, humidity, and temperature sensor mainly designed for mobile applications. This module comes with extremely compact metal-lid LGA packages. It has low power consumption (consumes only 5µA during idle and less than 1mA during measurements) and small dimensions that make it a perfect fit for battery-driven devices such as GPS, mobiles, and smartwatches. The BME280 working protocols are I2C and SPI which consist of separate pinouts. The module contains a built-in LM6260 regulator, allowing you to effortlessly use it with a 3.3V or 5V logic microcontroller or Raspberry Pi.
BME280 is used in a range of industrial projects and electronic devices and provides high performance in all applications where pressure and humidity measurement is required. From gaming controls to weather monitoring to altitude measurement, this module serves the purpose of all with high precision and accuracy. The device comes with many filtering and sampling options that can be customized to make it compatible with the scores of applications.
In today’s post, we will have a look at its pinout, features, specifications, modes, applications, etc. I will also share the information where I have interfaced with other microcontroller.
Let’s get started with an introduction to Introduction to BME280.
Introduction to BME280
- BME280 is a digital device designed to sense pressure, humidity, and temperature. This module consists of extremely concise metal casing.
- This device is used to measure humidity, temperature, and pressure with high accuracy and high linearity in an 8-pin metal-lid 2.5 x 2.5 x 0.93 mm³ LGA package.
- BM230 is developed for low current consumption (3.6 µA), high EMC robustness and long-term stability.
- This device can perfectly work with Bosch Sensortec BMP280 digital pressure sensor.
- As it provides high performance in humidity and pressure measurement, it is used in advanced and emerging applications such as home automation, indoor navigation, health care, GPS, and a low TCO.
- The BME280 humidity sensing part provides a fast response time for context-awareness applications and high accuracy over a wide temperature range. This device can measure humidity with the range of 0 to 100% maintaining an accuracy of ±3%. Know that the maximum measurable humidity of the module reduces at high or low temperatures.
- Its pressure sensing part is an absolute barometric pressure sensor having high accuracy, resolution, and drastically lower noise than the Bosch Sensortec BMP280. Know that the pressure and altitude are related to each other, the reason this device is also used as an altimeter with ±1 meter accuracy. Plus, it can measure pressure ranging from 300 to 1100 hPa maintaining an accuracy of ±1.0 hPa. To maintain 100% accuracy, a temperature range from 0 to 65°C is required.
- Its temperature sensing part has been optimized for the lowest noise and high resolution.
- This sensor is available in both I2C and SPI interfaces and it can be supplied with 1.71 to 3.6 V for sensor supply Vdd and 1.2 to 3.6 V for the interface supply Vddio.
- Whenever the sensor is disabled, current consumption drops to 0.1µA.
- It supports a full suite of operating modes that optimize the device for power consumption, filter performance, and resolution.
BME280 environmental sensor comes with 10 pins but more often only 6 pins are employed at a single time. The pin description of each pin is described below.
The following figure shows the pinout diagram of this module.
If you want to incorporate this module into your relevant project, make sure you thoroughly look at the datasheet of BME280. The characteristics of the device are listed in this datasheet. Click the link below to check the datasheet of BME280.
BME280 Arduino Interfacing
In this section, we’ll explain An Arduino Weather Station project with the BME280 sensor.
The components used in this setting include:
- An Arduino Mega
- A BME280 sensor
- An LCD shield for Arduino
- A power bank
Here, we are using Arduino Mega but Arduino UNO can also be used.
- First, we connect LCD to Arduino. After this, we connect the Vin pin of a sensor with the Arduino 5v output pin. Next, we connect the GND pin of a sensor to the SCL pin of Arduino and the SDA pin of a sensor to the SDA pin of Arduino.
- Know that the module runs at 3.3V. If you’re using an SPI interface, level shifting is required to avoid any damage, however, if you’re running the I2C interface which is a preferred interface to apply, no level shifting is required since it is an open-drain interface carrying 10K pull-up resistors, providing Vcc 3.3V.
- That’s all connected, if we load the code and power up the project we can see the reading from the sensor on the screen. For better understanding let's see a diagram of this project below.
BME280 comes with the following features:
- Get this device in a metal lid LGA package with dimensions of 2.5x 2.5x 0.93 mm³
- The Interface protocols are I²C and SPI
- Supply Voltage is 1.71 to 3.6 V
- The temperature range is -40 to +85°C
- Humidity range is 0-100% real humidity
- The pressure range is 300-1100 hPa
- The humidity sensor and pressure sensor can be independently enabled/disabled
- This module is Register and performance compatible with Bosch Sensortec BMP280 digital pressure sensor
- It is RoHS compliant, halogen-free, MSL1
- It gets a more precise temperature, atmospheric pressure values, humidity, and approximate altitude data fast
- It is Grove compatible and easy to use
- It has a highly abstracted library for building projects quickly
This module comes with three modes named:
- Sleep mode
- Forced mode
- Normal mode
The sleep mode is by default selected when the sensor gets activated. In this mode, no measurements take place and the sensor stays at the lowest power consumption. Plus, all registers can be accessed and you can read the chip-ID and compensation coefficients.
In the forced mode only one measurement takes place. The sensor goes back to the default sleep mode after the measurement is performed. The data registers store the measurement results before the forced mode is selected again for the next measurement. The forced mode is a good fit for the applications that need host-based synchronization and a low sampling rate.
The normal mode consists of automated continuous cycling between the inactive standby period and the active measurement period. Know that the sleep mode current is slightly lower than the standby period current. When you enable the normal mode, the determined measurement results can be gathered from information stored in data registers.
The timing diagram of normal mode is shown below:
In this section, we’ll cover the specifications of BME280 so you can get a hold of what this device projects in terms of electrical, pressure, temperature, and humidity specifications.
A few things to consider before you look out at those specifications:
- All values mentioned in the tables are valid with the full voltage range.
- And min/max values are provided with the temperature range with full accuracy.
- The typical state machine timings and currents values are discovered at 25 °C.
- The state machine min/max values are available with 0 to 65 °C temperature range.
BME280 Electrical Specifications
The following table shows the general electrical specifications.
|Supply Voltage Internal Domains||VDD||Ripple max. 50 mVpp||1.71||1.8||3.6||V|
|Supply Voltage I/O Domain||VDDIO||1.2||1.8||3.6||V|
|Current during humidity measurement||IDDH||Max value at 85 °C||340||µA|
|Current during pressure measurement||IDDP||Max value at - 40 °C||714||µA|
|Current during temperature measurement||IDDT||Max value at 85 °C||350||µA|
|Startup time||Tstartup||Time to first communication after both VDD > 1.58 V and VDDIO > 0.65 V||2||ms|
|Power supply Rejection Ratio||PSRR||Full VDD range||± 0.01 ± 5||% RH/V Pa/V|
|Standby time accuracy||tstandby||±5||±25||%|
Humidity Parameter Specifications
The following table shows the humidity parameter specifications.
|Operating Range||RH||For temperatures < 0 °C and > 60 °C||-40 0||25||85 100||°C % RH|
|Supply Current||IDD.H||1 Hz forced mode, humidity and temperature||1.8||2.8||µA|
|Absolute accuracy tolerance||AH||20...80 % RH, 25 °C, including hysteresis||± 3||% RH|
|Hysteresis||HH||10-90-10 %RH 25 °C||± 1||% RH|
|NonLinearity||NLH||10-90 % RH, 25 °C||1||% RH|
|Response time to Complete 63%||T63%||90-0 or 0-90 % RH, 25 °C||1||s|
|Noise in humidity||NH||Highest oversampling||.02||% RH|
|Long term stability||Hstab||10...90 % RH, 25 °C||0.5||% RH/year|
Pressure Sensor Specifications
The following table shows the pressure sensor specifications.
|Operating Temp. Range||TA||Operational Full accuracy||-40 0||25||+85 +65||°C|
|Operating pressure range||P||Full accuracy||300||1100||hPa|
|Supply Current||IDDLP||1 Hz forced mode, pressure and temperature, lowest power||2.8||4.2||µA|
|Temperature coefficient of offset||TCOP||25... 65 °C, 900 hPa||± 1.5 ± 12.6||Pa/K cm/K|
|Absolute accuracy pressure||Apex AP,full AP||300 . . 1100 hPa -20 . . . 0 °C 300 . . 1100 hPa 0 . . . 65 °C 1100 . . 1250 hPa 25 . . . 40 °C||± 1.7 ± 1 ± 1.5||hPa hPa hPa|
|Relative accuracy pressure VDD = 3.3V||Arel||700 ... 900hPa 25 . . . 40 °C||± .12||hPa|
|Resolution of pressure output data||RP||Highest Oversampling||0.18||Pa|
|Noise in pressure||NP, fullBW NP, filtered||Full bandwidth, highest oversampling Reduced bandwidth, highest oversampling||1.3 11 .2 1.7||Pa cm Pa cm|
|Solder drift||Minimum solder height 50µm||-0.5||+2||hPa|
|Long term stability||Pstab||Per year||±1||hPa|
|Possible sampling rate||fsample_P||Lowest Sampling||157||182||Hz|
Temperature Sensor Specifications
The following table shows the temperature sensor specifications.
|Operating Temp. Range||T||Operational Full accuracy||-40 0||25||+85 +65||°C|
|Supply Current||IDD, T||1 Hz forced mode, Temp. measurement only||1||1100||µA|
|AT,25||25 °C||± 0.5||°C|
|Absolute Accuracy Temperature||AT,full Aext Aext||0 ... 65 °C -20 ... 0 °C -40 ... -20 °C||± 1 ± 1.25 ± 1.5||°C|
|Output Resolution||RT||API output resolution||0.01||°C|
|RMS noise||NT||Lowest Oversampling||0.005||°C|
BME280 Absolute Maximum Ratings
It is important to note that these ratings are available over complete temperature range.
The following table shows the absolute maximum ratings of BME280.
|Voltage at any supply pin||VDD and VDDIO pin||-0.3||4.25||V|
|Voltage at any interface pin||-0.3||VDDIO + 0.3||V|
|Storage Temp.||= 65% RH||-45||+85||°C|
|ESD||HBM, at any pin CDM Machine Model||± 2 ± 500 ± 200||KV V V|
|Condensation||No power supplied||allowed||allowed|
Due to its SPI and I2C compatibility, the BME280 sensor is employed in a range of applications especially weather monitoring and health monitoring. The applications it can be used for include:
- Skin detection, room change detection
- Health monitoring/well-being
- Warning regarding dehydration or heat stroke
- Measurement of lung volume and airflow
- Home automation control
- Control heating, ventilation, air conditioning (HVAC)
- Internet of things
- GPS enhancement (e.g. time-to-first-fix improvement, dead reckoning, slope detection)
- Indoor navigation (change of floor detection, elevator detection)
- Outdoor navigation, leisure, and sports applications
- Weather forecast
- Vertical velocity indication (rise/sink speed)
That was all about the Introduction to BME280. If your mind is brimmed with questions regarding this device, you can ask me in the section below. I’d love to assist you the best way I can. Feel free to share your feedback and suggestions about the content we share, so we keep improving our content and deliver exact as per your needs and expectations. Thank you for reading the article.