Standalone driver for the Bosch BME280 environmental sensor. More...
![]() |
Data Structures | |
struct | driver_bme280_data_t |
BME280 measurement data. More... | |
struct | driver_bme280_t |
BME280 driver instance. More... | |
Enumerations | |
enum | driver_bme280_oversampling_t { DRIVER_BME280_OVERSAMPLING_NONE = 0, DRIVER_BME280_OVERSAMPLING_1X = 1, DRIVER_BME280_OVERSAMPLING_2X = 2, DRIVER_BME280_OVERSAMPLING_4X = 3, DRIVER_BME280_OVERSAMPLING_8X = 4, DRIVER_BME280_OVERSAMPLING_16X = 5 } |
BME280 oversampling settings. More... | |
enum | driver_bme280_filter_t { DRIVER_BME280_FILTER_OFF = 0, DRIVER_BME280_FILTER_2 = 1, DRIVER_BME280_FILTER_4 = 2, DRIVER_BME280_FILTER_8 = 3, DRIVER_BME280_FILTER_16 = 4 } |
BME280 IIR filter coefficients. More... | |
Functions | |
bool | driver_bme280_init_i2c (driver_bme280_t *driver, hw_i2c_t *i2c, uint8_t addr_offset) |
Initialize BME280 with I2C interface and default settingsInitializes with default settings: 1x oversampling for all sensors, filter off. More... | |
bool | driver_bme280_init_i2c_with_config (driver_bme280_t *driver, hw_i2c_t *i2c, uint8_t addr_offset, driver_bme280_oversampling_t temp_os, driver_bme280_oversampling_t press_os, driver_bme280_oversampling_t hum_os, driver_bme280_filter_t filter) |
Initialize BME280 with I2C interface and custom settingsAllows configuration of oversampling and filter settings. More... | |
bool | driver_bme280_valid (driver_bme280_t *driver) |
Check if driver instance is valid. More... | |
void | driver_bme280_finalize (driver_bme280_t *driver) |
Finalize and power down BME280. More... | |
void | driver_bme280_set_temp_offset (driver_bme280_t *driver, float offset) |
Set temperature offset for calibrationUse this to compensate for self-heating or other temperature offsets. More... | |
bool | driver_bme280_read_data (driver_bme280_t *driver, driver_bme280_data_t *data) |
Read all sensor data (temperature, pressure, humidity)Triggers a forced measurement (single shot), waits for completion, and reads all three sensor values in a single transaction. More... | |
float | driver_bme280_calculate_altitude (const driver_bme280_data_t *data, float sea_level_pressure) |
Calculate altitude from pressureUses the international barometric formula. More... | |
float | driver_bme280_calculate_sea_level_pressure (const driver_bme280_data_t *data, float altitude) |
Calculate sea level pressure from altitude. More... | |
Standalone driver for the Bosch BME280 environmental sensor.
Provides temperature, pressure, and humidity measurements.
BME280 IIR filter coefficients.
Definition at line 35 of file drivers_bme280.h.
BME280 oversampling settings.
Definition at line 22 of file drivers_bme280.h.
float driver_bme280_calculate_altitude | ( | const driver_bme280_data_t * | data, |
float | sea_level_pressure | ||
) |
Calculate altitude from pressureUses the international barometric formula.
data | Pointer to measurement data containing pressure |
sea_level_pressure | Sea level pressure in Pa (default: 101325 Pa) |
float driver_bme280_calculate_sea_level_pressure | ( | const driver_bme280_data_t * | data, |
float | altitude | ||
) |
Calculate sea level pressure from altitude.
data | Pointer to measurement data containing pressure |
altitude | Current altitude in meters |
void driver_bme280_finalize | ( | driver_bme280_t * | driver | ) |
Finalize and power down BME280.
driver | Pointer to driver structure |
bool driver_bme280_init_i2c | ( | driver_bme280_t * | driver, |
hw_i2c_t * | i2c, | ||
uint8_t | addr_offset | ||
) |
Initialize BME280 with I2C interface and default settingsInitializes with default settings: 1x oversampling for all sensors, filter off.
driver | Pointer to driver structure |
i2c | Pointer to initialized I2C interface |
addr_offset | Address offset (0 for 0x76, 1 for 0x77) |
bool driver_bme280_init_i2c_with_config | ( | driver_bme280_t * | driver, |
hw_i2c_t * | i2c, | ||
uint8_t | addr_offset, | ||
driver_bme280_oversampling_t | temp_os, | ||
driver_bme280_oversampling_t | press_os, | ||
driver_bme280_oversampling_t | hum_os, | ||
driver_bme280_filter_t | filter | ||
) |
Initialize BME280 with I2C interface and custom settingsAllows configuration of oversampling and filter settings.
driver | Pointer to driver structure |
i2c | Pointer to initialized I2C interface |
addr_offset | Address offset (0 for 0x76, 1 for 0x77) |
temp_os | Temperature oversampling |
press_os | Pressure oversampling |
hum_os | Humidity oversampling |
filter | IIR filter coefficient |
bool driver_bme280_read_data | ( | driver_bme280_t * | driver, |
driver_bme280_data_t * | data | ||
) |
Read all sensor data (temperature, pressure, humidity)Triggers a forced measurement (single shot), waits for completion, and reads all three sensor values in a single transaction.
The sensor returns to sleep mode after the measurement.
driver | Pointer to driver structure |
data | Pointer to structure to receive measurement data |
void driver_bme280_set_temp_offset | ( | driver_bme280_t * | driver, |
float | offset | ||
) |
Set temperature offset for calibrationUse this to compensate for self-heating or other temperature offsets.
For example, if the sensor reads 33°C but ambient is 22°C, use -11°C offset.
driver | Pointer to driver structure |
offset | Temperature offset in °C (can be negative) |
bool driver_bme280_valid | ( | driver_bme280_t * | driver | ) |
Check if driver instance is valid.
driver | Pointer to driver structure |