Project Sous Vide, Part 2
In part 1 of this series we looked at the basic physics of sous-vide cooking: we tested the thermometer and we measured the temperature variations in a pan of water. We concluded that one of the challenges was going to be getting the water sufficiently well mixed to have temperature variations of no more than a few tenths of a degree.
There's no progress to report on that front. We still need a good way to get sufficient mixing. But in the meantime we focused on making the controller work. One of the challenges (at least for me) was to get the low-voltage, low-power electronics to switch a 220V, 2000W heating element. That's 9 amps at 220V - not something to mess around with. To start with that, I decided to use a relay for this - something I never played with before.
This relay does the trick very nicely: it can be turned on and off by 5V, allowing me to run it from the same power source as the Arduino Nano that I'm using, and it can handle 10A at 220V. It's a serious piece of kit - it makes a big 'clunk' sound every time it switches. The transparent housing is a nice detail - it means you can see the movement of the contacts (and the flash every time the load is disconnected :-).
The heating element was very kindly donated by a friend: it was an old deep-fryer with a stench of old-and-dirty-and-rancid-fat that could raise the dead. I cleaned it as best I could with multiple rounds in the dishwasher and lots of further manual cleaning, and now it's at the level that I can stand being in the same room with it. Apart from the stench, however it's a great piece of equipment: the tank has a nice size, it effectively has a double-layered wall, and the heating element covers the whole of the bottom of tank. In addition, the way the heating element latches on to the side of the tank is very nice, keeping the element at just the right distance from the bottom of the tank. Finally, the metal basket (the one that otherwise would hold the french fries) comes in very handy to hold the food - and it appears that it even helps conduct the heat throughout the tank.
For the controller I used an Arduino Nano, a three-color LCD similar to this one from Adafruit, and a nifty prototyping board from ebay (I can really recommend these - they're more expensive than the standard ones, but the layout of the traces is very well thought out). I picked up a few nice tricks from the Adafruit Sous-vide tutorial: I like their way of thinking of the user interface as a `state machine', and I had never seen before how to make data persistent by saving it in the EEPROM on the Nano. And Brett Beauregard's PID library is very easy to use.
Here you see the whole setup:
I enclosed the 220V-part in a little box to prevent anyone from accidentally touching it. It's only cardboard, but for the moment it'll do.
Today we tested the setup on eggs. The masters say that eggs come out completely differently when you vary only a little in temperature or duration of the cooking, so that makes for a good test.
So how well did it do? After playing around with the PID coefficients for a while, the system seems to work reasonably well. Of course the thermal mass of the tank with the water is rather big, and as was to be expected, this makes the controller slow in settling on the equilibrium; it takes at least ten or fifteen minutes. After turning the setup on, the temperature overshot the target value by a few degrees, but upon coming back down it settled very nicely at the target value, with some fluctuations in the order of maximally 0.3 degrees Celsius up or down. Not bad for a first try!
We still need to do some tests to find out how constant or variable the temperature is in this tank. To my surprise, the thermometer shows a lower temperature if we hold it against the metal basket than if we let it dangle in the water close to it. The basket itself rests on the heating element, which is why it surprises me that the basket appears to be colder than the surrounding water, even if the thermal conductivity of steel is a hundred times as large as that of water. Maybe the electric contact with the basket is perturbing the temperature measurement? More experiment is needed!
As for the texture of the eggs - we saw some differences, indeed. It was very interesting to see. Maybe I was a little naive, but I was a little disappointed that none of the eggs had nicely consistent egg whites - the whites had different parts to them, with rather different texture. I guess that to get all the white of one consistency, and all the yolk of another, one needs to experiment a bit in order to get the parameters right ...
There's no progress to report on that front. We still need a good way to get sufficient mixing. But in the meantime we focused on making the controller work. One of the challenges (at least for me) was to get the low-voltage, low-power electronics to switch a 220V, 2000W heating element. That's 9 amps at 220V - not something to mess around with. To start with that, I decided to use a relay for this - something I never played with before.
This relay does the trick very nicely: it can be turned on and off by 5V, allowing me to run it from the same power source as the Arduino Nano that I'm using, and it can handle 10A at 220V. It's a serious piece of kit - it makes a big 'clunk' sound every time it switches. The transparent housing is a nice detail - it means you can see the movement of the contacts (and the flash every time the load is disconnected :-).
The heating element was very kindly donated by a friend: it was an old deep-fryer with a stench of old-and-dirty-and-rancid-fat that could raise the dead. I cleaned it as best I could with multiple rounds in the dishwasher and lots of further manual cleaning, and now it's at the level that I can stand being in the same room with it. Apart from the stench, however it's a great piece of equipment: the tank has a nice size, it effectively has a double-layered wall, and the heating element covers the whole of the bottom of tank. In addition, the way the heating element latches on to the side of the tank is very nice, keeping the element at just the right distance from the bottom of the tank. Finally, the metal basket (the one that otherwise would hold the french fries) comes in very handy to hold the food - and it appears that it even helps conduct the heat throughout the tank.
For the controller I used an Arduino Nano, a three-color LCD similar to this one from Adafruit, and a nifty prototyping board from ebay (I can really recommend these - they're more expensive than the standard ones, but the layout of the traces is very well thought out). I picked up a few nice tricks from the Adafruit Sous-vide tutorial: I like their way of thinking of the user interface as a `state machine', and I had never seen before how to make data persistent by saving it in the EEPROM on the Nano. And Brett Beauregard's PID library is very easy to use.
Here you see the whole setup:
I enclosed the 220V-part in a little box to prevent anyone from accidentally touching it. It's only cardboard, but for the moment it'll do.
Today we tested the setup on eggs. The masters say that eggs come out completely differently when you vary only a little in temperature or duration of the cooking, so that makes for a good test.
So how well did it do? After playing around with the PID coefficients for a while, the system seems to work reasonably well. Of course the thermal mass of the tank with the water is rather big, and as was to be expected, this makes the controller slow in settling on the equilibrium; it takes at least ten or fifteen minutes. After turning the setup on, the temperature overshot the target value by a few degrees, but upon coming back down it settled very nicely at the target value, with some fluctuations in the order of maximally 0.3 degrees Celsius up or down. Not bad for a first try!
We still need to do some tests to find out how constant or variable the temperature is in this tank. To my surprise, the thermometer shows a lower temperature if we hold it against the metal basket than if we let it dangle in the water close to it. The basket itself rests on the heating element, which is why it surprises me that the basket appears to be colder than the surrounding water, even if the thermal conductivity of steel is a hundred times as large as that of water. Maybe the electric contact with the basket is perturbing the temperature measurement? More experiment is needed!
As for the texture of the eggs - we saw some differences, indeed. It was very interesting to see. Maybe I was a little naive, but I was a little disappointed that none of the eggs had nicely consistent egg whites - the whites had different parts to them, with rather different texture. I guess that to get all the white of one consistency, and all the yolk of another, one needs to experiment a bit in order to get the parameters right ...