This was a multi-phase project originally intended to provide lighting to a dark corner of the kitchen. Later, I expanded it to provide night security lights when we return to the house at night. I’ve baked in some additional features that are not currently in use, now I just have to find a good reason to use them…
Phase 1: Kitchen
The Kitchen’s primary light source is a ceiling mounted, fluorescent lamp. Cabinets lining 2 walls block some of the light to the counter top below. There is an especially dark area in the corner under the cabinets. My wife bought cheap, under-cabinet LED lights that were battery powered and dim. I felt I could do much better and set to work building a better lighting system that I could integrate with the smart house.
What I came up with was simple, but effective. An Arduino-powered RGB LED strip with an IR distance sensor to detect presence and automatically turn on the lights. The Arduino’s sketch waited a short amount of time after being triggered before turning off the lights automatically. The timer would reset each time the IR distance sensor detected presence so the lights would say on for as long as someone was standing there working.
To take the idea to the next level, I added an Xbee Pro to the stack to allow the light to be automatically triggered (even without anyone triggering the IR distance sensor). This allowed me to programatically integrate these lights into the smart house system.
The parts I used:
- Arduino Uno R3
- Sparkfun Xbee Shield
- Xbee Pro Radio x2
- Open Electronic’s RGB Shield
- Sharp IR Short-range Distance Sensor
- 9V power adapter
- RGB LED Strip (60 LEDs/m) – 1m strip
- Xbee Explorer Dongle
All of these are products I’ve used in previous projects, so there was not a lot of exploration necessary to get a working product quickly.
To mount the Arduino under the cabinet, I screwed some D-rings underneath the cabinet and used some long, thin hook & loop strips to secure the Arduino underneath. The 9V power supply does make the voltage regulator chip get warm, so I added a thin pad between the Arduino and cabinet to insulate.
Phase 2: China Cabinet
After the success with the Kitchen, I thought it would be a cool effect if I could mount similar LED lights into the inside top of the china cabinet. It’s glass shelves and stemware allow the light to shine all the way down and give a great glow. I did not see a need to trigger this manually, since it’s basically just for decoration, so I did not connect the IR distance sensor.
The great part about the Xbee radios is that I can set any number of nodes onto the same channel and it automatically “hears” the broadcast message. So, to add the second node, nothing special needed to be done on the transmission side.
Phase 3: Laundry
The Laundry room posed a similar issue as the Kitchen – dark corners. Also, I have a timer on the light that always seems to go off just as I’m part-way through the laundry. Another LED strip underneath the cabinet with a presence sensor should do the trick.
Around the time I did this build, I discovered that Velleman started producing an RGB LED Shield. This was less expensive and easier to get than the one I had to import from Italy. So, I used the Velleman shield for the Laundry room.
Central Control Software
To test the LED light control, I wrote a simple software app to allow color selection and transmission to all the lights in the house. I found a great widget that includes several interfaces to adjust the RGB values.
Source Code: here
Although the LEDs can be configured to be a wide range of colours, I’m currently only using white. I have some thoughts about how I could incorporate the use of color:
- Upon return to a dark house, use the colors to show status. Maybe green light for a secure house, and a red light for unauthorized entry?
- Strobe a coloured light when an event happens (captured by the smart home) like a spike in power usage, or door left open, or something else?
Also, adding additional lights to other rooms in the house would be quite easy. I’m sure I’ll find a use for other rooms soon.