How to design a good case for ESP32 and BME680?

Dear community,

I designed a case for my ESP32 and BME680. Unfortunately, the ESP32 radiates heat that influences the readings of the temperature sensor.
I thought that my design would have a good enough air flow and I added a little wall to keep the heat away from the sensor.

my design: Fusion

So, how do you design your cases for your ESP32? I would be very happy to get some new ideas.

Chris

1 Like

I stuck mine on the outside of the project box it’s in but I still have to use temperature_offset: 5.2 to make it read more accurately.

Hi @rouxdoo,

do you mind sharing a picture of your box?

Be aware, there seems to be a bug in the ESPhome BME680 component, which leads to temperature misreadings. ESPHome and BME680: strange VOC values - #10 by schneich. I assume, an update will be available soon.

I also have a dfrobot 0610 presence sensor in there facing the living room. I visited the link you sent and I am not experiencing erratic temperature swings using sample_rate: LP and it seems accurate after I managed to fine-tune the temperature_offset.


I use some Roof insulation to stop heat getting to the sensor. Don’t rub your eyes after handling it. I tend to use bmp280. Heat correction usually less than 1 degree C.

I note that the latest ESPHome update includes the GitHub update for the BME’s and it is supposed to specifically address temperature over-statement. After the update and calibration I still need to use temperature_offset: 5 vs 5.2. Not much of a change.

I note that the humidity is wildly lower than 2 other humidity sensors I have deployed so I am doubting the accuracy of the sensor itself.

@rouxdoo

I face the same issue. If you put in a temperature offset for the BME-component, there is a ‘correction’ of the humidity, as they assume that absolut humidity is still the same.

What version did you have before the latest update? Which of the 3 BME components have you implemented? I wonder because I would provide that info on GitHub, so that they can check the code for that version.

In my case, temperature is very accurate with the new update - as long as I don’t put the sensor in my enclosure. Heat from the ESP32 is causing misreadings. I will make another version of my enclosure an the set an offset for humidity only.

I am using bme68x_bsec2_i2c in my yaml. I have not imported directly from GitHub but rather just use whatever is default for the latest ESPHome version.

Are you saying that it is possible to specify a humidity_offset? That is not in the documentation. My BME680 is on the outside of a project box so the heat of the esp should not be a factor.

Well, documentation says that you could use “All other options from Sensor.”

I did not yet test it, but you should be able to configure an offset directly underneath the humidity sensor. As far as I was told, this offset will not be taken into account for the gas resistance calculation. (Where as the temp offset that you can provide for the BME680 component is taken into account for humidity and the gas resistance calculation.)

I see. So if I use a sensor filter to specify an offset I can change the reported value. This all leaves me wondering if I should find another sensor that is inherently accurate rather than one that spits out values that may vaguely approximate conditions.

My first version of the case was not good. The ESP32 radiates too much heat, so that the readings from the sensor are wrong.

I re-designed my case and it has better air flow now and the sensor is further away from the ESP32.

I am happy with my new case, but unhappy with the sensor itself. While setting this up, I lost trust in the sensor. Temperature is okay, but humidity is off and VOC-values spike from time to time. If you plan to only have a look at the IAQ-values and not going into details, the sensor is okay.