Sous-vide cooking allows you to precisely control the temperature of cooked food (how "doneness" is measured) by immersing it in a carefully controlled water bath. It's possible, but seriously difficult, to do this just with a thermometer and a pot on the stove... but if you have an Arduino do all the hard work for you, you can literally "set it and forget it."


- Arduino microcontroller (I use the Uno... any will do)
- thermistor, or other temperature sensor (I used this one from Sparkfun )
- 3/16" diameter aluminum or copper tube, about 6" long
- shrink tubing
- clear silicone caulk
- relay controller (this one from Sparkfun is nice, but you can make your own pretty easily)
- 9V battery or 9V power adapter
- AC oulet
- AC power cord with bare leads
- project box (I used an old cigar box)
- Crock-Pot or similar slow cooker (must have "On" setting... the dumber, the better)
- display (optional, but nice to have)
- various hookup wires
- Ziploc bags or vacuum sealer

Disclaimer: this project involves household current, which is dangerous if you don't know what you're doing. If you've never dealt with household current and don't want to mess with it, go with the Powerswitch Tail II from the Makershed or Sparkfun instead of using the relay controller and AC outlet. Please be careful, and don't hurt yourself.

Step 1: Make Your Temperature Probe

FIrst we need to put together our temperature probe. This is basically our sensor (the thermistor), a protective tube, and a length of wire. The probe will stay in the water bath when you're cooking, so the wire has to be long enough to reach. First we solder the sensor to however many wires your sensor needs; our thermistor needs two wires. Use some shrink tubing to keep the leads insulated.

Next we're going to protect the sensor so the water bath doesn't affect our readings. Use an aluminum or copper tube (both are great thermal conductors) big enough fit your temp sensor. Seal one end of the tube with silicone caulk (or hot glue if you're impatient, but silicone would be better). When that has cured/solidified, slide the temp sensor into the tube as far as it will go, then fill the open end with more silicone/hot glue to seal it up. Use some shrink tubing at that end for good measure.
<p>You can simplify the wiring considerably if you buy an LCD that has the I2C controller built in. Yourduino sells them for under $6. Instead of the rats nest of wires to the display, there are two pin lines (A4, A5) plus GND and +5V. Use the LiquidCrystal_I2C library and you're ready to go with a lot less hassle and more free I/O pins.</p>
SAFETY NOTE: <br>I have taken a very quick look at your relay schematic, The thing I'm missing there is galvanic isolation. <br>When working with high voltages which are potentially lethal, you should ALWAYS use galvanic isolation, a simple opto-isolator between arduino and the relay will do fine. <br> <br>
<p>A relay, pretty much by definition, provides galvanic isolation. The only reason you might need to use an opto is if you're building your own solid-state relay using a TRIAC.</p>
I set up everything exactly how the instruction does it, sans the relay, just hooked up to my pc for testing. However I get unusually high reading when it powers on and i know its not 116 degrees in my room. I'm a total noob and was wondering how i could remedy this issue.
<p>When you are writing your code, initialize your variable to room temp. You can also include a delay before it starts outputting the temperature. Like, wait ten seconds before first read.</p>
I really appreciated the step by step on this project as it helped me with a few ideas I have. I am trying to convert a 17gal. beer cooler and so, will need to somehow attach my own heating element(s) to the top or the side without burning the cooler. How could I adjust the arduino code to compensate for this added function? <br>

About This Instructable




More by stayputnik:Arduino Sous-Vide Cooker 
Add instructable to: