4#include <wiringPiI2C.h>
187 BMP280(
const int bmpI2CAddress);
213 virtual void TurnOn()
override;
226 virtual void TurnOff()
override;
240 virtual std::string
ToString()
const override;
BMP280 barometric temperature and pressure sensor (I2C), also deriving altitude from the measured pre...
Definition: BMP280.h:83
int myDigP1
Pressure calibration coefficient.
Definition: BMP280.h:100
int myDigP3
Pressure calibration coefficient.
Definition: BMP280.h:102
double GetTemperature() const
Gets the most recently calculated temperature, in Celsius.
Definition: BMP280.cpp:430
int WriteByteDataToRegister(const int reg, const int value)
Writes a byte to a register over I2C.
Definition: BMP280.cpp:171
int GetDigP6() const
Gets the DigP6 pressure calibration coefficient.
Definition: BMP280.cpp:617
void SetPressure(const double pressure)
Sets the cached pressure, in hPa.
Definition: BMP280.cpp:702
virtual void TurnOn() override
Reads the chip ID/version, soft-resets and configures the sensor, and reads its temperature/pressure ...
Definition: BMP280.cpp:86
virtual std::string ToString() const override
Serializes the most recently calculated temperature, pressure, and altitude to a string.
Definition: BMP280.cpp:146
int myDigP2
Pressure calibration coefficient.
Definition: BMP280.h:101
int myFileDescriptor
The open i2c device file descriptor.
Definition: BMP280.h:88
int GetDigP8() const
Gets the DigP8 pressure calibration coefficient.
Definition: BMP280.cpp:651
int myChipID
The sensor's chip ID.
Definition: BMP280.h:90
int myDigP4
Pressure calibration coefficient.
Definition: BMP280.h:103
virtual void TurnOff() override
No-op: the BMP280's only OS resource (the i2c file descriptor) is opened in the constructor and close...
Definition: BMP280.cpp:128
int ReadWordDataFromRegisterUnsigned(const int reg)
Reads an unsigned 16-bit word from a register over I2C.
Definition: BMP280.cpp:209
int myDigT2
Temperature calibration coefficient.
Definition: BMP280.h:98
int GetConfigsByte() const
Gets the computed register config byte.
Definition: BMP280.cpp:345
int GetDigT3() const
Gets the DigT3 temperature calibration coefficient.
Definition: BMP280.cpp:515
double myPressureInHPA
The most recently calculated pressure, in hPa.
Definition: BMP280.h:94
int ReadWordDataFromRegisterSigned(const int reg)
Reads a signed 16-bit word from a register over I2C, applying two's-complement sign correction.
Definition: BMP280.cpp:228
double myAltitudeInM
The most recently calculated altitude, in meters.
Definition: BMP280.h:95
double myTemperatureInC
The most recently calculated temperature, in Celsius.
Definition: BMP280.h:93
void SetAltitude(const double alt)
Sets the cached altitude, in meters.
Definition: BMP280.cpp:719
int GetDigP4() const
Gets the DigP4 pressure calibration coefficient.
Definition: BMP280.cpp:583
virtual ~BMP280()
Destroys the sensor, turning it off first.
Definition: BMP280.cpp:64
int GetChipID() const
Gets the sensor's chip ID.
Definition: BMP280.cpp:396
int myDigP9
Pressure calibration coefficient.
Definition: BMP280.h:108
BMP280(const int bmpI2CAddress)
Builds a BMP280 bound to the given I2C address, computing its config/ctrl_meas bytes and opening the ...
Definition: BMP280.cpp:19
double GetAltitude() const
Gets the most recently calculated altitude, in meters.
Definition: BMP280.cpp:464
int myDigT1
Temperature calibration coefficient.
Definition: BMP280.h:97
int ReadByteDataFromRegister(const int reg)
Reads a byte from a register over I2C.
Definition: BMP280.cpp:190
int GetDigP5() const
Gets the DigP5 pressure calibration coefficient.
Definition: BMP280.cpp:600
int GetDigT1() const
Gets the DigT1 temperature calibration coefficient.
Definition: BMP280.cpp:481
int myDigP6
Pressure calibration coefficient.
Definition: BMP280.h:105
int GetDigP7() const
Gets the DigP7 pressure calibration coefficient.
Definition: BMP280.cpp:634
int myDigP5
Pressure calibration coefficient.
Definition: BMP280.h:104
int CTRL_MEAS
Register ctrl_meas byte; computed in the ctor.
Definition: BMP280.h:86
double GetPressure() const
Gets the most recently calculated pressure, in hPa.
Definition: BMP280.cpp:447
virtual void ProcessRawValues() override
Reads the raw temperature and pressure registers and applies the Bosch datasheet compensation formula...
Definition: BMP280.cpp:251
int GetChipVersion() const
Gets the sensor's chip version.
Definition: BMP280.cpp:413
void SetTemperature(const double temp)
Sets the cached temperature, in Celsius.
Definition: BMP280.cpp:685
int CONFIGS
Register config byte; computed in the ctor.
Definition: BMP280.h:85
int GetFileDescriptor() const
Gets the open i2c device file descriptor.
Definition: BMP280.cpp:379
int myDigP8
Pressure calibration coefficient.
Definition: BMP280.h:107
int myDigT3
Temperature calibration coefficient.
Definition: BMP280.h:99
int myDigP7
Pressure calibration coefficient.
Definition: BMP280.h:106
int GetDigP9() const
Gets the DigP9 pressure calibration coefficient.
Definition: BMP280.cpp:668
int GetCtrlMeasByte() const
Gets the computed register ctrl_meas byte.
Definition: BMP280.cpp:362
int GetDigP1() const
Gets the DigP1 pressure calibration coefficient.
Definition: BMP280.cpp:532
int GetDigP3() const
Gets the DigP3 pressure calibration coefficient.
Definition: BMP280.cpp:566
int GetDigP2() const
Gets the DigP2 pressure calibration coefficient.
Definition: BMP280.cpp:549
int myChipVersion
The sensor's chip version.
Definition: BMP280.h:91
int GetDigT2() const
Gets the DigT2 temperature calibration coefficient.
Definition: BMP280.cpp:498
Abstract base class for every component (sensor, actuator, etc.) the library manages.
Definition: BaseComponent.h:60
RumPi is the library's top-level facade.
Definition: AlertManager.h:6
constexpr int POWER_MODE
Definition: BMP280.h:17
constexpr int OSRS_T
Definition: BMP280.h:26
constexpr int BMP280_REGISTER_DIG_P6
Definition: BMP280.h:59
constexpr int BMP280_REGISTER_PRESSDATA_MSB
Definition: BMP280.h:72
constexpr int BMP280_REGISTER_DIG_P3
Definition: BMP280.h:56
constexpr int BMP280_REGISTER_CHIPID
Definition: BMP280.h:63
constexpr int BMP280_REGISTER_TEMPDATA_MSB
Definition: BMP280.h:69
constexpr int BMP280_REGISTER_DIG_T1
Definition: BMP280.h:51
constexpr int BMP280_REGISTER_STATUS
Definition: BMP280.h:68
constexpr int BMP280_REGISTER_CONFIG
Definition: BMP280.h:67
constexpr int BMP280_REGISTER_TEMPDATA_XLSB
Definition: BMP280.h:71
constexpr int BMP280_REGISTER_DIG_P4
Definition: BMP280.h:57
constexpr int BMP280_REGISTER_DIG_T2
Definition: BMP280.h:52
constexpr double BMP280_SEA_LEVEL
Definition: BMP280.h:10
constexpr int BMP280_REGISTER_DIG_P8
Definition: BMP280.h:61
constexpr int BMP280_REGISTER_PRESSDATA_LSB
Definition: BMP280.h:73
constexpr int BMP280_REGISTER_DIG_P5
Definition: BMP280.h:58
constexpr int BMP280_REGISTER_DIG_T3
Definition: BMP280.h:53
constexpr int BMP280_REGISTER_CONTROL
Definition: BMP280.h:66
constexpr int BMP280_REGISTER_DIG_P7
Definition: BMP280.h:60
constexpr int BMP280_REGISTER_DIG_P9
Definition: BMP280.h:62
constexpr int T_SB
Definition: BMP280.h:49
constexpr int BMP280_REGISTER_DIG_P2
Definition: BMP280.h:55
constexpr int FILTER
Definition: BMP280.h:38
constexpr int OSRS_P
Definition: BMP280.h:35
constexpr int BMP280_REGISTER_VERSION
Definition: BMP280.h:64
constexpr int BMP280_REGISTER_SOFTRESET
Definition: BMP280.h:65
constexpr int BMP280_REGISTER_DIG_P1
Definition: BMP280.h:54
constexpr int BMP280_REGISTER_TEMPDATA_LSB
Definition: BMP280.h:70
constexpr int BMP280_REGISTER_PRESSDATA_XLSB
Definition: BMP280.h:74