ESPHome
2024.8.3
|
This class implements support for the BMP3XX Temperature+Pressure sensor. More...
#include <bmp3xx_base.h>
Data Structures | |
struct | FloatParams |
Public Member Functions | |
void | setup () override |
void | dump_config () override |
float | get_setup_priority () const override |
void | update () override |
void | set_temperature_sensor (sensor::Sensor *temperature_sensor) |
void | set_pressure_sensor (sensor::Sensor *pressure_sensor) |
void | set_temperature_oversampling_config (Oversampling temperature_oversampling) |
Set the oversampling value for the temperature sensor. Default is 16x. More... | |
void | set_pressure_oversampling_config (Oversampling pressure_oversampling) |
Set the oversampling value for the pressure sensor. Default is 16x. More... | |
void | set_iir_filter_config (IIRFilter iir_filter) |
Set the IIR Filter used to increase accuracy, defaults to no IIR Filter. More... | |
uint8_t | reset () |
Soft reset the sensor. More... | |
bool | start_normal_conversion () |
Start continuous measurement in NORMAL_MODE. More... | |
bool | start_forced_conversion () |
Start a one shot measurement in FORCED_MODE. More... | |
bool | stop_conversion () |
Stop the conversion and return to SLEEP_MODE. More... | |
bool | set_pressure_oversampling (Oversampling pressure_oversampling) |
Set the pressure oversampling: OFF, X1, X2, X4, X8, X16, X32. More... | |
bool | set_temperature_oversampling (Oversampling temperature_oversampling) |
Set the temperature oversampling: OFF, X1, X2, X4, X8, X16, X32. More... | |
bool | set_iir_filter (IIRFilter iir_filter) |
Set the IIR filter setting: OFF, 2, 3, 8, 16, 32. More... | |
bool | get_temperature (float &temperature) |
Get a temperature measurement. More... | |
bool | get_pressure (float &pressure) |
Get a pressure measurement. More... | |
bool | get_measurements (float &temperature, float &pressure) |
Get a temperature and pressure measurement. More... | |
bool | get_measurement () |
Get a temperature and pressure measurement. More... | |
bool | set_mode (OperationMode mode) |
Set the barometer mode. More... | |
bool | set_oversampling_register (Oversampling pressure_oversampling, Oversampling temperature_oversampling) |
Set the BMP388 oversampling register. More... | |
bool | data_ready () |
Checks if a measurement is ready. More... | |
![]() | |
PollingComponent () | |
PollingComponent (uint32_t update_interval) | |
Initialize this polling component with the given update interval in ms. More... | |
virtual void | set_update_interval (uint32_t update_interval) |
Manually set the update interval in ms for this polling object. More... | |
void | call_setup () override |
virtual uint32_t | get_update_interval () const |
Get the update interval in ms of this sensor. More... | |
void | start_poller () |
void | stop_poller () |
![]() | |
virtual void | loop () |
This method will be called repeatedly. More... | |
float | get_actual_setup_priority () const |
void | set_setup_priority (float priority) |
virtual float | get_loop_priority () const |
priority of loop(). More... | |
void | call () |
virtual void | on_shutdown () |
virtual void | on_safe_shutdown () |
uint32_t | get_component_state () const |
virtual void | mark_failed () |
Mark this component as failed. More... | |
bool | is_failed () const |
bool | is_ready () const |
virtual bool | can_proceed () |
bool | status_has_warning () const |
bool | status_has_error () const |
void | status_set_warning (const char *message="unspecified") |
void | status_set_error (const char *message="unspecified") |
void | status_clear_warning () |
void | status_clear_error () |
void | status_momentary_warning (const std::string &name, uint32_t length=5000) |
void | status_momentary_error (const std::string &name, uint32_t length=5000) |
bool | has_overridden_loop () const |
void | set_component_source (const char *source) |
Set where this component was loaded from for some debug messages. More... | |
const char * | get_component_source () const |
Get the integration where this component was declared as a string. More... | |
Protected Types | |
enum | ErrorCode { NONE = 0, ERROR_COMMUNICATION_FAILED, ERROR_WRONG_CHIP_ID, ERROR_SENSOR_STATUS, ERROR_SENSOR_RESET } |
Protected Member Functions | |
struct { | |
uint16_t param_T1 | |
uint16_t param_T2 | |
int8_t param_T3 | |
int16_t param_P1 | |
int16_t param_P2 | |
int8_t param_P3 | |
int8_t param_P4 | |
uint16_t param_P5 | |
uint16_t param_P6 | |
int8_t param_P7 | |
int8_t param_P8 | |
int16_t param_P9 | |
int8_t param_P10 | |
int8_t param_P11 | |
} | __attribute__ ((packed)) compensation_params_ |
float | bmp388_compensate_temperature_ (float uncomp_temp) |
float | bmp388_compensate_pressure_ (float uncomp_press, float t_lin) |
virtual bool | read_byte (uint8_t a_register, uint8_t *data)=0 |
virtual bool | write_byte (uint8_t a_register, uint8_t data)=0 |
virtual bool | read_bytes (uint8_t a_register, uint8_t *data, size_t len)=0 |
virtual bool | write_bytes (uint8_t a_register, uint8_t *data, size_t len)=0 |
![]() | |
virtual void | call_loop () |
virtual void | call_dump_config () |
void | set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f) |
Set an interval function with a unique name. More... | |
void | set_interval (uint32_t interval, std::function< void()> &&f) |
bool | cancel_interval (const std::string &name) |
Cancel an interval function. More... | |
void | set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f) |
Set an retry function with a unique name. More... | |
void | set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f) |
bool | cancel_retry (const std::string &name) |
Cancel a retry function. More... | |
void | set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f) |
Set a timeout function with a unique name. More... | |
void | set_timeout (uint32_t timeout, std::function< void()> &&f) |
bool | cancel_timeout (const std::string &name) |
Cancel a timeout function. More... | |
void | defer (const std::string &name, std::function< void()> &&f) |
Defer a callback to the next loop() call. More... | |
void | defer (std::function< void()> &&f) |
Defer a callback to the next loop() call. More... | |
bool | cancel_defer (const std::string &name) |
Cancel a defer callback using the specified name, name must not be empty. More... | |
Protected Attributes | |
Oversampling | temperature_oversampling_ {OVERSAMPLING_X16} |
Oversampling | pressure_oversampling_ {OVERSAMPLING_X16} |
IIRFilter | iir_filter_ {IIR_FILTER_OFF} |
OperationMode | operation_mode_ {FORCED_MODE} |
sensor::Sensor * | temperature_sensor_ {nullptr} |
sensor::Sensor * | pressure_sensor_ {nullptr} |
enum esphome::bmp3xx_base::BMP3XXComponent::ErrorCode | NONE |
struct esphome::bmp3xx_base::BMP3XXComponent::FloatParams | compensation_float_params_ |
union { | |
struct { | |
uint8_t chip_id_nvm: 4 | |
uint8_t chip_id_fixed: 4 | |
} bit | |
uint8_t reg | |
} | chip_id_ = {.reg = 0} |
union { | |
struct { | |
uint8_t por_detected: 1 | |
} bit | |
uint8_t reg | |
} | event_ = {.reg = 0} |
union { | |
struct { | |
uint8_t fwm_int: 1 | |
uint8_t ffull_int: 1 | |
uint8_t __pad0__: 1 | |
uint8_t drdy: 1 | |
} bit | |
uint8_t reg | |
} | int_status_ = {.reg = 0} |
union { | |
struct { | |
uint8_t press_en: 1 | |
uint8_t temp_en: 1 | |
uint8_t __pad0__: 2 | |
uint8_t mode: 2 | |
} bit | |
uint8_t reg | |
} | pwr_ctrl_ = {.reg = 0} |
union { | |
struct { | |
uint8_t osr_p: 3 | |
uint8_t osr_t: 3 | |
} bit | |
uint8_t reg | |
} | osr_ = {.reg = 0} |
union { | |
struct { | |
uint8_t odr_sel: 5 | |
} bit | |
uint8_t reg | |
} | odr_ = {.reg = 0} |
union { | |
struct { | |
uint8_t __pad0__: 1 | |
uint8_t iir_filter: 3 | |
} bit | |
uint8_t reg | |
} | config_ = {.reg = 0} |
![]() | |
uint32_t | update_interval_ |
![]() | |
uint32_t | component_state_ {0x0000} |
State of this component. More... | |
float | setup_priority_override_ {NAN} |
const char * | component_source_ {nullptr} |
This class implements support for the BMP3XX Temperature+Pressure sensor.
Definition at line 72 of file bmp3xx_base.h.
|
protected |
Enumerator | |
---|---|
NONE | |
ERROR_COMMUNICATION_FAILED | |
ERROR_WRONG_CHIP_ID | |
ERROR_SENSOR_STATUS | |
ERROR_SENSOR_RESET |
Definition at line 129 of file bmp3xx_base.h.
|
protected |
|
protected |
Definition at line 370 of file bmp3xx_base.cpp.
|
protected |
Definition at line 364 of file bmp3xx_base.cpp.
bool esphome::bmp3xx_base::BMP3XXComponent::data_ready | ( | ) |
Checks if a measurement is ready.
Definition at line 336 of file bmp3xx_base.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 150 of file bmp3xx_base.cpp.
bool esphome::bmp3xx_base::BMP3XXComponent::get_measurement | ( | ) |
Get a temperature and pressure measurement.
bool esphome::bmp3xx_base::BMP3XXComponent::get_measurements | ( | float & | temperature, |
float & | pressure | ||
) |
Get a temperature and pressure measurement.
Definition at line 296 of file bmp3xx_base.cpp.
bool esphome::bmp3xx_base::BMP3XXComponent::get_pressure | ( | float & | pressure | ) |
Get a pressure measurement.
Definition at line 290 of file bmp3xx_base.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 183 of file bmp3xx_base.cpp.
bool esphome::bmp3xx_base::BMP3XXComponent::get_temperature | ( | float & | temperature | ) |
Get a temperature measurement.
Definition at line 271 of file bmp3xx_base.cpp.
|
protectedpure virtual |
|
protectedpure virtual |
uint8_t esphome::bmp3xx_base::BMP3XXComponent::reset | ( | ) |
Soft reset the sensor.
Definition at line 232 of file bmp3xx_base.cpp.
bool esphome::bmp3xx_base::BMP3XXComponent::set_iir_filter | ( | IIRFilter | iir_filter | ) |
Set the IIR filter setting: OFF, 2, 3, 8, 16, 32.
Definition at line 265 of file bmp3xx_base.cpp.
|
inline |
Set the IIR Filter used to increase accuracy, defaults to no IIR Filter.
Definition at line 91 of file bmp3xx_base.h.
bool esphome::bmp3xx_base::BMP3XXComponent::set_mode | ( | OperationMode | mode | ) |
Set the barometer mode.
Definition at line 323 of file bmp3xx_base.cpp.
bool esphome::bmp3xx_base::BMP3XXComponent::set_oversampling_register | ( | Oversampling | pressure_oversampling, |
Oversampling | temperature_oversampling | ||
) |
Set the BMP388 oversampling register.
Definition at line 329 of file bmp3xx_base.cpp.
bool esphome::bmp3xx_base::BMP3XXComponent::set_pressure_oversampling | ( | Oversampling | pressure_oversampling | ) |
Set the pressure oversampling: OFF, X1, X2, X4, X8, X16, X32.
Definition at line 253 of file bmp3xx_base.cpp.
|
inline |
Set the oversampling value for the pressure sensor. Default is 16x.
Definition at line 87 of file bmp3xx_base.h.
|
inline |
Definition at line 80 of file bmp3xx_base.h.
bool esphome::bmp3xx_base::BMP3XXComponent::set_temperature_oversampling | ( | Oversampling | temperature_oversampling | ) |
Set the temperature oversampling: OFF, X1, X2, X4, X8, X16, X32.
Definition at line 259 of file bmp3xx_base.cpp.
|
inline |
Set the oversampling value for the temperature sensor. Default is 16x.
Definition at line 83 of file bmp3xx_base.h.
|
inline |
Definition at line 79 of file bmp3xx_base.h.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 71 of file bmp3xx_base.cpp.
bool esphome::bmp3xx_base::BMP3XXComponent::start_forced_conversion | ( | ) |
Start a one shot measurement in FORCED_MODE.
Definition at line 241 of file bmp3xx_base.cpp.
bool esphome::bmp3xx_base::BMP3XXComponent::start_normal_conversion | ( | ) |
Start continuous measurement in NORMAL_MODE.
bool esphome::bmp3xx_base::BMP3XXComponent::stop_conversion | ( | ) |
Stop the conversion and return to SLEEP_MODE.
Definition at line 250 of file bmp3xx_base.cpp.
|
overridevirtual |
Implements esphome::PollingComponent.
Definition at line 187 of file bmp3xx_base.cpp.
|
protectedpure virtual |
|
protectedpure virtual |
uint8_t esphome::bmp3xx_base::BMP3XXComponent::__pad0__ |
Definition at line 190 of file bmp3xx_base.h.
struct { ... } esphome::bmp3xx_base::BMP3XXComponent::bit |
struct { ... } esphome::bmp3xx_base::BMP3XXComponent::bit |
struct { ... } esphome::bmp3xx_base::BMP3XXComponent::bit |
struct { ... } esphome::bmp3xx_base::BMP3XXComponent::bit |
struct { ... } esphome::bmp3xx_base::BMP3XXComponent::bit |
struct { ... } esphome::bmp3xx_base::BMP3XXComponent::bit |
struct { ... } esphome::bmp3xx_base::BMP3XXComponent::bit |
union { ... } esphome::bmp3xx_base::BMP3XXComponent::chip_id_ |
uint8_t esphome::bmp3xx_base::BMP3XXComponent::chip_id_fixed |
Definition at line 174 of file bmp3xx_base.h.
uint8_t esphome::bmp3xx_base::BMP3XXComponent::chip_id_nvm |
Definition at line 173 of file bmp3xx_base.h.
|
protected |
union { ... } esphome::bmp3xx_base::BMP3XXComponent::config_ |
uint8_t esphome::bmp3xx_base::BMP3XXComponent::drdy |
Definition at line 191 of file bmp3xx_base.h.
union { ... } esphome::bmp3xx_base::BMP3XXComponent::event_ |
uint8_t esphome::bmp3xx_base::BMP3XXComponent::ffull_int |
Definition at line 189 of file bmp3xx_base.h.
uint8_t esphome::bmp3xx_base::BMP3XXComponent::fwm_int |
Definition at line 188 of file bmp3xx_base.h.
uint8_t esphome::bmp3xx_base::BMP3XXComponent::iir_filter |
Definition at line 224 of file bmp3xx_base.h.
|
protected |
Definition at line 125 of file bmp3xx_base.h.
union { ... } esphome::bmp3xx_base::BMP3XXComponent::int_status_ |
uint8_t esphome::bmp3xx_base::BMP3XXComponent::mode |
Definition at line 201 of file bmp3xx_base.h.
|
protected |
union { ... } esphome::bmp3xx_base::BMP3XXComponent::odr_ |
uint8_t esphome::bmp3xx_base::BMP3XXComponent::odr_sel |
Definition at line 216 of file bmp3xx_base.h.
|
protected |
Definition at line 126 of file bmp3xx_base.h.
union { ... } esphome::bmp3xx_base::BMP3XXComponent::osr_ |
uint8_t esphome::bmp3xx_base::BMP3XXComponent::osr_p |
Definition at line 208 of file bmp3xx_base.h.
uint8_t esphome::bmp3xx_base::BMP3XXComponent::osr_t |
Definition at line 209 of file bmp3xx_base.h.
int16_t esphome::bmp3xx_base::BMP3XXComponent::param_P1 |
Definition at line 141 of file bmp3xx_base.h.
int8_t esphome::bmp3xx_base::BMP3XXComponent::param_P10 |
Definition at line 150 of file bmp3xx_base.h.
int8_t esphome::bmp3xx_base::BMP3XXComponent::param_P11 |
Definition at line 151 of file bmp3xx_base.h.
int16_t esphome::bmp3xx_base::BMP3XXComponent::param_P2 |
Definition at line 142 of file bmp3xx_base.h.
int8_t esphome::bmp3xx_base::BMP3XXComponent::param_P3 |
Definition at line 143 of file bmp3xx_base.h.
int8_t esphome::bmp3xx_base::BMP3XXComponent::param_P4 |
Definition at line 144 of file bmp3xx_base.h.
uint16_t esphome::bmp3xx_base::BMP3XXComponent::param_P5 |
Definition at line 145 of file bmp3xx_base.h.
uint16_t esphome::bmp3xx_base::BMP3XXComponent::param_P6 |
Definition at line 146 of file bmp3xx_base.h.
int8_t esphome::bmp3xx_base::BMP3XXComponent::param_P7 |
Definition at line 147 of file bmp3xx_base.h.
int8_t esphome::bmp3xx_base::BMP3XXComponent::param_P8 |
Definition at line 148 of file bmp3xx_base.h.
int16_t esphome::bmp3xx_base::BMP3XXComponent::param_P9 |
Definition at line 149 of file bmp3xx_base.h.
uint16_t esphome::bmp3xx_base::BMP3XXComponent::param_T1 |
Definition at line 138 of file bmp3xx_base.h.
uint16_t esphome::bmp3xx_base::BMP3XXComponent::param_T2 |
Definition at line 139 of file bmp3xx_base.h.
int8_t esphome::bmp3xx_base::BMP3XXComponent::param_T3 |
Definition at line 140 of file bmp3xx_base.h.
uint8_t esphome::bmp3xx_base::BMP3XXComponent::por_detected |
Definition at line 181 of file bmp3xx_base.h.
uint8_t esphome::bmp3xx_base::BMP3XXComponent::press_en |
Definition at line 198 of file bmp3xx_base.h.
|
protected |
Definition at line 124 of file bmp3xx_base.h.
|
protected |
Definition at line 128 of file bmp3xx_base.h.
union { ... } esphome::bmp3xx_base::BMP3XXComponent::pwr_ctrl_ |
uint8_t esphome::bmp3xx_base::BMP3XXComponent::reg |
Definition at line 176 of file bmp3xx_base.h.
uint8_t esphome::bmp3xx_base::BMP3XXComponent::temp_en |
Definition at line 199 of file bmp3xx_base.h.
|
protected |
Definition at line 123 of file bmp3xx_base.h.
|
protected |
Definition at line 127 of file bmp3xx_base.h.