Connected christmas lights

Last christmas, I was still not done with my¬†Flowerbliss¬†project and to be honest, it wasn’t in a very good shape.You see, I had bought these RGB pixels from Adafruit (I believe they hadn’t introduced Neopixels yet, or at least I hope because that’s my only excuse for not buying those sooner)

While the product was working perfectly, the fact that these LEDs came as a strand was not very practical for me : I realised that the four wires between each LED didn’t quite match what I had in mind for this project, aesthetically speaking. I began looking for ways to conceal them and that’s when I had the idea of incorporating everything onto a canvas, with the LEDs coming out on the canvas and everything else (the cables and the circuit itself) behind the canvas.

Long story short, it was a mess because there were only 8 cm of wires between each pixel, which didn’t work out because I wanted to use some plastic flowers I had laying around (and that I had obvisouly already drilled in the center) but they were too big compared to the space I had between each pixel

After a few weeks of not touching the project because it was more frustrating than anything else, the end of the year drew nearer and so did Christmas. I then decided to use what I had done (I had the arduino code for controlling the LEDs and the Android application for interacting with the IOIO) and put everything together to make some remote controlled christmas lights.

I used ping pong balls that I drilled and put onto the pixels to diffuse the light and put the whole circuit (which was kind of messy) in a box that I covered with gift wrapping paper. The strand went on a mini christmas tree and I put the box under the tree as if it was a present.

How does it work you ask ?

Well the IOIO is connected via bluetooth to a cell phone (that I also put in the box) with an Android app on it that listens to any incoming SMS and parses its content to find a string containing instructions in the following form : “m;x;(r,g,b);(r,g,b)…/” with m being the mode (f = full color, m = multi colors), x the number of colors (from 1 to 5) and the RGB codes for the colors following.

It could have stayed that way and people would have sent values to the system by SMS, but as noted by my colleague, it was still a little complicated. We happened to have a server at work that we use for testing a solution that allows clients to send SMS via an API they can access with a PHP SDK. (That and the cell phone I could just leave in the box for a few weeks are the perks from working for a telco company !).
I threw together a simple page with color pickers where people could choose the colors they wanted to send to the strand. The page would then make the call to the API and send the resulting string by SMS to the cell phone, which would change the colors on the strand.

We put the tree on a table that we usually have coffee around and set up a short URL for people to access. The fact that the site was adapted to smartphones made it easier for them to change the colors in realtime when they visited us