Sous-vide is basically magic. Not just because it is done with electricity, either.
The general idea is that if you vacuum pack food, in most cases meats, and then put them in a water bath which is held at the exact target temperature. This creates a slow, damp cooking process in which it is impossible for the food to be overcooked. In real life it produces a strange grey lump of food perfection, so it helps to quickly sear the meat in an iron skillet afterwards to give it some color/glaze, but its worth planning for the internal temperature to rise a degree or two during searing.
I had been looking for something to control with my arduino, and after some badly executed expirments with controlling the lightlevel in rooms, this idea came up. It went suprisingly well overall. The first sorcery I had to try to do was making the LCD screen show something, which was at first pretty straight forward, but later on I found a problem of needing to push the reset button every time it started up for the first time or else it would behave strangely. It turned out that one of the data lines was going into a pwm pin as per the instructions in the code library I was using, but by switching it to a normal digital pin everything worked perfectly. Can't believe everything that you read I guess.
Next I hooked up a thermoresistor circuit (epoxied to waterproof it), a 2nd potentiometer and a button to measure the real temperature in the water bath, adjust the desired temperature, and reset the system respectively. I also used a powerswitch tail to regulate the AC power into the bath (in most cases I used a crockpot or rice cooker). I ended up making it all up as a shield so that I could quickly load the code onto the arduino, pop the shield on, and have the machine, without giving up the arduino forever.
As you can see down below, it is mostly empty space and the LCD, with a jumble of wires connecting the various data lines, a large wire off to the right which goes into the water bath, and a few knobs/buttons. The button up to the left does nothing right now, and the led in the bottom left corner does nothing, but I figured at some point I will surely think up a reason to use them, so they are there.
After that I ran all of the code through MATLAB using the arduino toolbox they have, which allowed me to watch the plots of temperature and voltage input in real time. I found some tutorials online, mostly for PID controllers, so initially I set out to tune a PID, but had trouble with the derivative term causing too much overshoot, so pretty quickly tried out a P controller (kp=40) with pre-refrence scaling, which worked nearly perfectly. The only other thing that wasn't extremely straight forward was taking temperatures samples every millisecond, and using a 100 period simple moving average to cut down on noise.
Finally, I could spend hours and days making delicious meats.
I've also made up some steaks, tilapia and chicken breast, which were equally amazing. Seriously, photos can't show tenderness, but everything I've cooked sous vide has completely changed my perspective on what tender and well cooked is, it's incredible.