Tag Archives: RaspberryPi

JAAS Project Lake Placid – Dinner as a Service – Overview

This post is part of a project I’m calling ‘Dinner As A Service.’
Electricity Costs

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.

VMware vCloud Automation Center
VMware vCenter Orchestrator

Raspberry Pi
Solid State Relay
Pi Cobbler
2 x 7 Segment LCD
Temperature sensor
LED, Case, other bits..
Slow Cooker
(we’ll expand on the parts and builds later…)

First lets start with the basics – What Is Sous Vide? According to Wikipedia:

In other words – food awesomeness using self service, automation & electronics.   Here’s a site I got most of my information from.  They make a pricey, but off the shelf cooker.

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.


3. Yay!

4. Some magic happens in the background (via vCenter Orchestrator) and I get a notification to my phone that the temperature has been set.


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..

Tagged , , , , ,

JAAS Project Madison: VM AutoWake /w RFID

September 29 2013:
Adding content from GitHub

Files hosted on GitHub HERE

Parallax RFID Card Reader /w cards (Radio Shack 276-212)
Raspberry Pi (Adafruit 998)
Pi Cobbler (Adafruit 914)
Logic level converter (Sparkfun BOB-11978)

VMware Orchestrator
VMware vCenter
Tiny python script

This idea simply came from the thought ‘i wonder if it’s possible…’   I’ve always wanted to build something with RFID, and I’ve always wanted to play with a Raspberry Pi, so no time like the present.

The thought here is to simulate swiping your badge at your office in the morning when unlocking the door, and automatically have it wake up your desktop virtual machine so it’s ready for you by the time you need it.

Initial tests with the hardware went well:

I can’t claim credit for the wiring of the rPi and RFID reader.  Check out this blog for the exact connections.  It’s really easy.  The pi cobbler makes it easy to prototype stuff on a breadboard.  The logic level converter is so you don’t fry the rPi from the higher voltage the reader needs.


(1) A simple python script loops reading serial data from the RFID reader.  (Based on this post.)

(2) When a badge is read, a sound plays and a call over REST is made to vCO to invoke a workflow.  The badge ID is passed to the workflow.

The rest of this (but not REST.. ha ha. nerd joke.  ok sorry.) is within a vCO Workflow.  At the current time it’s more or less one workflow which isn’t super elegant, but I had issues doing certain operations when separating it out.  A future revision will make this part better.

(3) The workflow takes the badge ID, looks it up in a SQL DB (i wanted to test doing operations on an external DB too), gets the employee ID, – albeit overkill, I wanted to give it more real world context and functionality.  Think of this as an integration with a 3rd party security system, and a HR system or Active Directory.

(4) The employee ID is used to lookup the name of the desktop from another database table.

(5)  The workflow does some magic to find what the exact VM object is from the string of just the name.

(6) VM is powered on.

Pretty basic, but this covers an external VCO invocation over the API, external DB CRUD, variable manipulation, and VM power operations.

Here’s the full video overview:

All done for now.   The rPi is off mining bitcoins on a shelf until it’s called to duty next. Stay tuned for a new project in a few weeks..

– Clean up the vCO, make it more modular
– Python script reads badges way too fast causing duplicates
– Package up content and post here (workflow + python)


I take really good notes, but I may have missed a site that was helpful, sorry if I missed you!

Further Details  here

Back to the Main Project Page

Tagged , , , , , ,