muwerk mupplet Sensor Library
muwerk applets; mupplets: functional units that support specific hardware or reusable applications for sensors
|
mupplet-sensor temperature and pressure with Bosch BMP280 More...
#include <mup_presstemp_bmp280.h>
Public Types | |
enum | BMPSampleMode { ULTRA_LOW_POWER = 1 , LOW_POWER = 2 , STANDARD = 3 , HIGH_RESOLUTION = 4 , ULTRA_HIGH_RESOLUTION = 5 } |
Public Member Functions | |
PressTempBMP280 (String name, FilterMode filterMode=FilterMode::MEDIUM, uint8_t i2cAddress=0x76) | |
void | setReferenceAltitude (double _referenceAltitudeMeters) |
void | startRelativeAltitude () |
double | getTemperature () |
double | getPressure () |
double | getPressureNN (double _pressure) |
mupplet-sensor temperature and pressure with Bosch BMP280
The mup_presstemp_bmp280 mupplet measures temperature and pressure using BMP280 sensor.
This mupplet is a fully asynchronous state-machine with no delay()s, so it never blocks.
messages are prefixed by omu/<hostname>
:
topic | message body | comment |
---|---|---|
<mupplet-name>/sensor/temperature | temperature in degree celsius | Float value encoded as string, sent periodically as available |
<mupplet-name>/sensor/pressure | pressure in hPA for current altitude | Float value encoded as string, sent periodically as available |
<mupplet-name>/sensor/pressureNN | pressure in hPA adjusted for sea level (requires setReferenceAltitude() to be called) | Float value encoded as string, sent periodically as available |
<mupplet-name>/sensor/calibrationdata | a string with values of all internal calibration variables | descriptive string |
<mupplet-name>/sensor/referencealtitude | altitude above sea level as set with setReferenceAltitude() | Float value encoded as string |
<mupplet-name>/sensor/relativealtitude | current altitude in meters | Current altitude in comparison to the set reference in meters, requires referencealtitude/set and relativealtitude/set msgs being sent. |
<mupplet-name>/sensor/deltaaltitude | current altitude in meters | Current altitude delta in meters, requirements as with relativealtitude |
<mupplet-name>/sensor/oversampling | ULTRA_LOW_POWER , STANDARD , HIGH_RESOLUTION , ULTRA_HIGH_RESOLUTION | Internal sensor oversampling mode (sensor hardware) |
<mupplet-name>/sensor/mode | FAST , MEDIUM , or LONGTERM | Integration time for sensor values, external, additional integration |
Need to be prefixed by <hostname>/
:
topic | message body | comment |
---|---|---|
<mupplet-name>/sensor/temperature/get | - | Causes current value to be sent. |
<mupplet-name>/sensor/pressure/get | - | Causes current value to be sent. |
<mupplet-name>/sensor/pressureNN/get | - | Causes current value to be sent. |
<mupplet-name>/sensor/referencealtitude/get | - | Causes current value to be sent. |
<mupplet-name>/sensor/referencealtitude/set | float encoded as string of current altitude in meters | Once the reference altitude is set, pressureNN values can be calculated. |
<mupplet-name>/sensor/relativealtitude/set | - | Save current pressureNN values as reference, start generating relative altitude-change messages, requires reference altitude to be set |
<mupplet-name>/sensor/relativealtitude/get | - | Get current altitude in comparison to the set reference and an altitude delta in meters |
<mupplet-name>/sensor/calibrationdata/get | - | Causes current values to be sent. |
<mupplet-name>/sensor/oversampling/get | - | Returns samplemode: ULTRA_LOW_POWER , LOW_POWER , STANDARD , HIGH_RESOLUTION , ULTRA_HIGH_RESOLUTION |
<mupplet-name>/sensor/oversampling/set | ULTRA_LOW_POWER , LOW_POWER , STANDARD , HIGH_RESOLUTION , ULTRA_HIGH_RESOLUTION | Set internal sensor oversampling mode |
<mupplet-name>/sensor/mode/get | - | Returns filterMode: FAST , MEDIUM , or LONGTERM |
<mupplet-name>/sensor/mode/set | FAST , MEDIUM , or LONGTERM | Set external additional filter values |
For a complete examples see the muwerk/examples
project.
Hardware accuracy modes of BMP280, while the sensor can have different pressure- and temperature oversampling, we use same for both temp and press.
|
inline |
Instantiate an BMP sensor mupplet
name | Name used for pub/sub messages |
filterMode | FAST, MEDIUM or LONGTERM filtering of sensor values |
i2cAddress | Should always be 0x76 or 0x77 for BMP280, depending on SDO pin. |
|
inline |
Get current pressure
|
inline |
Get current pressure at sea level (NN)
Once a reference altitude is defined (see setReferenceAltitude()), pressure at sea level NN can be calculated with this function.
|
inline |
Get current temperature
|
inline |
Set the altitude at current sensor location as reference
_referenceAltitudeMeters | The current altitude above sea level in meters |
|
inline |
Store current pressure for a reference altitude to start relative altitude measurement
Once a reference altitude is defined (see setReferenceAltitude()), measurement of relative altitude can be started by calling this function.