The goal of the Internet of Things (IoTs) is to make everyday objects connected and smarter to shape our environment. Currently, every device requires internet-connected electronics. This model is not scalable or affordable. There are off-the-shelf products that exist, which are not internet-connected, however have wireless infrastructure.
Our project aims to exploit these devices to build an Internet hub that acts as a gateway for the rest of the not-so-smart devices. Our example target is a set of electrical outlets are both easily accessible on Amazon and controllable by a 433 MHz signal (non-WiFi), commonly used for home lighting automation.
What it does
Voice commands spoken to an Amazon Echo are sent to the IBM IoT platform for parsing. The IBM platform sends the appropriate commands to an Internet-connected Raspberry Pi running IBM’s Node Red service. The commands to turn on or off lights are translated into radio packets that mimic the bursts sent by the included remote control, adjusting the ambient lighting to each of the user’s request.
How we built it
Our team reverse-engineered the remote protocol using a software-defined radio (SDR) and audio waveform tools. We used a 434 MHz transmitter connected to a Raspberry Pi to send the signal to the outlets.
The Raspberry Pi was registered as a device on our Bluemix IoT Platform instance, meaning that the Bluemix Node Red flow could feed into the flow running locally on the Pi. Using the Amazon's developer tools, we created custom skills for Amazon Echo. After a vocal cues, the Amazon Echo was configured to send to an HTTP endpoint opened on Bluemix. Bluemix filtered and parsed the vocal intents and routed them appropriately to the Pi.
Challenges we ran into
No member of our group has ever used a Raspberry Pi prior to this Hack-a-thon. In addition, we had no prior experience with Bluemix or Amazon's developer tools. As a result, there was a steep learning curve for integration of these numerous services.
Accomplishments that we're proud of
8PM: Reverse-engineering of the protocol
2AM: Emulation of the protocol on the Raspberry Pi
4AM: Two-way communication between the Raspberry Pi and Bluemix
7AM: Getting the Amazon Echo to communicate with Bluemix
8AM: When the light finally responded to voice for the first time (way later in the game than we expected)
11AM: Stable, repeatable voice actions
Refinement, refinement, refinement...
What we learned
Raspberry Pi, Bluemix IoT, Amazon Echo skill development, and team collaboration. Once we were all invested and sold on the same idea, we surprised ourselves in what we have been able to accomplish in such a short time. Great collaboration leads to even greater innovation.
What's next for Smart434
Publish a guide to help other hackers set up this easy-to-use hub themselves. Refine the interaction with Amazon Echo.