Remix.run Logo
▲ tzs 2 hours ago

> To get an accurate base for benchmarks, I decided to calibrate it against a lab-certified thermometer at a friend’s butcher shop, as weirdly as that sounds. His particular thermometer gets checked and calibrated by the state on a schedule (every 3 months) because it sits inside a commercial meat refrigerator and it is required by law. After calibration, my MHO-C401 needed an offset of minus 0.5°C and plus 4% humidity to match the reference reading exactly.

> It is worth clarifying from the start that my setup does not represent typical room comfort conditions, since the calibration was done at a much lower temperature, around 4°C. Sensors do not always respond in a perfectly straight line across a wide temperature range, so this fixed point is not a guarantee of the exact same accuracy at room temperature.

This can be fixed pretty easily if you are up to a little simple DIY.

Instead of using the MHO-C401, calibrated at one point against a lab-certified thermometer, build on a solderless breadboard your own temperature/humidity sensor using an ESP32 or ESP8266 dev board and a Sensiron SHT45 temperature/humidity sensor and program it using Arduino.

The SHT45 communicates with the ESP over I2C. The wiring is simple: ESP 3.3V, GND, SDA, SCL to SHT45 VCC, GND, SDA, SCL, in that order. Just 4 wires. The ESP dev board will be powered by USB. (If you need it to be battery powered, just use a small USB power bank).

The SHT45 has an accuracy of ±1% RH and ±0.1℃ out of the box.

If you want even better temperature accuracy add a tmp119 temperature sensor. This too uses I2C so the hookup is the same as the SHT45 hookup. It has a temperature accuracy of ±0.08℃ max and it typically is ±0.03℃ and is NIST-traceable out of the box. This is across a range of 0℃ to 45℃. (Outside that range it is ±0.2℃ from -55℃ to 150℃).

Adafruit has all the sensors [1][2]. Those have JST connectors using a standard pinout for daisy chaining I2C devices, which would be good for this application so when measuring temperature in the fridge or freeze you don't have to put the whole breadboard assembly in there. They have cables up to 400mm long [3].

You know what...you don't even actually need the breadboard! Here's a JST to female socket cable [4] that could connect one of the sensors to the pins on the ESP dev board.

ESP, that cable to the sensor, and if using two sensors, the sensors daisy chained with JST to JST cable.

Adafruit has ESPs also, but they seem to be out of stock on most of them. There are plenty of suitable ones on Amazon that are pretty inexpensive.

I'd say go for an ESP32 C5 or C6. They both support 2.4 GHz wifi and Zigbee, so your have the choice of reporting reading to a web server or making your DIY reference temp/humidity sensor use Zigbee. The Arduino library from ESP includes built in classes to make making Zigbee sensors easy.

Oh, they also support Matter over wifi, so you could make this a Matter device.

The C5 adds 5 GHz wifi.

Just remember that an ESP32 generates enough heat due to the radio that these sensors will pick it up if the are too close. If you build on a breadboard don't be the sensors right next to the ESP.

This is a fairly reasonable first project if you've not done any MCU stuff before but do have programming experience, especially nowadays with LLMs. They seem to have a pretty good grasp of Arduino stuff. (Don't just vibe code it! Just use them when you get stuck on something or want some documentation clarified or things like that. That will be a lot more interesting).

[1] https://www.adafruit.com/product/5665

[2] https://www.adafruit.com/product/6482

[3] https://www.adafruit.com/product/5385

[4] https://www.adafruit.com/product/4397