I have long been fascinated with the concept of a smart, networked personal assistant. An ideal system would intelligently respond to non hard coded voice commands, understand what I want, and perform the action. I knew I would have to get my feet wet and dive into hardware for this one.
I've always been a software dev, experimenting with different parts of the stack, but never dropping down into hardware. As such, this was a challenging experience. All of my team mates had urgent work come up, so I worked alone. I had to learn how to use an intel Edison, teach myself NodeJS, and figure out how to network all the participating devices and parts to make it work.
The system works as follows: I speak into my Android Wear device (Moto 360), and that voice command eventually triggers a desired action. As of right now, this means controlling power to three 120v devices.
- I speak a phrase into my watch
- AutoVoice catches it and triggers a tasker Task
- Tasker initiates a HTTP POST to my node js server on the edison
- The edison takes the request and sends it to wit.ai for processing
- Once a result is back, the intent is extracted and a function called to process it
- Depending on the intent, a different relay is switched on or off, allowing control of a 120V device.