- Sat Apr 08, 2017 2:27 pm
#64752
I had the same problem with BME280: temperature reading too high.
Great information in this post:
https://www.kandrsmith.org/RJS/Misc/Hyg ... _many.htmlIt turns out that BME280 in default mode self-heats. The temperatures i was getting were 0.7C to 1.0C too high.
This is due to the fact that by default the sensor performs continuous sampling at high rates. This is true at least when initialized by Adafruit library.
The following changes will take care of the problem:
// Adafruit_BME280 bme
1. After initializing the library
bme.setSampling(Adafruit_BME280::MODE_FORCED, // takeForcedMeasurement must be called before each reading
Adafruit_BME280::SAMPLING_X1, // Temp. oversampling
Adafruit_BME280::SAMPLING_X1, // Pressure oversampling
Adafruit_BME280::SAMPLING_X1, // Humidity oversampling
Adafruit_BME280::FILTER_OFF,
Adafruit_BME280::STANDBY_MS_1000);
2. Before each reading:
bme.takeForcedMeasurement();
With those changes the temperature runs 0.6C - 0.7C lower and it agrees with most DS18B20 within 0.1C.
I hope this helps.