Although I'm an avid electronics enthusiast, my dirty little secret is that I haven't actually done any hobbyist electronics in quite a while. (It's been over a decade, I'm afraid, since I actually built a project.) I still pick up Circuit Cellar magazine each month and read the articles, but I've allowed life to take me away from actual blinkylights work. I've finally decided to press on with a project, any project, to get back into this hobby that I enjoy so much.
Sous vide cooking has apparently taken the maker/hacker community by storm. And I'm curious enough about it that I want to try it, too!
In case you haven't heard, sous vide (French for "under vacuum") cooking is a method of cooking food at a lower temperature, for a longer period of time, than traditional cooking methods. Food is placed into a vacuum sealed plastic bag, and the bag is placed into a temperature-controlled water bath. By cooking for a longer period of time, the heat gradient in the food is reduced so that food has an even 'doneness' throughout. By using a lower than normal temperature, the chemical reactions that take place during cooking can be better controlled, which allows for textures and tastes that cannot be achieved using traditional cooking methods. The combination of lower temperature but longer cooking time ensures that food is safe to eat.
Professional sous vide cooking apparatus can cost several thousands of dollars. Even a commercial unit intended for home use, the Sous Vide Supreme, sells for several hundred dollars.
This is an excellent candidate for hacking! Why pay several hundred dollars for a device that I can make for a lot less than that? There are several DIY sous vide projects on the web, one of which was featured in Make magazine issue 25.
So I've decided to build a sous vide cooking controller of my own design. I could, of course, clone one of the many DIY projects that others have documented on the web, but that deprives me of what, to me, is the most fun part of being an electronics hobbyist: the challenge of designing and creating a new circuit.
I also want to document the entire design and build process here on the blog so that those new to this hobby can get a glimpse into how projects go from idea to reality. So let's start!
At the most fundamental level, I need a controller that will maintain a constant temperature water bath. What design features are implied by that statement? Well, I'll need a container for water, for starters. I'll also need some way to add heat to the water, and a way to measure that heat.
After considering several options, I decided to use an off-the-shelf slow cooker ("Crock Pot") as the main part of the project. This takes care of both the container and the heating element.
To measure the temperature, I've decided to use a Dallas Semiconductor (since acquired by Maxim) DS18B20 digital temperature sensor. There are many electronics devices that can measure temperature. I chose the DS1820 because it requires no analog circuitry at all and gives a reading that's already calibrated in the real-world unit of degrees Celsius.
To control the heating element, I'm going to use use a TRIAC driven by an optoisolator. This is a fairly common application and there are examples of this circuit in many corners of the web.
To bridge the gap between the input (temperature measurement) and output (control of the heating element), I'm going to use a microcontroller. Of course, it is possible to design a circuit like this using only analog parts, but I'm a digital guy and my passion is microcontrollers. Besides, a microcontroller will allow me to add features that I couldn't get with an analog-only system.
The user interface will consist of a two-line character LCD and a few buttons. This will allow the user to program the temperature setpoint and desired cooking time, and will provide feedback to the user as the unit operates.
Lastly, I'll throw in some kind of audible alarm so the system can alert the user when the water bath is at the desired temperature (and cooking is ready to start), and when the cooking time has elapsed and the food is completely cooked.
At this point, a block diagram can be drawn to represent the entire system. Block diagrams like this are HUGELY useful in the design stages of an electronics project. In this stage, the details of each subsystem don't have to be known; only a general idea of the subsystems that will make up the final project and how they relate to each other. My block diagram looks like this (click for larger version):
Block Diagram of the Sous Vide Controller
That sums up the high-level design of this project. In the next installment, we'll select actual hardware and do some more detailed planning, and arrive at the first iteration of our project's schematic.