Intro: Wanduh - or How to Connect a Ton of Tech Together
This Instructable is currently under heavy construction.
Welcome to the Wanduh Instructable! This project was made by six members of an Orlando Hackerspace called FamiLAB. We are a collection of makers and professionals in the tech industry that support a Do-It-Yourself attitude. Check us out: https://familab.org/
We made this project for no other reason than we wanted to make a cool thing and to learn as much as possible. So, considering how the Hackathon (http://nbcuhackathon.com/en/orlando-2015/) this was created for was hosted by NBC and Universal, we chose to go with a Harry Potter wand theme. The end reaction we were given by the competing teams and the judges was overwhelming. Wanduh (despite its ridiculous name) took home three different prizes: Philips Hue, Pixmob, and the entire Entertainment category, and we are still waiting to find out about Intel's decision (but we're still hopeful)!
Here's a quick overview about the things that happen:
When a user flicks their wand (Lightblue Bean) as a gesture, it advertises a signal that it is currently triggered into an 'activated' state. There is a companion Android app (made with Cordova) that is listening for the signal from a specific device. When the communication happens, the phone sends a signal to two different servers and plays a sound through itself (or a paired Bluetooth speaker (Jawbone Jambox), because why not). The first and most important server (Intel Edison) listens for the phone to tell it that it is time to do something. When that signal is received, it triggers the multicolor LED lightbulbs. The second server is hosted on an iPhone with another custom app the activates the LED wristbands.
The data flow chart is depicted in the attached image. On to the next step: What you'll need to make all the things do.
Step 1: What You'll Need
2 LightBlue Beans
1 Android Device
Minimum of one computer (we used a Macbook Pro running OS X)
1 Intel Edison
1 iPhone or iPod (optional)
1 Pixmob wristband (optional)
A Macgyver Attitude
Step 2: Setting Up and Deploying Your Bean
This step is easy. Once you have your LightBlue Beans, set them up according to the startup guide located at https://punchthrough.com/bean/getting-started-osx/...
The code for getting the gesture to be recognized and set the Scratch data (coming in a future update to this Instructable) is included in this step's files. Just program it!
Using an Android app such as nRF Master Control Panel, scan for your Bean and document the UUID for the device itself, along with the information for the service running "Scratch1." The bytes listed in this section will change and be visibly reflected in this app if the Bean is programmed to advertise it.
Step 3: Now for the Android App
This is an Android app written and tested with Cordova - a webapp wrapper for Android and iPhone. Do to the complexities of the various Bluetooth types in either brand, our code works only on Android devices that support Bluetooth Low Energy. The latest code to get the app up and running is included at https://github.com/familab/nbcHackathon/tree/master/lance.
Step 4: Intel Edison Time!
The Edison acts largely as the brain of the activation system. It acts as a listener for a signal from the phone and performs the connecting trigger to the Hue lights, allowing them to do... whatever you want, whenever you want
To set up your Edison, follow the simple instructions beginning at https://software.intel.com/en-us/articles/intel-ed...
All code needed to get this up and running is located at https://github.com/familab/nbcHackathon/tree/maste...
Step 5: Hue Lights
The Hue Lights are a relatively simple service to get running through the backend that we have created on the Edison. This portion requires Python 2.7 for programming the intended actions to be sent to the Hue lights. We have ours set to randomly flash upon initiation in a series of colors.
The code for this portion is located at https://github.com/familab/nbcHackathon/tree/master/mike.
Step 6: IPhone Server and Pixmob Lights
Coming soon in the next update.