196 bool begin(
const uint32_t i2cSpeed);
197 bool begin(
const uint8_t chipSelect);
198 bool begin(
const uint8_t chipSelect,
const uint8_t mosi,
const uint8_t miso,
const uint8_t sck);
199 uint8_t
mode(
const uint8_t operatingMode = UINT8_MAX);
201 uint8_t
getOversampling(
const uint8_t sensor,
const bool actual =
false);
202 uint8_t
iirFilter(
const uint8_t iirFilterSetting = UINT8_MAX);
203 uint8_t
inactiveTime(
const uint8_t inactiveTimeSetting = UINT8_MAX);
205 void getSensorData(int32_t &temp, int32_t &hum, int32_t &press);
209 uint8_t
readByte(
const uint8_t addr);
234 template <
typename T> uint8_t &
getData(
const uint8_t addr, T &value)
244 uint8_t *bytePtr = (uint8_t *)&value;
245 static uint8_t structSize =
sizeof(T);
252 structSize = Wire.available();
253 for (uint8_t i = 0; i < structSize; i++)
254 *bytePtr++ = Wire.read();
260 SPI.beginTransaction(SPISettings(
SPI_HERTZ, MSBFIRST, SPI_MODE0));
261 digitalWrite(
_cs, LOW);
262 SPI.transfer(addr | 0x80);
263 for (uint8_t i = 0; i < structSize; i++)
264 *bytePtr++ = SPI.transfer(0);
265 digitalWrite(
_cs, HIGH);
266 SPI.endTransaction();
272 digitalWrite(
_cs, LOW);
273 for (j = 7; j >= 0; j--)
275 digitalWrite(
_sck, LOW);
276 digitalWrite(
_mosi, ((addr) | 0x80) & (1 << j));
277 digitalWrite(
_sck, HIGH);
279 for (i = 0; i < structSize; i++)
282 for (j = 7; j >= 0; j--)
285 digitalWrite(
_sck, LOW);
286 digitalWrite(
_sck, HIGH);
287 if (digitalRead(
_miso))
292 digitalWrite(
_cs, HIGH);
298 template <
typename T> uint8_t &
putData(
const uint8_t addr,
const T &value)
307 const uint8_t *bytePtr = (
const uint8_t *)&value;
308 static uint8_t structSize =
sizeof(T);
313 for (uint8_t i = 0; i <
sizeof(T); i++)
314 Wire.write(*bytePtr++);
321 SPI.beginTransaction(SPISettings(
SPI_HERTZ, MSBFIRST, SPI_MODE0));
322 digitalWrite(
_cs, LOW);
323 SPI.transfer(addr & ~0x80);
324 for (uint8_t i = 0; i < structSize; i++)
325 SPI.transfer(*bytePtr++);
326 digitalWrite(
_cs, HIGH);
327 SPI.endTransaction();
333 for (i = 0; i < structSize; i++)
336 digitalWrite(
_cs, LOW);
337 for (j = 7; j >= 0; j--)
339 digitalWrite(
_sck, LOW);
340 digitalWrite(
_mosi, (addr & ~0x80) & (1 << j));
341 digitalWrite(
_sck, HIGH);
343 for (j = 7; j >= 0; j--)
346 digitalWrite(
_sck, LOW);
347 digitalWrite(
_mosi, *bytePtr & (1 << j));
348 digitalWrite(
_sck, HIGH);
351 static uint8_t dummyVar = *bytePtr++;
355 digitalWrite(
_cs, HIGH);
const uint8_t BME280_SOFTWARE_CODE
Reset on this written to resetreg.
Definition BME280.h:102
const uint8_t BME280_H3_REG
calibration data register
Definition BME280.h:117
const uint8_t BME280_P9_REG
calibration data register
Definition BME280.h:114
const uint8_t BME280_CONTROL_REG
Device control register.
Definition BME280.h:97
const uint8_t BME280_P2_REG
calibration data register
Definition BME280.h:107
const uint8_t BME280_T3_REG
calibration data register
Definition BME280.h:105
const uint8_t BME280_H4_REG
calibration data register
Definition BME280.h:118
const uint32_t I2C_STANDARD_MODE
Default normal I2C 100KHz speed.
Definition BME280.h:86
const uint8_t BME280_STATUS_REG
Device status register.
Definition BME280.h:96
modeTypes
Definition BME280.h:127
@ UnknownMode
Definition BME280.h:132
@ ForcedMode
Definition BME280.h:129
@ NormalMode
Definition BME280.h:131
@ ForcedMode2
Definition BME280.h:130
@ SleepMode
Definition BME280.h:128
const uint32_t SPI_HERTZ
SPI speed in Hz.
Definition BME280.h:91
iirFilterTypes
Definition BME280.h:155
@ IIR4
Definition BME280.h:158
@ UnknownIIR
Definition BME280.h:161
@ IIROff
Definition BME280.h:156
@ IIR2
Definition BME280.h:157
@ IIR8
Definition BME280.h:159
@ IIR16
Definition BME280.h:160
const uint32_t I2C_HIGH_SPEED_MODE
Turbo mode.
Definition BME280.h:89
const uint32_t I2C_FAST_MODE
Fast mode.
Definition BME280.h:87
oversamplingTypes
Definition BME280.h:144
@ Oversample4
Definition BME280.h:148
@ Oversample8
Definition BME280.h:149
@ Oversample2
Definition BME280.h:147
@ UnknownOversample
Definition BME280.h:151
@ Oversample1
Definition BME280.h:146
@ SensorOff
Definition BME280.h:145
@ Oversample16
Definition BME280.h:150
const uint8_t BME280_CHIPID
Hard-coded value 0x60 for BME280.
Definition BME280.h:93
const uint8_t BME280_P6_REG
calibration data register
Definition BME280.h:111
const uint8_t BME280_CONFIG_REG
Device configuration register.
Definition BME280.h:98
const uint8_t BME280_HUMIDDATA_REG
Humidity readings register.
Definition BME280.h:101
inactiveTimeTypes
Definition BME280.h:165
@ inactive10ms
Definition BME280.h:172
@ inactive63ms
Definition BME280.h:167
@ inactive250ms
Definition BME280.h:169
@ inactive20ms
Definition BME280.h:173
@ inactive1000ms
Definition BME280.h:171
@ UnknownInactive
Definition BME280.h:174
@ inactive500ms
Definition BME280.h:170
@ inactiveHalf
Definition BME280.h:166
@ inactive125ms
Definition BME280.h:168
const uint8_t BME280_SOFTRESET_REG
Reset when 0xB6 is written here.
Definition BME280.h:94
const uint8_t BME280_H5_REG
calibration data register
Definition BME280.h:119
const uint8_t BME280_PRESSUREDATA_REG
Pressure readings register.
Definition BME280.h:99
const uint8_t BME280_CHIPID_REG
Chip-Id register.
Definition BME280.h:92
const uint8_t BME280_H2_REG
calibration data register
Definition BME280.h:116
const uint8_t BME280_P1_REG
calibration data register
Definition BME280.h:106
const uint8_t BME280_T1_REG
Declare BME280 registers for the.
Definition BME280.h:103
const uint8_t BME280_P4_REG
calibration data register
Definition BME280.h:109
const uint8_t BME280_P3_REG
calibration data register
Definition BME280.h:108
const uint8_t BME280_TEMPDATA_REG
Temperature readings register.
Definition BME280.h:100
sensorTypes
Definition BME280.h:136
@ UnknownSensor
Definition BME280.h:140
@ HumiditySensor
Definition BME280.h:138
@ TemperatureSensor
Definition BME280.h:137
@ PressureSensor
Definition BME280.h:139
const uint8_t BME280_H6_REG
calibration data register
Definition BME280.h:120
const uint8_t BME280_P5_REG
calibration data register
Definition BME280.h:110
measureTimeTypes
Definition BME280.h:178
@ TypicalMeasure
Definition BME280.h:179
@ UnknownMeasure
Definition BME280.h:181
@ MaximumMeasure
Definition BME280.h:180
const uint8_t BME280_H1_REG
calibration data register
Definition BME280.h:115
const uint32_t I2C_FAST_MODE_PLUS_MODE
Really fast mode.
Definition BME280.h:88
const uint8_t BME280_P8_REG
calibration data register
Definition BME280.h:113
const uint8_t BME280_CONTROLHUMID_REG
Humidity control register.
Definition BME280.h:95
const uint8_t BME280_P7_REG
calibration data register
Definition BME280.h:112
const uint8_t BME280_T2_REG
calibration data register
Definition BME280.h:104
BME280 Class definition.
Definition BME280.h:185
int32_t _tfine
Definition BME280.h:222
int8_t _cal_dig_H6
Calibration variables.
Definition BME280.h:216
uint8_t & putData(const uint8_t addr, const T &value)
Definition BME280.h:298
int16_t _cal_dig_H5
Calibration variables.
Definition BME280.h:220
int16_t _cal_dig_P3
Definition BME280.h:218
int32_t _Pressure
Definition BME280.h:222
int16_t _cal_dig_P9
Definition BME280.h:219
void reset()
Definition BME280.cpp:391
uint8_t getOversampling(const uint8_t sensor, const bool actual=false)
Definition BME280.cpp:188
uint8_t readByte(const uint8_t addr)
Definition BME280.cpp:134
uint8_t _miso
Hardware and software SPI pins for SPI.
Definition BME280.h:214
int16_t _cal_dig_P8
Definition BME280.h:219
int16_t _cal_dig_P7
Definition BME280.h:218
uint8_t iirFilter(const uint8_t iirFilterSetting=UINT8_MAX)
Definition BME280.cpp:287
void getSensorData(int32_t &temp, int32_t &hum, int32_t &press)
Definition BME280.cpp:378
int32_t _Temperature
Definition BME280.h:222
int16_t _cal_dig_H2
Definition BME280.h:219
int16_t _cal_dig_T2
Definition BME280.h:218
void getCalibration()
Definition BME280.cpp:101
uint8_t inactiveTime(const uint8_t inactiveTimeSetting=UINT8_MAX)
Definition BME280.cpp:305
uint8_t mode(const uint8_t operatingMode=UINT8_MAX)
Definition BME280.cpp:145
bool _TransmissionStatus
I2C communications status.
Definition BME280.h:212
uint8_t & getData(const uint8_t addr, T &value)
Definition BME280.h:234
~BME280_Class()
Empty & unused class destructor.
Definition BME280.cpp:10
uint8_t _cs
Definition BME280.h:214
int16_t _cal_dig_T3
Definition BME280.h:218
int16_t _cal_dig_P4
Definition BME280.h:218
int16_t _cal_dig_P6
Definition BME280.h:218
int16_t _cal_dig_P2
Definition BME280.h:218
int16_t _cal_dig_P5
Definition BME280.h:218
void readSensors()
Definition BME280.cpp:216
uint8_t _mode
Last mode set.
Definition BME280.h:221
uint8_t _I2CAddress
Default is no I2C address known.
Definition BME280.h:213
BME280_Class()
Empty & unused class constructor.
Definition BME280.cpp:9
uint32_t measurementTime(const uint8_t measureTimeSetting=1)
Definition BME280.cpp:323
uint8_t _cal_dig_H1
Definition BME280.h:215
uint16_t _cal_dig_P1
Calibration variables.
Definition BME280.h:217
uint8_t _cal_dig_H3
Calibration variables.
Definition BME280.h:215
int32_t _Humidity
Sensor global variables.
Definition BME280.h:222
uint16_t _cal_dig_T1
Definition BME280.h:217
uint8_t _sck
Definition BME280.h:214
int16_t _cal_dig_H4
Definition BME280.h:219
bool begin()
Definition BME280.cpp:11
uint8_t _mosi
Definition BME280.h:214
bool setOversampling(const uint8_t sensor, const uint8_t sampling)
Definition BME280.cpp:160