Hi all,
I’m testing the BME280 sensor with ESP32 over I²C. Temperature and pressure are stable, but humidity jumps around ±5% at room temperature.
Tried so far:
-
Different pull-ups (4.7k / 10k)
-
Added delay between reads
-
Power from ESP32 3.3V regulator
Still unstable. Do you usually average multiple samples in software, or is there a better hardware solution?
Thanks!
Yes. Humidity sensors are not very stable or accurate, compared to other types you may have used.
Try to use the filtering and oversampling to do averaging directly from the hardware→ SparkFun BME280 Breakout Hookup Guide - SparkFun Learn
1 Like
Averaging multiple samples is an effective approach. The ESP32 and regulators run warm and make RH read low/jumpy. Put the BME280 on a little “stub” board or cable it >2–3 cm away from the ESP32 and any power devices. Bare sensors near fans/vents show fast swings. A small, porous enclosure (vented box, breathable tape) smooths gusts without “smearing” real changes too much. If you plan to test some other temperature and humidity sensor to see which one works best, you can also try HDC3020: HDC3020 and HDC3020 Humidity Sensors - The Engineering Projects
1 Like
Good points about oversampling and power noise. I also noticed that when the sensor is placed too close to the ESP32 regulator it drifts a lot more.
For anyone who wants to double-check the pinout and specs, here’s a BME280 module reference I’ve been using: BME280 datasheet. It helped me verify voltage and I²C connections while testing.
So far adding a bit of averaging plus moving the sensor away from heat sources gave me the most stable results.