ModularSensors > Files > src / sensors / BoschBMP3xx.h

BoschBMP3xx.h file

Contains the BoschBMP3xx sensor subclass and the variable subclasses BoschBMP3xx_Temp, BoschBMP3xx_Humidity, BoschBMP3xx_Pressure, and BoschBMP3xx_Altitude.

These are used for the Bosch BMP3xx digital pressure and humidity sensor.

This depends on the MartinL1's BMP388 library.

Classes

class BoschBMP3xx
The Sensor sub-class for the Bosch BMP3xx.
class BoschBMP3xx_Temp
The Variable sub-class used for the temperature output from a Bosch BMP3xx.
class BoschBMP3xx_Pressure
The Variable sub-class used for the atmospheric pressure output from a Bosch BMP3xx.
class BoschBMP3xx_Altitude
The Variable sub-class used for the altitude calculated from the measurements made by a Bosch BMP3xx.

Defines

#define BMP3XX_NUM_VARIABLES = 3
Sensor::_numReturnedValues; the BMP3xx can report 3 values.
#define BMP3XX_INC_CALC_VARIABLES = 1
Sensor::_incCalcValues; altitude is calculted within the Adafruit library.
#define SEALEVELPRESSURE_HPA = (1013.25)
The atmospheric pressure at sea level.

Sensor Timing

The sensor timing for a Bosch BMP3xx

#define BMP3XX_WARM_UP_TIME_MS = 3
Sensor::_warmUpTime_ms; BMP3xx should be ready to communicate within 3ms.
#define BMP3XX_STABILIZATION_TIME_MS = 4000
Sensor::_stabilizationTime_ms; BMP3xx is stable after 4000ms.
#define BMP3XX_MEASUREMENT_TIME_MS = 80
Sensor::_measurementTime_ms; The number given in this define will be recalculated and over-written in the set-up.

Temperature

The temperature variable from a Bosch BMP388 or BMP390

  • Range is -40°C to +85°C
    • Full accuracy between 0°C and +65°C
  • Absolute accuracy is typ. ± 0.5°C at 25°C
    • ± 1.5°C over 0°C to +65°C range

BoschBMP3xx_Temp(BoschBMP3xx* parentSense, const char* uuid = "", const char* varCode = BMP3XX_TEMP_DEFAULT_CODE) explicit

Construct a new BoschBMP3xx_Temp object.

Parameters
parentSense The parent BoschBMP3xx providing the result values.
uuid A universally unique identifier (UUID or GUID) for the variable; optional with the default value of an empty string.
varCode A short code to help identify the variable in files; optional with a default value of "BoschBMP3xxTemp".

#define BMP3XX_TEMP_RESOLUTION = 2
Decimals places in string representation; temperature should have 5 - resolution is 0.0.00015°C at the hightest oversampling. See table 7 in the sensor datasheet for resolution at all bandwidths.
#define BMP3XX_TEMP_VAR_NUM = 0
Sensor variable number; temperature is stored in sensorValues[0].
#define BMP3XX_TEMP_VAR_NAME = "temperature"
Variable name in ODM2 controlled vocabulary; "temperature".
#define BMP3XX_TEMP_UNIT_NAME = "degreeCelsius"
Variable unit name in ODM2 controlled vocabulary; "degreeCelsius" (°C)
#define BMP3XX_TEMP_DEFAULT_CODE = "BoschBMP3xxTemp"
Default variable short code; "BoschBMP3xxTemp".

Barometric Pressure

The barometric pressure variable from a Bosch BMP388 or BMP390

  • Range for both the BMP388 and BMP390 is 300‒1250 hPa
  • Absolute accuracy is typ. ± 50 Pa (±0.50 hPa)
  • Relative accuracy is typ. ± 3 Pa (±0.03 hPa), equiv. to ± 0.25 m

BoschBMP3xx_Pressure(BoschBMP3xx* parentSense, const char* uuid = "", const char* varCode = BMP3XX_PRESSURE_DEFAULT_CODE) explicit

Construct a new BoschBMP3xx_Pressure object.

Parameters
parentSense The parent BoschBMP3xx providing the result values.
uuid A universally unique identifier (UUID or GUID) for the variable; optional with the default value of an empty string.
varCode A short code to help identify the variable in files; optional with a default value of "BoschBMP3xxPressure".

#define BMP3XX_PRESSURE_RESOLUTION = 3
Decimals places in string representation; barometric pressure should have 3. Resolution of output data in highest resolution mode at lowest bandwidth is 0.016 Pa. See table 6 in the sensor datasheet for resolution at all bandwidths.
#define BMP3XX_PRESSURE_VAR_NUM = 1
Sensor variable number; pressure is stored in sensorValues[2].
#define BMP3XX_PRESSURE_VAR_NAME = "barometricPressure"
Variable name in ODM2 controlled vocabulary; "barometricPressure".
#define BMP3XX_PRESSURE_UNIT_NAME = "pascal"
Variable unit name in ODM2 controlled vocabulary; "pascal" (Pa)
#define BMP3XX_PRESSURE_DEFAULT_CODE = "BoschBMP3xxPressure"
Default variable short code; "BoschBMP3xxPressure".

Altitude

The altitude variable from a Bosch BMP388 or BMP390

BoschBMP3xx_Altitude(BoschBMP3xx* parentSense, const char* uuid = "", const char* varCode = BMP3XX_ALTITUDE_DEFAULT_CODE) explicit

Construct a new BoschBMP3xx_Altitude object.

Parameters
parentSense The parent BoschBMP3xx providing the result values.
uuid A universally unique identifier (UUID or GUID) for the variable; optional with the default value of an empty string.
varCode A short code to help identify the variable in files; optional with a default value of "BoschBMP3xxAltitude".

#define BMP3XX_ALTITUDE_RESOLUTION = 0
Decimals places in string representation; altitude should have 0 - resolution is 1m.
#define BMP3XX_ALTITUDE_VAR_NUM = 2
Sensor variable number; altitude is stored in sensorValues[3].
#define BMP3XX_ALTITUDE_VAR_NAME = "heightAboveSeaFloor"
Variable name in ODM2 controlled vocabulary; "heightAboveSeaFloor".
#define BMP3XX_ALTITUDE_UNIT_NAME = "meter"
Variable unit name in ODM2 controlled vocabulary; "meter".
#define BMP3XX_ALTITUDE_DEFAULT_CODE = "BoschBMP3xxAltitude"
Default variable short code; "BoschBMP3xxAltitude".