I developed this flow to illustrate the impact of self heating on data from BME280 temperature, pressure and humidity sensor boards.
The snapshot shows two devices "Eigg" and "Iona" through four 30 minute awake/deep sleep cycles.
It captures the moment at 06:17 when Eigg went into deep sleep. It woke up at 06:01 and intends to awaken at 06:31.
Iona has a BME680 rather than BME280, with an air quality sensor too though the dashboard does not show that. Iona is active not sleeping, so there is no Wake at time and the most recent temperature and pressure readings are shown.
If you tell Tasmota your elevation above sea level (various online sources) it will adjust the sensor's pressure data to sea level, allowing comparison with internet weather data. The red line on the chart shows METAR data for the nearest airport.
It's possible to "calibrate" the pressure reading by falsifying elevation.
If instructed to use deep sleep, Tasmota will put the device to sleep when:
- Connected to WiFi
- Connected to MQTT
- and two Telemetry messages have been sent.
Since a telemetry message will put the device to sleep I request readings by sending Status 10 messages.
The dashboard lets me configure the various timings for each device.
The flow can do some of the work of setting up Tasmota for I2C sensors too
Here I have told it to setup a new device Unst with SDA/SCL on GPIO 4 & 5, elevation and timezone for my location.
I am powering the BME280 from GPIO pin 15 rather than the VCC pin, otherwise it would still be powered when the ESP is asleep, concealing the self heating. This would no doubt be better with a transistor, but it seems OK so far. The sensors I am using have very low power consumption.
Observations
The amount of self heating varies from device to device, but it can be several degrees C, so significant.
I can only get data after the ESP connects to MQTT too, which can be from 5 to 30s after it wakes up.
From time to time I see one or a series of bad readings. They are easy to filter out since the pressure reading is impossibly low, somewhere around 600 HPa.
The BME280 reports a precision of 0.1 HPa and 0.1°C but it's not that accurate, leading to a jittery line on the chart. METAR data helps aeroplanes know how high they are above ground and is reported with a precision of 1 HPa.
Edit - the forum won't let me post the flow; it's too big (surprisingly). If anyone wants to give it a try let me know.