I had the parts I need 3D printed, partly because it looks a bit nicer and partly because I need to replace the knob with one that’s easier to attach a servo to, and so needed something with a D-shaft. Designing those parts made me learn more about gear measurements than I ever thought there was to know. Like the author I went with the DS18B20 1-Wire temperature sensor, mostly because it was the first thing that came up on Sparkfun, so I’m glad to hear it was a good choice.
I’m using an Arduino to drive the circuitry, sending the temperature and receiving control commands via serial over USB to my home server. This works pretty well (and allows for fancier logic than doing it all on the Arduino), but has the interesting result that when I’m compiling software the control program can get swapped out and my heat switches off (or rather, gets turned down to 55°F) until the thermostat daemon gets paged back in!