CheerLights now supports the MQTT protocol. This means that devices and apps can receive real-time updates to changes in the CheerLights color without polling for the latest color.
How to use MQTT
Connect your device to mqtt.cheerlights.com:1883 and subscribe to the “cheerlights” topic. When the CheerLights color changes, the color name will be streamed to your device. You no longer have to poll for the latest CheerLights color on the ThingSpeak API.
While at re:Invent, I got to take a deep learning workshop to learn about the new capabilities of AWS such as SageMaker and Greengrass. We used a new device created by AWS and Intel called DeepLens to build an image classification model, deploy it to the device, and use the model to predict image labels. In reference to the TV show Silicon Valley, we trained a neural network to determine if the image from the video camera contained a “Hotdog or Not hotdog.” My machine learning model performed better when the hot dog had mustard on it.
Fun aside, the DeepLens device is a really powerful way to learn image and video-based machine learning and artificial intelligence. Once you get ahold of the device, you can follow the workshop by downloading the materials and code from GitHub.
I shared my latest project over on my Nursery Hacks website. It combines some of my favorite things… IoT, CheerLights, ThingSpeak, Particle, and building things for my soon-to-be-here son’s nursery. I didn’t want a bright light in the nursery, but I did want to build a little CheerLights display for something in the background.
I found a Robot Nightlight on Amazon and purchased it. This little robot is a great night-light and you can change the color using the included infrared remote control. To connect this light to CheerLights, I built an IR controller that is internet-connected using the Particle Photon. The Photon subscribes to the latest CheerLights color on ThingSpeak and transmits the IR code as if the button was pressed on the remote control.
To build your own CheerLights Robot, visit Nursery Hacks for the parts and code.
I have been working with the Twilio API for a few of my projects. I have used Twilio to call me when disk space is running low on a server or to call my house and request its status. Twilio is a cloud-based communications platform for sending and receiving text messages or placing phone calls. Twilio is wrapped up nicely with a RESTful API so ThingSpeak or MATLAB can use it without a lot of setup.
Tonight, I was following a beginner tutorial that I wrote for using Twilio and ThingSpeak, and I noticed that their voice example plays a friendly greeting and then by surprise Twilio starts playing Rick Astley’s “Never Gonna Give You Up”, for the world’s geekiest rickroll.
I got to work on an API for a brewery in Winston-Salem, NC, so that they could monitor tank levels. Small Batch Beer Co. had the great idea of reporting their tank levels directly to their consumers via their website and social networks. The Internet of Things and Beer FTW!
For the third holiday season in a row, the CheerLights project is gearing up. The idea behind CheerLights is to show that we are all connected by synchronizing the color of lights around the world. Christmas lights are a staple around the holidays and with Internet-connected lights, the color of your lights matches the color of everyone else’s lights.
It has been a real treat watching this project evolve as more and more people add lights… and other things. Things like Android and iPhone apps that check the latest color of CheerLights, an old Commodore 64, and Christmas trees.
To control the lights around the world, send a Tweet mentioning @CheerLights and a color. The command is processed by ThingSpeak platform and distributed to all of the lights listening to the CheerLights API.
@CheerLights I am dreaming of a White Christmas
Another powerful aspect of the CheerLights project is that is shows off what is possible with the emerging Internet of Things. With a single message sent via a social network like Twitter, 1000’s of objects around the world are in sync with each other. Lights are connected by many types of controllers, such as Arduino, ioBridge, Philips, and the Raspberry Pi. This project is only possible through the Internet and the coordination of developers around the world.
On September 17th, I got a bunch of Facebook messages that said my Tweeting Toaster was now a Ziggy comic. 🙂
My Tweeting Toaster is a step in the self-aware direction for appliances. This Ziggy cartoon made me smile, but it also made me realize the inevitability of social objects and the Internet of Things and then Skynet. Hmm, and Ziggy was the name of the computer in Quantum Leap…
“Greencastle” is an upcoming independent film that I am fortunate to be a part of. I make a small cameo as District Dean Roy Baker giving a commencement speech for a correspondence school graduation.
Created by my long time comedy writing partner, Koran Dunbar, “Greencastle” is a film about a single father who works at a small-town pet store in Greencastle, PA. Poitier struggles against self-doubt and an unclear life direction while trying to raise his young son. In the midst of his “quarter-life crisis” enters Leslie, an attractive woman running from an ugly past. Fate brings them together, but Poitier discovers that opportunities only come to those who take chances, and he must come to terms with his own past before he can embrace his future with confidence.
The crew behind “Greencastle” filmed the movie over the summer of 2011 and the footage turned out great as you can see in the trailer above. They want to take “Greencastle” to a wider audience and looking to use a website called Kickstarter to do so. Have you heard of Kickstarter? Kickstarter is a website where people can post their project and raise funding by offering incentives such as autographed scripts or items related to the output of the project.
“Greencastle” is already submitted to film festivals like SXSW and I would love to see where this project could go with everyone’s help. Check out the Kickstarter for “Greencastle” and see if this is something that you are interested in supporting… Thanks!
EL Wire is a flexible wire that glows when you apply electricity to it. I am seeing more and more things trimmed with EL Wire and it makes for interesting effect. If you watched America’s Got Talent you might have seen a finalist called Team iLuminate. The iLuminate team used EL Wire to create animations and lighting effects on top of group dancing.
My nephews and niece were in town for Halloween and I was struck with the idea of adding a little animation to our Halloween Pumpkin. I wanted to make a pumpkin that changed expression. We made a basic smiley face and angry face by carving grooves into the face of the pumpkin. Then, we laced the EL Wire in and out of the grooves. We used red for the mad expression and blue and green for the smile expression. It was pretty easy to do and I had fun sharing my bits knowledge with the kids. It was rewarding to hear them come up with their own ideas – “We could hook an MP3 player up to this and scare people” or, “What if we added motion detection?”. It was also fun to hear my 5-year-old niece Zoey say, “Electroluminescent”.
I think the Blue EL Wire worked the best and looked the best. The red looks a little orange. The Green EL Wire sometimes didn’t illuminate. You can only illuminate 2 strands of EL Wire at a time with the stuff I had from SparkFun. I need to experiment more with EL Wire and get an EL Wire controller to do some more intricate animations. I will post future projects if I come up with anything interesting.
Always start with sketches when you start your project. It’s important to have a plan to allow yourself to stray knowingly.
Over the past several months I have been working on software to allow “things” to form social networks and send status updates via the Internet. At first glance this may sound very impractical. Hopefully, in a few years this will make more sense as better applications come out. Remember how ridiculous my toaster sounded three years ago? I gave that thing a voice and since has been on TV and more people are interested in it than my Twitnot not saying ter status updates. More proof? At CES 2011 there were at least 10 appliances that could send Twitter status updates. I am not saying that I created them, but I am that they didn’t know about My Toaster and it’s 600+ followers on Twitter. With this project, I wanted to take it a few steps further and build something from the ground up that’s focused on collecting enormous amounts of data from everyday objects, allowing devices to interact with each other, and building applications to present some meaning. The ThingSpeak project is finally ready to go and open to anyone that wants to start building applications.
One problem with the Internet of Things is the concept of “the killer app” – the app that defines a new industry. The internet connected refrigerator is our poster child. Recently, Ryan Rusnak connected a mini fridge to the iPhone via ioBridge, added a motor controlled beer selector, and strapped on an air cannon to fire beers to his couch from 25 feet away – now that’s a killer app. So, my problem was trying to find an application that highlights key features of ThingSpeak and why it’s different.
What I come up with is the idea of “my_house”. “my_house” is a collection of “rooms” that all hold computers, appliances, and sensors aka things. I recently installed some light sensors in “my_room” that push light levels to the ThingSpeak API. I did this to remind me when to turn my lights on so I don’t work in the dark when I get plugged in. And an interesting side benefit was that now I can detect whether or not someone is in the room based on the light level. I will admit this could have been done other ways, but sometimes you solve problems with what you have lying around. “my_house” already keeps track of my location using Google Latitude to control my thermostat.
Now I can tell when my mom goes into my room when I am out on the town, most likely Sheetz!!!
Below is a screenshot of the demo app and how I aggregate the data collected by my light sensors. Here are a few things I want to point out:
“my_house” is sending the status updates via a collection of networked sensors
The status updates were generated by the light sensor device itself
The timestamps were recorded by the ThingSpeak API
If you click the chart icon you get what the actual light level was
The app works in real-time and you can check it out here
The Technical Details
The light sensor uses a Netduino Plus that connects to my home network over Ethernet. This device uses Microsoft .NET Micro Framework and I wrote an application that interfaces with the ThingSpeak API. I also wrote a tutorial over at the ThingSpeak community site on how to use the Netduino Plus for those that want to get started with it fast.
The front-end application is written using only HTML, CSS, and jQuery. I have the fully documented source code attached and you can also see the app live in your web browser.