Building a Simple Sous-Vide Cooker Using Arduino

Sous-vide is a method for cooking food in a very precise manner to achieve consistently perfect results. The food is vacuum-sealed in a plastic bag and submerged in a temperature-controlled bath of water for a pre-determined amount of time, after which it is either ready to serve, or as in the case of steak, quickly seared in a hot cast-iron pan before serving. The result is food cooked to perfection, steak that's just as rare as you want it and slices like butter, or eggs poached to exactly the right consistency (at least in theory - in practice it can get a bit messy).

Conventional Sous-Vide machines are expensive, typically costing at least £100 for a low-end model. With my trusty Arduino UNO, a cheap slow-cooker, and some basic electronic components, I was able to achieve something pretty similar for a fraction of the cost. I followed this instructable for the most part, using the same temperature probe and LED display, but with much simplified code.

Here's how I did it.

Step 1: Components

You'll need the following:

Step 2: Wiring it together

Tthe temperature sensore will sit in the cooker filled with hot water, which will be connected to the mains extension. Our circuit will control the mains extensions cable, turning the cooker on and off, forming a basic feedback loop.

The wiring is fairly straightforward, and shouldn't require any soldering if you have a breadboard and a bunch of jumper wires. The trickiest part is connecting the relay to the mains extension cable.

Arduino Wiring Diagram

The relay will act as a switch for the slow cooker, and is controlled by a digital pin on the Arduino. For the relay module I am using, sending the pin a digital value of 0 (LOW), will activate the switch, in our case turning the cooker on, and a value of 1 (HIGH) will turn it off. This is known as Normally Open (NO) mode, where you have to activate the relay to connect the switch. The fact that you have to send a LOW signal to activate the switch can be a bit confusing.

To connect the relay to your mains extension cable, split it open using a craft knife and you should find three coloured wires - Earth, Neutral, and Live. The wire that we want attached to the relay is the Live cable, as this is the main line responsible for sending power to the cooker. The colour of this cable will vary depending on country, in the UK the live cable is brown. Cut this cable and strip each end, attaching one to the NO terminal of the relay, and the other to the COM terminal.

Step 3: Code

My code is available on GitHub, you'll need to install the following Arduino libraries for it to work: LedControl, OneWire and DallasTemperature.

Step 4: Safety and Testing

Once you've wired everything up and loaded up the code, it should be ready to test. When you power it up, you'll see two numbers appear on the display. The first number is the desired temperature, which initially is 65°C, and the second number is the measured temperature. The push buttons are used to control the desired temperature in increments of 0.5°C. Initially, the relay will be active because room temperature will be less than 65°C. To test everything works, set the desired tempreature to lower than the current temperature, and you should hear a click as the relay turns off.

The final product

Because we are dealing with high voltages, it is important to keep the electronics away from the cooker so that they don't get wet. I created a waterproof container by stacking two plastic take-away boxes, sandwiching the relay and exposed mains cables in the bottom compartment and the Arduino in the top, with holes cut between them for the wires. You might want to use some kind of water-tight sealant to be extra safe. I also used a battery pack to power the Arduino, connected directly to the 5V pin, which fits nicely inside the sealed box.

Step 5: Get Coooking!

Now that your cooker is set up, it's time to get cooking! So far I've tried steak and poached eggs, with varying results. One thing I've found to work well is to fill the cooker up with boiling water from a kettle and let it cool to the desired temperature, rather than filling it with cold water and waiting for it to heat up. It might take a few attempts before you get it right, but when you do it is well worth it.