BME280 Help, is it just me?

Hi,

I don’t know if my BME280 are faulty, one could be but all 3?

I have 3 of the Pimoroni BME280 boards, I bought them 2 years ago for a small weather station I was going to build but it was only yesterday when I got them out of their packets and soldered them to my board.
I place them with my my PiZero2 and got it running.
2 of the BME280 are reading high values on all the sensors (Temp,Pressure and Humidity)

I have check a couple of actual weather sites and a few local stations on Weather Underground to check the actual readings and mine are off.
So, it is currently outside the BME’s are reading 25deg C and 26deg C temp but according to the other live data from other weather sites it’s 15.2deg C
The BME’s are reading 1015.34hPa and 1015.19hPa but according to the other live data from other weather sites it’s 1021hPa
The BME’s are reading humidity as 31.58% and 30.31% but according to the other live data from other weather sites around 60%

Any idea it’s it possible to recalibrate them, I know I could apply an offset but I don’t know how well that offset might work say in 12 hours when it’s like midnight etc.

The BME’s are in a Stevenson box all by themselves in the northern shady side of the house, so it not near direct sunlight.The PiZero2 is in a small project box outside so it no where near the BME’s

Thanks

The temperature depend highly on how you wire and how you drive the BME280. Even if the Pi-Zero2 is far away, the sensor is connected and copper is a very good heat conductor. So you can expect heat-creep. And the Zero2 is an especially hot specimen with little pcb-area to dissipate the heat.

Even if you drive the BME280 from a Pico (25mA) instead of a Zero2 (something above 100mA), you will have wrong readings if you do not turn off the Pico in between.

Humidity depends on temperature, so if your temperature is wrong, the humidity readings are wrong as well.

Pressure is normally reported as pressure at sea-level. But the BME280 will always report local pressure, so you have to convert the reading. The formula is:

factor = pow(1.0-altitude/44330.0, 5.255)
p_sea = p_local/factor

You have to add your altitude in meters into this formula.

Besides the heat from the Zero2, the configuration of the sensor is also a source of wrong readings. The BME280 should be used in “forced mode” without oversampling. The code from Pimoroni uses “normal mode” with oversampling (at least the last time I have checked). But I am not sure how much this actually matters.

2 Likes