objc

drivers_bme280.h
Go to the documentation of this file.
1 
10 #pragma once
11 #include <runtime-hw/hw.h>
12 #include <stdbool.h>
13 #include <stdint.h>
14 
16 // TYPES
17 
22 typedef enum {
30 
35 typedef enum {
42 
47 typedef struct {
48  float temperature;
49  float pressure;
50  float humidity;
52 
57 typedef struct {
59  uint8_t addr;
60  uint8_t _reserved[64];
62 
64 // LIFECYCLE
65 
79  uint8_t addr_offset);
80 
97  uint8_t addr_offset,
101  driver_bme280_filter_t filter);
102 
111 
119 
121 // CONFIGURATION
122 
133 void driver_bme280_set_temp_offset(driver_bme280_t *driver, float offset);
134 
136 // DATA ACQUISITION
137 
151  driver_bme280_data_t *data);
152 
154 // UTILITY FUNCTIONS
155 
167  float sea_level_pressure);
168 
178  const driver_bme280_data_t *data, float altitude);
float humidity
Relative humidity in %.
driver_bme280_oversampling_t
BME280 oversampling settings.
hw_i2c_t i2c
I2C interface.
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)...
BME280 measurement data.
Filter coefficient 4.
bool driver_bme280_valid(driver_bme280_t *driver)
Check if driver instance is valid.
Filter coefficient 2.
float pressure
Pressure in Pa.
uint8_t addr
I2C address (0x76 or 0x77)
void driver_bme280_finalize(driver_bme280_t *driver)
Finalize and power down BME280.
float driver_bme280_calculate_sea_level_pressure(const driver_bme280_data_t *data, float altitude)
Calculate sea level pressure from altitude.
Filter coefficient 8.
Hardware interface abstraction layer.
I2C adapter.
Definition: i2c.h:28
float temperature
Temperature in °C.
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 oversa...
No oversampling (output set to 0)
BME280 driver instance.
Filter coefficient 16.
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 of...
driver_bme280_filter_t
BME280 IIR filter coefficients.
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 filt...
float driver_bme280_calculate_altitude(const driver_bme280_data_t *data, float sea_level_pressure)
Calculate altitude from pressureUses the international barometric formula.