This question is mainly electronics related, but it also has a programming aspect.
Some background on the problem
We have a traffic light on a wall in our office. When people come in to the office, they can immediately tell from the traffic light whether last night's automatic build & test runs went smoothly: Green means all tests passed, yellow means some tests failed and red means some builds failed.
Right now, there are three switches on three cables hanging from the traffic light and someone has to manually toggle these every morning. I'm looking for an easy way to automate this process with a PC.
Some background on me
I can write software. I have some soldering experience. I know digital design theory, but I've never built a physical device. I don't have a lot of time on my hands.
The question
How can I control three 110V lightbulbs (or any device) from a PC with the minimum amount of effort (and investment)?
Some lax constraints
- I don't care about the effort to write the software to control a serial/USB port.
- Having said that, it would be nice if I don't have to write any software and just use existing tools.
- I prefer not to do any soldering! I can go with one of those hobby kits where you push components into slots etc. Or perhaps it could be something from Toys "R" Us.
- I'm willing to purchase an existing device like an Arduino board.
- It would be nice if I can get this done with just parts that are lying around. For instance, I have an old 2400Bd modem that I can take apart (though, that would probably be followed by some soldering).
Update
Similar projects that are mentioned in the answers:
Look into X10
(Edit: replaced original posters NSFW link with wikipedia page on X10)
I found a guy who built a full fledged traffic light here: http://people.usm.maine.edu/houser/bblight/index.html. Looks like more work than you want to do though.
This device "IP Power 9258" should work for you, it is an ethernet comtrolled power bar. It is similar to the device used in this project "Red Bear Alert!" - The Hudson Bear Lamps.
A google search for relay controlled power strip, lists tons of projects to build your own.
Here's one big issue: If I'm TC'ing that day, I can't see your light. Considering that, I'd build this as a little light that sits in the tray and shows the current build status. People that want to know the build status can install it, people that don't care won't be bothered by your intrusive traffic light. I heard a presentation from a consultant once and he said he'd done this at one company and the VP types just loved it. Here's one link; the sample is in Python.
Edit: Seems CruiseControl.NET has this sort of thing already.
If you enjoy doing it yourself, a serial port interface wouldn't be too difficult. A serial port has at least two lines that can be switched on/off: RTS/CTS and DSR/DTR. When you turn either line on, you're getting +5VDC on that particular line. You can use those lines to control relays that in turn switch the lights on/off.
Just to give some more options:
Relays can be replaced by thyristors. These don't suffer from mechanical wear..
Another cheap and easy solution: Buy a cheap three channel light organ and connect it to the sound output of a pc. Find the resonant frequencies of the three outputs by playing back some test sine-tones or a sine-sweep.
That way you can not only toggle the three lights, you can dim and pulsate the lights as well. No need to mess around with USB and relays.