Ever since seeing Iron Man, I have been wanting to create an alarm clock similar to Tony Stark’s Jarvis. The following basic proof showcases presence-based interaction and a personal greeting with agenda.
How did we do it? Salesforce stores our accounts and preferences for Bluetooth MAC Addresses and voice style used for our “Jarvis”. An Arduino device listening for Bluetooth signals, initiates this sequence.
Proof Specifics & Process Flow
The following illustrates the processes between systems at a high level.
- Arduino device has WiFi and Bluetooth modules
- The application deployed Arduino unit polls for any nearby Bluetooth device, reads its MAC Address and sends it to a web service
- A web application running on Node.js provides the dashboard shown on the iPad and a web service to connect with Salesforce
- The Web Service send the Bluetooth MAC Address to Salesforce to see if it matches an account (it has been added as a custom field to the account)
- If Salesforce reports a match, the service gets the latest open Tasks from Salesforce for the particular user, their photo, as well as their voice preference for “Jarvis” to use
- The Node.js application the uses a module to access Mac’s native speech capability (https://github.com/marak/say.js/) and has it read the tasks. In parallel, our Node.js application uses Web Sockets to update our Dashboard to greet our user using a modified version of a slick visualization from Web Designer Alessio Atzeni (http://www.alessioatzeni.com/blog/css3-loading-animation-loop/).
In our next post we will deep dive into the technical details of our proof of concept, including all of the source code for the proof. We will also provide references for videos that covering the soldering process for the Bluetooth module that we used with our Arduino Uno.
Until next time!