BMP280 is a high precision sensor module that measures the atmospheric pressure and temperature in air. Not only this, but it can also measure humidity in the air. This six-pin module supports both SPI and I2C interfaces. It uses a BMP280 barometric pressure sensor. These sensors are pre-calibrated, unlike other sensors. Therefore, they start measuring temperature, pressure, and humidity instantly after powering them. You don’t need extra components for its calibration or operation.
- Pin1: Vcc: This is the power pin. Connect 3.3V DC supply at this pin.
- Pin2: GND: Ground pin
- Pin3: SCL: This is the serial clock pin for the I2C interface.
- Pin4: SDA: This is the serial data pin for the I2C interface.
- Pin5: CSB: The chip select pin selects the I2C or SPI interface. It selects the SPI interface when provided with low signal or grounded. On applying a HIGH signal of 3.3V, this pin will select the I2C interface.
- Pin 6: SDO: It is the serial data output pin that sends out the output value.
- It requires 3.3V power for operation.
- It does not possess any onboard voltage regulator or level shifters.
- The board uses the BMP280 sensor which is an upgraded version of BMP085 or BMP180 or BMP183.
- It measures barometric pressure and temperature with an accuracy of ±1 hPa and ±1.0°C.
- The peak current of module is 1.12mA.
- The temperature required for its operation lies between -40 °C to 85 °C.
- The pressure range is from 300 hPa to 1100 hPa which is equivalent to 9000 to -500m above sea level.
- It supports I²C (up to 3.4 MHz) and SPI digital interfaces (up to 10 MHz).
- The size of module is 11.5mm * 15mm.
Where to use it?
As already mentioned in the features section, this module consists of both IC and SPI. Due to this feature, you can interface or connect this sensor with Arduino and any other micro controller using either I2C or SPI interface. It is used in weather sensing applications. This low-cost sensor provides precise values of barometric pressure and temperature with ±1 hPa and ±1.0°C accuracy. As it can measure pressure which changes with altitude, therefore, it can also measure altitude. You can use the BMP280 module as an altimeter also which gives readings with an accuracy of ±1 meter.
How to use BMP280?
Connect the power supply pins Vcc and GND to 3.3 volts and ground of a circuit. Now, you need to select the digital interface. For I²C, connect chip select pin (CSB) to Vcc otherwise connect it to the ground or leave it unconnected. Set the I²C address. If you want to set 0x77 address, connect the SDO pin to Vcc. To set 0x76 address, leave the pin unconnected. This module does not contain any onboard voltage regulator or a level shifter. Therefore, for connecting it to devices whose operating voltage is 5V or any voltage other than 3.3V, you need a level shifter and voltage regulator.
Interfacing With Arduino
We have used a 2N7000 bidirectional level shifter module for connecting the 3.3V module to a 5V Arduino. This transistor is performing a function of level shifting. It performs a bidirectional conversion of 3.3V logic of sensor module to 5V and 5V logic of Arduino to 3.3V. Connect the Vcc pin of a module with a 3.3V pin or Arduino.
For I²C interfacing, connect
- pin1 to 3.3V pin of Arduino
- pin2 to the ground pin of Arduino
- pin3 to analog pin 5 or SCL pin using level shifter circuit
- Pin4 to analog pin 4 or SDA pin using level shifter circuit
- Pin5 is left unconnected
- Pin6 to pin1 of sensor module
For SDO and SCL pin use level shifter circuit or any other module performing conversion between the two voltages. Power the module from 3.3 V pin of Arduino.
Connect the sensor to the SPI pins on the ICSP header of Arduino as follows:
- Pin3 to Arduino’s pin13
- Pin6 to MISO pin12 and MOSI pin11 of Arduino
- Pin5 to Arduino’s pin10.
Connections for pin 1 and 2 are the same.