Bosch BME280 self-heating
Introduction
When you’re creating project to measure temperature and optionally other environmental parameters. You probably want to be close real temperature readings with relatively small error. A web stores shows you Bosch BME280, which should be the perfect solution for your project. After a while it turns out that your readings are a little bit too high from reality, so what happened?
Problem description
According to the page 12 of the documentation, the sensor is self-heating. This means that you are going to end up with higher readings than the ambient temperature. The kandrsmith.org did comparison on hygrometers, and showed that average of temperature accuracy is about ~0.5 degrees higher than normal.
Solution
There are a few solutions that you can introduce:
- Change to a to more accurate sensor like SHT71, AM2302 e, HTU21D K, etc.
- Read data in forced mode with recommended settings in documentation (page 19, section 3.5.1).
This solution is commented in Adafruit’s BME280 library and also implemented in my project using Bosch’s official driver using forced mode - Add an offset to the temperature value subtracting between 1.1-0.5 degrees