Hi,
yesterday I got the brand new Enviro+ PHAT. First of all: it is a great thing!
But of course, there are some issues: My old weather Station (BME280 + Arduino) reads the following: 29.4 degC, 1014 hPa, 27% humidity… which I thing are real numbers (it’s hot in Germany ricght now).
Enviro+ says: 38.8 degC (it’s heated up from the CPU), 1025 hPa (right) and 10.4 % humidity.
Okay… I understand that I have to compensate for the CPU heating - no problem, but the humidity reading is also affected by the temperature issue. It is a relativ thing: if the air is hot it can contain more water, so the relative humidity is lower… the BME280 compensate this… but the chip doesn’t know the CPU temp and so it can’t compensate for it.
What is the best practise to compensate temp and humidity reading?
Hi
On mine, I extended the header to move the Eviro+ a small distance away from the Pi.
This brings the RH back to normal reading and you can do without any temperature compensation.
I have used a 90deg angle connector to keep the Enviro+ away from the RPi, but it does not help much. The temperature reading is about 2 to 2.5 deg. too high. The issue (as mentioned in the datasheet) is probably self-heating of the sensor. For weather applications, you are supposed to read it only once per minute and let it sleep for the rest. I tried that, and it helps a bit. But what makes a big difference is to have even just a little airflow across enviro+ At the moment, I am using a small 12V fan running at 5V so it makes no noise and you can just feel the air moving. With that I got it to within 0.5 to 1 deg of the actual temperature. The chip’s absolute temperature accuracy is only ±1 deg, so that’s as good as it gets.
I also mounted my Enviro+ at right angles to the PI 0 and have a tiny 20mm 5V fan blowing on the back of it. That gets the temperature to agree with nearby thermometers to 0.1C. The humidity reading is still low compared to two devices nearby. One shows 61% and the other 63% but the Enviro+ shows 54.5%.