The rainbow tower is an app-controlled ambient light. I used a WS2812 LED strip as a light source and an ESP8266 module to control the lights. The sides are made of white acrylic glass, which is a great material for diffusing light.
With the app, you can connect to the tower via WiFi and set the color for each of the four sides separately or choose one out of a predefined set of animations. The code for the app and the ESP8266 module are available for free download.
Step 1: Parts
- ESP8266 module (NodeMCU or Adafruit Huzzah will work)
- WS2812 5V LED strip with 60 LEDs
- some wire
- barrel jack
- 2x pieces of wood (14 x 14 cm, 0.4 cm thick)
- 4x pieces of wood (20 x 4.6 cm, 1 cm thick)
- 4x pieces of wood (20 x 0.8 x 0.8 cm)
- 4x wooden angle strip (21.8 x 1.5 cm, 0.4 cm thick)
- 4x white acrylic glass (14 x 21.8 cm, 0.3 cm thick)
- heat shrink tube
- soldering iron
- saw (a hand saw is sufficient)
- pliers for cutting wire
- wood glue, plastic glue, and hot glue
Step 2: Upload Code to the ESP8266 Module
Download the code from github. (If you don't know how to use git, you can simply download the code as a zip file and unpack it.)
Use the Arduino IDE to upload the code to your ESP8266 module.
Step 3: Build the Box, Part 1
- Drill a hole at the bottom of one of the 1 cm thick pieces of wood. This is where the cables of the LED strip will go through.
- Glue the four 1 cm thick pieces of wood together to form a tower.
- Cut the LED strip into pieces such that each piece has three LEDs. The pieces should be 5 cm long.
- Glue the pieces of LED strip to the tower. They should have a distance of 3 cm from each other. The top and the bottom ones should have a distance of 1.5 cm from the top and the bottom, respectively. When glueing the pieces, take care that you can solder them in such a way that the arrows on the strip always point in the same direction when you follow them from the start to the end.
- Cut some pieces of wire and solder the pieces of LED strip together as shown in the pictures.
- Solder some longer pieces of wire to the piece of LED strip near the hole that you drilled. Put the wire through the hole and pull it up through the interior of the tower.
- Drill a hole in the middle of one of the 14 x 14 cm pieces of wood. The power cable will go though this hole.
- Glue the tower on the piece of wood such that the distance to the edge is the same on all sides.
- Cut two longer pieces of wire and put them through the hole in the bottom plate. Pull them to the top of the tower.
- Now take the ESP8266 module. Solder the GND wire of the LED strip and the GND power cable to one of the GND pins of the module. Solder the VCC cable of the LED strip and the other power cable to the 5V pin of the module. Solder the data wire of the LED strip to pin D5.
- Solder a barrel jack to the power cables. I used some heat shrink tube on the wires to make them look nicer.
Step 4: Build the Box, Part 2
- Glue one of the 0.8 x 0.8 cm sticks to the side of the acrylic glass and make it flush. The distance to the top and the bottom should be 0.4 cm. Use the 14 x 14 cm piece of wood (this will become the top plate) to get the distance right.
- Now, glue another piece of acrylic glass to the stick, so that the pieces of acrylic glass form an L shape.
- Glue on another one of the sticks and another piece of acrylic glass.
- Repeat this step once more. Then, glue the remaining stick in the remaining corner.
- You should now be able to set the box you just made onto the bottom plate with the tower. If the plate doesn't fit, you can sand the edges of the plate to make it fit. Put some glue on the edges of the sticks and glue them to the bottom plate.
- Don't glue the top plate until you're sure that everything works.
Step 5: Upload App to Your Smartphone
Download and install Android Studio from Google (it's completely free).
Open the Android project from the code you downloaded earlier.
Connect your smartphone to your computer with a USB cable.
Choose "Run" to upload the app to your phone.
Step 6: Have Fun
When the ESP8266 module is powered, it spawns a WiFi network called "rainbow". The password is "rainbowtower".
Connect to the network with your phone.
Start the app. The app should connect to the rainbow tower within a few seconds.
Now you can use the app to change the colors.