Use this forum to chat about hardware specific topics for the ESP8266 (peripherals, memory, clocks, JTAG, programming)

User avatar
By Marelli
#91125 I'm running various Temperature Sensors on Uno, Mega, ESP8266 and ESP32 but I'm curious which ones are the closest to the true temperature.
All senors are digital (I2C or data): DS18B20 (4x) , BMP280 (1x), BME280 (3x), TSYS01 (1x), MCP9808 (1x) and data is being logged at ThingsSpeak. The sensors are mounted outside, near to each other and protected from sun and rain. There are no heat or other sources nearby. Sensors are connected correctly (otherwise no data).
Most of these are "factory calibrated" according to the datasheet. Only the DS18 (incapsulated) can be calibrated using melting ice and boiling water, the others won't survive this.

Roughly the temperature ranges are 0,5 degree C +/- the average reading, also compared to nearby (<5km) weather stations. (all measurements within 1 minute)

It looks like the TSYS01 is the sensor 'delivering' the true temperature, but I'm not sure of that. Quite expensive sensor and already one didn't survive 5 VDC (oops).

Who can tell which of the above sensors are the closest to the true (realistic) Temperature?

What other 'reasonable priced' temperature sensor will be better than the ones I'm using?
User avatar
By eriksl
#91133 None of them do. They're not calibrated and each sensor (from the same type) can have another characteristic. I have about 50 temperature sensors operating simultanuously and believe me, from practice, they do.

A possible approach would be to calibrate them yourself. I have a digital "probe" style thermometer, using a bi-metal transition, which appears to be surprisingly accurate for the 15 euro's I paid for it. You will need to check at least two extreme temperatures and create a lineair correction formula (offset and scaling). A cubic correction formula would probably be better, but requires more "check" points.

Another appraoch can be (which I am using), is to simply deplay A LOT of sensors and calculate the average. This appears to work quite good.

Most sensors are within 2 degrees (Celsius) accurate, some of them can be 5 degrees of, and some of them only half a degree. Temperature sensors combined with other sensors (like humidity) are notoriously bad (e.g. Bosch BMx sensors and Aosong AM sensors). In my experience tmp275 is the best, most accurate.
User avatar
By eriksl
#91136 The stated accuracy in the datasheets is not realistic. I have seen two of the same type sensors reporting 4 degrees difference even though the datasheets says their accuracy is 1 degree.

Tmp275 is my favourite, it's (still) available as SOIC8 so you can solder it yourself. I even managed to solder a few TSOP8s (because I ordered the wrong ones) but it was very hit-or-miss, can't recommend it.