I may have mentioned before that I intend to replace the Johnson Controls standalone temperature controllers I'm using on the two freezers with a custom controller built using an Arduino microcontroller. I also have considered adding a load cell or other digital weight measurement to the mix so I can keep up with the beer inventory without having to pick up and slosh the kegs. (Why? Because I'm nerdy and it looks like fun.)
I'm starting down that path now. I obtained an Arduino starter kit, an LCD kit, and some DS18S20 digital thermometer ICs from Hacktronics and spent a little time hooking stuff up over the last couple of days. What I've got so far is not a shining example of either hardware or software architecture. I'm reusing bits and pieces of stuff from all over the Internet just to make sure the components are working correctly. I will cite my sources when the project is more complete...I'm pretty sure nobody whose code or circuit ideas I'm using would want to be associated with this thing in its present state.
This video shows the Frankencontroller rolling through its four regular display updates. Temperature 2 and 3 are not connected to anything (and yes, the inconsistent capitalization was intentional, I needed to be sure the LCD was updating):
Here's a picture showing the temp reading in more detail.
The reading from the DS18B20 is pretty close to the reading on the probe thermometer. The guaranteed accuracy of the DS18B20 is +/- 0.5 C and its default D/A resolution is 0.0625 C using 12 bits. I'm doing a quick C to F conversion in the code and not bothering to adjust for the precision yet - in the final version I will probably just stick with integers for the temperature output. After all, if I'm trying to control the fermenter or the kegerator to a band of +/- 5 F does that extra 0.5 F precision really matter? I'm planning to deploy three of these sensors, one for each freezer and one for general purpose high-temperature stuff like mash/sparge water temperature and monitoring the wort cooling.