Internet of Things Tower Light


I recently came across the Adafruit 12V Tower Light and thought this would be ideal for my wife to remotely notify me when I’m working in the garage.

Because the light works on 12V though, it would be slightly more difficult to interface with it using a microcontroller running on 5V for example. So I decided to get rid of the 12V circuitry and replace it with a 5V microcontroller and LEDs, having the whole thing powered via USB.

Teardown

Tearing down the light and removing the 12V electronics was quite easy. A screw is hidden under the sticker on the top lid. Once this is unscrewed, the electronics can be accessed. The LEDs are zip tied to the center shaft, but after detaching the flex cable, it is possible to slide them off. The PCB detaches easily as well.

A buzzer is located in the base of the light. It’s not glued or screwed in place, but only requires a bit of wiggling around to slide out of its socket.

IMG_1273

Once all the electronics were removed, I also peeled off the different stickers. To get rid of the glue marks, I used hot soapy water and a cloth to clean the lamp.

Electronics

The replacement electronics are super simple. I’m using a Adafruit NeoPixel ring controlled by a Particle Photon. Both are powered using a USB cable of which I cut off the end connector, in order to be able to slide it through the frame of the light. The NeoPixel ring is then controlled by the Photon’s D2 digital pin.

Screen Shot 2016-04-17 at 20.53.20

I found that the 12 LED NeoPixel ring fits best inside the tower light. Alternatively, a piece of LED strip wrapped around the center shaft would work as well.

Code

The code consists of two parts:

  • a “DO” button via IFTTT providing the trigger
  • a sketch on the Photon listening for the trigger

IFTTT

The easiest way to create a “DO” button, is by installing the IFTTT “DO Button” app. It is available for both Android and iOS devices.

Create a button by selecting the desired channel, in this case, the Particle channel. Define an event name and the data to be sent. In total, I created 4 buttons for the same event, each with different data. This data will be parsed on the Photon, to trigger the matching animation.

IMG_1274 IMG_1276 IMG_1275

Particle

The code for the Photon is based on the “A-Rainbow” example of the NeoPixel library in the online IDE. I modified the sketch by adding the different animations and having the Photon listen for triggers by IFTTT. Be sure to use the same event name as the Do Button!

The code can be found below:

And that’s it. Once the Photon is connected to the network, it is constantly listening for the trigger. Use the DO Button app to send different animation values and see how your Photon applies it.

8 thoughts on “Internet of Things Tower Light”

  1. Very Nice.
    This has some other uses and is much easier to ignore than the ‘voice’ calling out.

    Well done
    Mark

  2. Hey,

    I’m having an issue with mine. I bought this 12 LED Neopixel ring (https://makersify.com/products/adafruit-neopixel-ring-12-x-5050-rgbw-leds-w-integrated-drivers-natural-white-4500k-ada2852) but only 9 of the LEDs are lighting up when I try the code above.

    I have soldered the 5V in, ground and the data in, and connected the data in wire to D2 on the Photon.

    Also, the lights are not completely red either – some are blue and white. Is this supposed to happen?

Leave a Reply

Your email address will not be published. Required fields are marked *