upm  1.3.0
Sensor/Actuator repository for libmraa (v1.7.0)
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Member Functions
BME280 Class Reference

API for the BME280 Digital Humidity, Pressure, and Temperature Sensor. More...

Detailed Description

The BME280 is as combined digital humidity, pressure and temperature sensor based on proven sensing principles. The sensor module is housed in an extremely compact metal-lid LGA package with a footprint of only 2.5 * 2.5 mm2 with a height of 0.93 mm. Its small dimensions and its low power consumption allow the implementation in battery driven devices such as handsets, GPS modules or watches. The BME280 is register and performance compatible to the Bosch Sensortec BMP280 digital pressure sensor.

// Instantiate a BME280 instance using default i2c bus and address
upm::BME280 *sensor = new upm::BME280();
// For SPI, bus 0, you would pass -1 as the address, and a valid pin for CS:
// BME280(0, -1, 10);
while (shouldRun)
// update our values from the sensor
// we show both C and F for temperature
cout << "Compensation Temperature: " << sensor->getTemperature()
<< " C / " << sensor->getTemperature(true) << " F"
<< endl;
cout << "Pressure: " << sensor->getPressure() << " Pa" << endl;
cout << "Computed Altitude: " << sensor->getAltitude() << " m" << endl;
cout << "Humidity: " << sensor->getHumidity() << " %RH" << endl;
cout << endl;

Public Member Functions

 BME280 (int bus=BME280_DEFAULT_I2C_BUS, int addr=BME280_DEFAULT_ADDR, int cs=-1)
virtual ~BME280 ()
float getHumidity ()
void setOversampleRateHumidity (BME280_OSRS_H_T rate)
const char * getModuleName ()
int getHumidityRelative ()
- Public Member Functions inherited from BMP280
 BMP280 (int bus=BMP280_DEFAULT_I2C_BUS, int addr=BMP280_DEFAULT_ADDR, int cs=-1)
virtual ~BMP280 ()
virtual void update ()
uint8_t getChipID ()
void reset ()
float getTemperature (bool fahrenheit=false)
float getPressure ()
void setSeaLevelPreassure (float seaLevelhPA=1013.25)
float getAltitude ()
virtual void setUsageMode (BMP280_USAGE_MODE_T mode)
void setOversampleRateTemperature (BMP280_OSRS_T_T rate)
void setOversampleRatePressure (BMP280_OSRS_P_T rate)
void setTimerStandby (BMP280_T_SB_T tsb)
void setFilter (BMP280_FILTER_T filter)
void setMeasureMode (BMP280_MODES_T mode)
const char * getModuleName ()
int getTemperatureCelsius ()
int getPressurePa ()

Additional Inherited Members

- Protected Member Functions inherited from BMP280
uint8_t getStatus ()
uint8_t readReg (uint8_t reg)
int readRegs (uint8_t reg, uint8_t *buffer, int len)
void writeReg (uint8_t reg, uint8_t val)
- Protected Attributes inherited from BMP280
bmp280_context m_bmp280

Constructor & Destructor Documentation

BME280 ( int  bus = BME280_DEFAULT_I2C_BUS,
int  addr = BME280_DEFAULT_ADDR,
int  cs = -1 

BME280 constructor.

This driver supports both the BMP280 and the BME280. The BME280 adds a humidity sensor. The device type is detected automatically by querying the chip id register.

This device can support both I2C and SPI. For SPI, set the addr to -1, and specify a positive integer representing the Chip Select (CS) pin for the cs argument. If you are using a hardware CS pin, then you can connect the proper pin to the hardware CS pin on your MCU and supply -1 for cs. The default operating mode is I2C.

busI2C or SPI bus to use.
addrThe I2C address for this device. Use -1 for SPI.
csThe gpio pin to use for the SPI Chip Select. Use -1 for I2C, or for SPI with a hardware controlled pin.
std::runtime_erroron failure.
~BME280 ( )

BME280 Destructor.

Member Function Documentation

float getHumidity ( void  )

Return the current measured relative humidity. update() must have been called prior to calling this method. If the device is a bmp280 rather than a bme280, this method will always return 0.

The relative humidity in percent.

Here is the call graph for this function:

void setOversampleRateHumidity ( BME280_OSRS_H_T  rate)

Set the humidity sensor oversampling parameter. See the data sheet for details. This value can be automatically set to a suitable value by using one of the predefined modes for setUsageMode().

rateOne of the OSRS_H_T values.

Here is the call graph for this function:

const char* getModuleName ( )

Returns name of module. This is the string in library name after libupm_

name of module

Implements IModuleStatus.

Inheritance diagram for BME280:
Inheritance graph
Collaboration diagram for BME280:
Collaboration graph

The documentation for this class was generated from the following files: