A dashboard for ESP8266 with BME280 and Tasmota


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.

4 Likes

Nice comprehensive test!

Must admit that I was looking at putting my ESP8266s to sleep, but decided accuracy was more important than the small power drain, especially on the BME680 'Gas' measurement, so left them on to get to a soak temperature. All of the devices are enclosed in the same size (3D printed) plastic box and are not in direct draughts.