This project has been a while in the making as it’s the most elaborate I’ve attempted to date. To fully document this one it is going to span multiple posts so be patient and check back over time if you are interested in these weird projects of mine.
To summarize, this project starts with VMware vCAC 6.0 where one orders ‘dinner’ and ends with the food being cooked in a Sous Vide water bath. Over engineered, over kill, and quite eccentric but hey it’s fun. And I learned a lot along the way in ever area.
Solid State Relay
2 x 7 Segment LCD
LED, Case, other bits..
(we’ll expand on the parts and builds later…)
First lets start with the basics – What Is Sous Vide? According to Wikipedia:
1 “Sous-vide (/suːˈviːd/; French for "under vacuum") is a method of cooking food sealed in airtight plastic bags in a water bath for longer than normal cooking times—72 hours in some cases—at an accurately regulated temperature much lower than normally used for cooking, typically around 55 °C (131 °F) to 60 °C (140 °F) for meats and higher for vegetables. The intention is to cook the item evenly, and not to overcook the outside while still keeping the inside at the same "doneness", keeping the food juicier.”
What is a good application automation? Electronics and vCO! In truth the software part really just kicks it off (though I did add in some functionality that makes picking your temperature easier). The special sauce is in the electronics and the script on the Raspberry Pi, but we’ll get to that.
End to end (or menu to plate?), here is how it all works:
0. In the beginning, there was meat. The wife and I joke that we know a guy and buy meat out of the back of a truck. It’s actually not far from the truth however. Check these guys out if you are in Colorado. They deliver to locations all over the front range.
1. The project starts with the menu. We’re using vCloud Automation Center 6 (vCAC) here as the front end. The main reason was so that I could learn more about the internals of it, but also because this sort of thing is right up it’s ally. Well, not cooking food – but a frontend for the automation of services.
2. Let’s say I want to cook up a nice steak tonight. I choose beef and I am given the choice of how I want the meat cooked. This is big advantage to using this front end – I don’t know off the top of my head what each temperature range is so associating it this way with a label is great. I’m going to pick Medium here (140d F) since my other/better half doesn’t like it any redder.
5. Because I’m a super nerd, I also get it to my watch. In truth, it’s actually really handy.
6. On the Raspberry Pi, there is a python daemon running called Raspibrew (some guy built this for homebrewing beer! Awesome!). I used this because it has PID intelligence built in (so I didn’t have try to learn to code one…) and it has a REST api (which before I realized was included had already written one in node.js…ahwell….)
7. The rPI is housed tentatively-permanently in a project case along with the rest of the electronics. Most important is the temperature sensor, and the solid state relay. When we hit our target temperature, the relay shuts off power to the outlet the slow cooker is plugged into.
8. We wait for it to heat up. Usually when I’ve been cooking I wrap the slow cooker in this heat shielding since it appeared I have a pretty crappy cooker that looses heat fast and has a weak heating element. Getting it high enough for vegatables was almost impossible without this.
9. Also as an aside, during this whole heating and cooking process I have a separate python script I made that writes the temperature readings out to Xively (previously Cosm) for historical tracking. This has been useful for when I was studying the temperature swings to see how much I needed to tune the PID values.
10. When we get to our target temperature another alert is sent out letting me know. This has been really useful so I can go mill around doing other things and not watch it. (either preface with why it says 50, or do this screenshot again for real)
11. Drop the meat in!
12. Now this is the part I have not done any further automation on. The rPI’s PID algorithm is still in charge of tweaking power to the slow cooker when it thinks it needs it, but I have not set up any timers yet. I wanted to add another 7-segment display with a countdown, and prompt for this in vCAC but the box got crowded with other bits and I had trouble figuring out how to reliably do a countdown timer on a rPI without a real time clock. Feature request!
13. When our cooking time elapses, we continue on the cooking process. Sous Vide is an awesome way to get super tender meat, but isn’t great on the eye candy front. Browning in a hot pan or using a torch for a bit works wonders.
Pull it out of the bath. It’s really ugly when cooked this way, but oh so tasty.
Brown the meat. (During this cook I really should have gotten a much better crust going. I was just excited to be using this steak sauce for the first time in a long long time….!)
14. Finish up whatever sauces and sides are in order for the day and boom…. Dinner!
I’ll follow this post up more info on the hardware, software, and other bits. Stay tuned..