Enviro Weather BME280 incorrect temp

I’ve been running the enviro weather over usb for a few days while I get my html/js/css set up to display what it reads and I’ve noticed the temperature is quite inaccurate. I was concerned with the heat from the pico throwing off the sensor but even after leaving it off for a night the first reading I took as soon as it was plugged in was off by about 4 degrees F. Over the next 20 minutes or so its only gotten farther off from the actual temp in my room and currently is about 10 degrees off.
I’m concerned though that the sensor may just be defective though as the 280 does appear to have been placed so its offset from the board to prevent this kind of thing. I’ve also taken a look through the actual code and there does not appear to be an offset that would be messing with the reading software wise.

Has anyone dealt with the same thing on your enviro weather? And if so what do?

I have a few of these BME280 and they all show different temperatures. I would not worry about 5°F. But 10°F is a bit on the high side. BTW: same with other temperature sensors, the variation I see under identical conditions using the same type of breakout is not explained by the accuracy claimed in the datasheets. It could be that the components on the breakout play a role though.

None of the many sensors I’ve tried ever give a reading really close to my old calibrated photographic mercury thermometer. You just have to work out your own offset. All rather disappointing really.

I noticed this some time ago, see here:
Testing Temperature Sensors - Which One for Me? : 15 Steps (with Pictures) - Instructables

Man thats super disappointing to hear. I could excuse a few degrees off but the entire reason I got an enviro weather was to get accurate weather for my location and figured an all in one would be better than building piecemeal .
It looks like the BME280 has some configurable settings for filters and oversampling so I’ll give those a look and hope a combo of those with moving to battery to allow deep sleep will help.
Or at least make the temp offset consistent enough I can reliably adjust.

Very nice write-up. I currently switched over to the AHT20 breakouts from Adafruit with Stemma/Qt connectors. Sufficiently accurate and not expensive. I only need a single pressure reading (all the same in all rooms), so a single BME280 will provide that.

@ChaiFox : don’t be too disappointed, rather think about the relevance of information. How important is it to have the exact temperature? And does something like that really exists?

You quote your “actual temp in my room” but hey: do you have a calibrated thermometer for that? And is it constant in your room? Identical at the window, near your TV, near your PC and so on?

So the best you can do is to define your own “exact temperature” and calibrate your sensors against that golden standard.

The temp at my desk is constant in that there’s no cross breeze or sources of sudden heat/cold plus I’ve got it next to an actual calibrated digital thermometer that I’m comparing the temp readings to. As far as accuracy goes I don’t need fractions of a degree but I expect at least +/-1 degree accuracy. Even 5 degrees is the difference between needing a jacket when I walk the dogs and not.
The biggest issue is that it’s not consistently inaccurate so I can’t hardcode an offset.

Have you tried powering it by battery rather than USB? If it’s powered by USB the board will warm up more as the Pico W (and more importantly, the wifi module) is always on. If it’s powered it by battery it should be able to go to sleep in between reads, so the BME280 readings should be less affected by board heat?

You should take a few minutes and read the BME280 datasheet. Absolute accuracy of temperature reading is ± 1°C (which is I think 1.8 °F), below 0°C even worse. And there is a footnote: “Temperature measured by the internal temperature sensor. This temperature value depends on the PCB temperature, sensor
element self-heating and ambient temperature and is typically above ambient temperature.”

And this is data for the pure sensor. I don’t know which breakout you are using, but some have an on-board regulator, some only resistors and a cap. All of these components will influence the accuracy.

You can try control the pcb temperature by various measures like @hel suggested. But in the end if you want to have an “exact temperature” you will need to calibrate your sensors. The good thing is that math has more to offer than constants. The bad thing is that higher math is not well suited for MCUs