The voice commands are triggered using Alexa (“Alexa, trigger Dance Robot”) to IFTTT which will raise an event and trigger an action to post a message to Node-Red instance running in Bluemix. Node-Red will pickup this message from IFTTT, parse it and send a MQTT message via WIoT to the Pi Gateway.
Raspberry Gateway receives the command and sends signals to Robot using connected IR dongle. Robot performs the requested command.
Create an HTTP endpoint in Node-RED to receive HTTPS/POST from IFTTT.
Here’s the completed node-red flow:
- Login to your IFTTT account
- Navigate to Maker channel and create a new Applet.
- IF setup: Select Amazon Alexa as Trigger which fires every time you say “Alexa trigger” + the phrase that you have defined. Set specific phrase to “dance”. When you say “Alexa trigger Dance, the webhook to Node-Red will be executed.
- THEN setup: Select Webhooks with Make a web request as the Action. Then provide your node-red URL from step 2 as value for this Action.
- Select POST as the value for the Method and text/plain as content type
- Provide the value as “dance” in the body.
- Enter the Applet title and description.
- Your new Alexa-Robo Applet is created and displayed in the dashboard.
This completes IFTTT setup.
Run the flow
1. Make sure that you Raspberry Pi Gateway is up and running.
2. Switch on your robot
3. Say “Alexa Trigger Dance” to your Alexa.
4. This triggers IFTTT action which will send request “Dance” to your Node-Red http endpoint
5. Pi Gateway receives the dance message via WIoTF and activates IR dongle
6. IR dongle sends dance command to the robot
7. Your Robot will start dancing
As a next step, you could try with various commands(e.g: Turn Left/Right, Go Backward/Forward, Right/Left Strike, Whistle, Burp etc..) by creating various Applets in IFTTT. Go to Part2 of this recipe for details of how to control the Humanoid Robot with voice commands using Watson STT service and start interacting with your Robot!