Siri Controlled Arduino Using Ruby


This snippet of Hello World code lets [Nico Ritschel] turn the Pin 13 LED on his Arduino on and off using Siri, the voice-activated helper built into iPhones. The trick here is using the Ruby programming language to get Siri Proxy talking to Arduino via the USB connection. He calls the project siriproxy-arduino.

On one end of the hack resides SiriProxy, a package not approved by Apple which is capable of intercepting the Siri messages headed for Apple’s own servers. The messages are still relayed, but a copy of each is available for [Nico’s] own uses. On the other side of things he’s building on the work of [Austinbv’s] dino gem; a Ruby package that facilitates control of the Arduino. It includes a sketch that is uploaded to the Arduino board, opening up a Ruby API. The collection of code seen above defines the pin with the LED connected and then listens for a specific Siri commands to actuate it.

Take a look at [Nico’s] explanation of the module in the video after the break.

7 thoughts on “Siri Controlled Arduino Using Ruby

  1. I’ve been working on this for a bit myself. I almost thought someone had found my github repo when I saw that code. I was lazy and had a dead bus pirate, so I just used the still-good ftdi chip and some relays in what is now known by my wife and I as “the pill bottle of terror.”

    Lately I’ve been waking up to lights as an alarm, and once I put these triacs on my desk to good use it should be a whole lot less jarring. Also, being bedroom lights— well, “wing-woman” just doesn’t seem like quite the right term, but hilarity will ensue.

  2. @Sparky:
    Do you have an article/project blog for your implementation? The best part about HaD links are the writings of the project creators, expressing how they overcame challenges throughout the process. Videos are generally expected but the documentation and story behind the video is key.

    1. That’s a really good point and something I hope to improve on this year, some of my documentation plain sucks and others are spread around between github repo, blog and other places. Thanks for the feedback Josh! You cans find some more info on my github.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.