Use this forum to chat about hardware specific topics for the ESP8266 (peripherals, memory, clocks, JTAG, programming)

User avatar
By flopp
#60408 I just started to play with my BME280 and also noticed that the temperature is different then my SHT21's.
I have two SHT21 next to the BME280. SHT21's showing exactly the same temp and hum. BME is showing little higher temp about ~0,8 degree C wgen it is powered with 3.3 volt.
When I power with 5 volt it is showing 1-2 degree C higher, so it is definitely heating itself.

I did my tests by power off the sensor for 30 minutes then power on and check data every minute and I saw that the temp was rising for every minute.
User avatar
By Sam M.
#62885 Hello,

I read your question/answers and am curious to help and know more myself. Have you progressed more? Any news?

I'm trying to choose the best humidity sensor for my project as well and am considering the SHT31 vs the BME280. From what I've read online, I found that the BME280 is superior in reading humidity but not so much when it comes to temperature. I found this article that makes a serious attempt at finding the clear winner (http://www.kandrsmith.org/RJS/Misc/Hygr ... _many.html).

I also know you can purchase a one-step hygrometer calibration kit for less than $8 (using salts) to have a good reference. (https://www.amazon.com/Boveda-One-Step- ... ion+boveda)

Have you done that ? Any thoughts on the matter would be helpful. Especially why using the adafruit library made a difference in your calcs.

Thanks

Sam.
User avatar
By Manuel Bardea
#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.html

It 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.
User avatar
By whats_up_skip
#65406 [quote="Manuel Bardea"
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.

[/quote]

Would someone please suggest similar modifications to the this code: https://www.hackster.io/s-wilson/nodemc ... ket-7c77a3

If I understand correctly it is based on the finitespace code.

I will attempt to contact the finitespace developer about this issue.