A string of Christmas lights with individually addressable light bulbs, whose colours can be chosen using a web browser across the Internet.
This project builds off of the work done by Robert Sun Quattlebaum with GE Color Effects Christmas Lights by providing an interface so the light colours can be set over the Internet.
The lights are controlled by two Arduinos. One sits inside the house and acts as the web server, the other is located outside the house and is dedicated to controlling the lights. The two Arduinos communicate with each other over a XBee wireless link.
The web page for the lights is served by an Arduino with an Ethernet shield to provide network connectivity and an XBee module with shield to provide wireless connectivity. The two shields are unmodified and are attached to the Arduino with stacking headers.
The web server is running a modified version of the Basic Arduino Web Server sketch. It serves a page showing a graphic representation of the Christmas lights and a form that allows the colour for each bulb to be selected. When a user submits the form it transmits the colour for each bulb as RGB values to the light controller using the XBee link. The code for the web server is available for download below.
On the exterior of the house the Christmas lights are controlled by an Arduino with an XBee module and shield for wireless connectivity. The lights are driven directly off of the Arduino with the data line connected to pin 4, and also powered by the Arduino with +5V connected to VIN and the grounds connected together. The entire assembly is contained within a waterproof casing.
The light controller listens to the output of the XBee waiting for a RGB value to be received. After checking that the RGB value received is valid, it then sends the appropriate signal down the data line to update the bulb. The code for the light controller is available for download below.