26 #include <Adafruit_I2CDevice.h> 27 #include <Adafruit_SPIDevice.h> 28 #include <Adafruit_Sensor.h> 33 #define BME280_ADDRESS (0x77) // Primary I2C Address 37 #define BME280_ADDRESS_ALTERNATE (0x76) // Alternate Address 43 BME280_REGISTER_DIG_T1 = 0x88,
44 BME280_REGISTER_DIG_T2 = 0x8A,
45 BME280_REGISTER_DIG_T3 = 0x8C,
47 BME280_REGISTER_DIG_P1 = 0x8E,
48 BME280_REGISTER_DIG_P2 = 0x90,
49 BME280_REGISTER_DIG_P3 = 0x92,
50 BME280_REGISTER_DIG_P4 = 0x94,
51 BME280_REGISTER_DIG_P5 = 0x96,
52 BME280_REGISTER_DIG_P6 = 0x98,
53 BME280_REGISTER_DIG_P7 = 0x9A,
54 BME280_REGISTER_DIG_P8 = 0x9C,
55 BME280_REGISTER_DIG_P9 = 0x9E,
57 BME280_REGISTER_DIG_H1 = 0xA1,
58 BME280_REGISTER_DIG_H2 = 0xE1,
59 BME280_REGISTER_DIG_H3 = 0xE3,
60 BME280_REGISTER_DIG_H4 = 0xE4,
61 BME280_REGISTER_DIG_H5 = 0xE5,
62 BME280_REGISTER_DIG_H6 = 0xE7,
64 BME280_REGISTER_CHIPID = 0xD0,
65 BME280_REGISTER_VERSION = 0xD1,
66 BME280_REGISTER_SOFTRESET = 0xE0,
68 BME280_REGISTER_CAL26 = 0xE1,
70 BME280_REGISTER_CONTROLHUMID = 0xF2,
71 BME280_REGISTER_STATUS = 0XF3,
72 BME280_REGISTER_CONTROL = 0xF4,
73 BME280_REGISTER_CONFIG = 0xF5,
74 BME280_REGISTER_PRESSUREDATA = 0xF7,
75 BME280_REGISTER_TEMPDATA = 0xFA,
76 BME280_REGISTER_HUMIDDATA = 0xFD
165 SAMPLING_NONE = 0b000,
203 STANDBY_MS_0_5 = 0b000,
204 STANDBY_MS_10 = 0b110,
205 STANDBY_MS_20 = 0b111,
206 STANDBY_MS_62_5 = 0b001,
207 STANDBY_MS_125 = 0b010,
208 STANDBY_MS_250 = 0b011,
209 STANDBY_MS_500 = 0b100,
210 STANDBY_MS_1000 = 0b101
216 Adafruit_BME280(int8_t cspin, int8_t mosipin, int8_t misopin, int8_t sckpin);
218 bool begin(uint8_t addr =
BME280_ADDRESS, TwoWire *theWire = &Wire);
228 bool takeForcedMeasurement(
void);
229 float readTemperature(
void);
230 float readPressure(
void);
231 float readHumidity(
void);
233 float readAltitude(
float seaLevel);
234 float seaLevelForAltitude(
float altitude,
float pressure);
235 uint32_t sensorID(
void);
237 float getTemperatureCompensation(
void);
238 void setTemperatureCompensation(
float);
240 Adafruit_Sensor *getTemperatureSensor(
void);
241 Adafruit_Sensor *getPressureSensor(
void);
242 Adafruit_Sensor *getHumiditySensor(
void);
245 Adafruit_I2CDevice *i2c_dev = NULL;
246 Adafruit_SPIDevice *spi_dev = NULL;
257 void readCoefficients(
void);
258 bool isReadingCalibration(
void);
260 void write8(byte reg, byte value);
261 uint8_t read8(byte reg);
262 uint16_t read16(byte reg);
263 uint32_t read24(byte reg);
264 int16_t readS16(byte reg);
265 uint16_t read16_LE(byte reg);
266 int16_t readS16_LE(byte reg);
274 int32_t t_fine_adjust = 0;
309 unsigned int get() {
return (t_sb << 5) | (filter << 2) | spi3w_en; }
344 unsigned int get() {
return (osrs_t << 5) | (osrs_p << 2) | mode; }
367 unsigned int get() {
return (osrs_h); }
int16_t dig_H4
humidity compensation value
Definition: Adafruit_BME280.h:102
unsigned int none
unused - don't set
Definition: Adafruit_BME280.h:355
unsigned int filter
filter settings
Definition: Adafruit_BME280.h:302
int16_t dig_P6
pressure compensation value
Definition: Adafruit_BME280.h:94
unsigned int none
unused - don't set
Definition: Adafruit_BME280.h:305
Adafruit_BME280_Pressure(Adafruit_BME280 *parent)
Create an Adafruit_Sensor compatible object for the pressure sensor.
Definition: Adafruit_BME280.h:129
ctrl_meas register
Definition: Adafruit_BME280.h:318
int16_t dig_H2
humidity compensation value
Definition: Adafruit_BME280.h:100
Definition: Adafruit_BME280.h:111
Class that stores state and functions for interacting with BME280 IC.
Definition: Adafruit_BME280.h:157
Adafruit_BME280_Temp(Adafruit_BME280 *parent)
Create an Adafruit_Sensor compatible object for the temp sensor.
Definition: Adafruit_BME280.h:115
int16_t dig_P2
pressure compensation value
Definition: Adafruit_BME280.h:90
int16_t dig_P8
pressure compensation value
Definition: Adafruit_BME280.h:96
int32_t _sensorID
ID of the BME Sensor.
Definition: Adafruit_BME280.h:269
Adafruit_BME280_Humidity(Adafruit_BME280 *parent)
Create an Adafruit_Sensor compatible object for the humidity sensor.
Definition: Adafruit_BME280.h:143
bme280_calib_data _bme280_calib
here calibration data is stored
Definition: Adafruit_BME280.h:277
bool getEvent(sensors_event_t *)
Gets the temperature as a standard sensor event.
Definition: Adafruit_BME280.cpp:553
int16_t dig_T3
temperature compensation value
Definition: Adafruit_BME280.h:87
unsigned int osrs_p
pressure oversampling
Definition: Adafruit_BME280.h:335
int16_t dig_T2
temperature compensation value
Definition: Adafruit_BME280.h:86
int16_t dig_P3
pressure compensation value
Definition: Adafruit_BME280.h:91
config _configReg
config register object
Definition: Adafruit_BME280.h:311
sensor_filter
filter values
Definition: Adafruit_BME280.h:189
ctrl_hum register
Definition: Adafruit_BME280.h:353
int8_t dig_H6
humidity compensation value
Definition: Adafruit_BME280.h:104
Definition: Adafruit_BME280.h:125
int16_t dig_H5
humidity compensation value
Definition: Adafruit_BME280.h:103
uint8_t dig_H1
humidity compensation value
Definition: Adafruit_BME280.h:99
int16_t dig_P4
pressure compensation value
Definition: Adafruit_BME280.h:92
config register
Definition: Adafruit_BME280.h:284
unsigned int osrs_h
humidity oversampling
Definition: Adafruit_BME280.h:364
int16_t dig_P5
pressure compensation value
Definition: Adafruit_BME280.h:93
uint16_t dig_P1
pressure compensation value
Definition: Adafruit_BME280.h:89
ctrl_hum _humReg
hum register object
Definition: Adafruit_BME280.h:369
unsigned int spi3w_en
unused - don't set
Definition: Adafruit_BME280.h:306
unsigned int t_sb
inactive duration (standby time) in normal mode
Definition: Adafruit_BME280.h:294
uint8_t dig_H3
humidity compensation value
Definition: Adafruit_BME280.h:101
unsigned int osrs_t
temperature oversampling
Definition: Adafruit_BME280.h:326
Definition: Adafruit_BME280.h:139
sensor_sampling
sampling rates
Definition: Adafruit_BME280.h:164
unsigned int mode
device mode
Definition: Adafruit_BME280.h:341
uint16_t dig_T1
temperature compensation value
Definition: Adafruit_BME280.h:85
int16_t dig_P7
pressure compensation value
Definition: Adafruit_BME280.h:95
int16_t dig_P9
pressure compensation value
Definition: Adafruit_BME280.h:97
#define BME280_ADDRESS
default I2C address
Definition: Adafruit_BME280.h:33
int32_t t_fine
Definition: Adafruit_BME280.h:270
uint8_t _i2caddr
I2C addr for the TwoWire interface.
Definition: Adafruit_BME280.h:268
void getSensor(sensor_t *)
Gets the sensor_t data for the BME280's temperature sensor.
Definition: Adafruit_BME280.cpp:530
standby_duration
standby duration in ms
Definition: Adafruit_BME280.h:202
ctrl_meas _measReg
measurement register object
Definition: Adafruit_BME280.h:346
sensor_mode
power modes
Definition: Adafruit_BME280.h:178
calibration data
Definition: Adafruit_BME280.h:84