I build Alton Brown's flower pot smoker a while ago, and have used it quite a bit. The first few times trying to control temperature with a meat thermometer and by adjusting the hot plate inside. This sucked. Then I used it with an oven thermostat, but I found it pretty imprecise. I've finally built a simple circuit controlled by an Arduino that should make all this better.

I'm using a DS18B20 temperature sensor because I had one from another project. It's only rated to 257F but I tend to smoke cool anyway. I am not relying on the parasitic mode because that's supposed to not work well at high temperatures. The Arduino (a RBBB from Modern Device) reads the temperature. If it's below 210F then it turns on a relay. If it's above 210F it turns the relay off. I might experiment with fancier algorithms later.

The relay is soldered in line with an extension cord, which just has the hot plate plugged into it. Because the relay's coil voltage is 12V, I use a 15V (unlabeled) power supply. A 5V regulator creates power for the microcontroller and the display.

I got some 7-segment LEDs to display the current temperature. Using a 7 (1 for each segment) by 3 (for each digit) matrix they are controlled with 10 pins. Only 1 segment is lit up at each time, so each segment is on for at most a 7th of the time. With my current code it's worse than that, but I don't know how much. (Scope donations are welcome.) This works great indoors, but as you can tell in the pictures is not bright enough to be read in bright sunlight. I stuck a tube over the display so I could read it.

Anyway, results: It worked pretty well. I had a problem with getting the sensor in the right place. Probably this has to do with the air flow in the smoker. I might drill a hole in the lid next time instead of running it through the side somewhere. But once I had it in a good spot, everything was very reliable. With the oven thermostat the temperature would regularly be off by 40F either way, and I'd check up on it every 10 minutes and often would adjust the thermostat a little. There was none of that this time. I still checked every 15 minutes, but towards the end left it alone for almost an hour. I overdid the ribs I put in there a bit, but the flavor was still good, and the thick parts came out very nice.

You can grab source/schematic here. The schematic is a little rough, but all the wires are there. It does show 2 buttons which I haven't wired up yet, and for which no code exists. The idea is to use them to change the goal temperature. I build the code with jam and avr-gcc. This is not an Arduino project. I'm just using that hardware.

I'd love to hear from anyone who builds this, has questions, or has done something similar.