Using IRC and Celery, control an entire house worth of interconnected nodes.
I finally got back to working on these lights. A few weeks ago I assembled everything and built a case out of a sparkfun box.
I coded a few methods into the bot and it's far less flaky than writing to an arduino's serial port like before. Check out sieze aka disco mode:
The code is here
I saw a 5M strip of RGB LEDS (SMD5050) on amazon that were "used" for 2/5 the original asking price, so I decided it was a pretty good idea to snag it.
Upon arrival I inspected that product and noted that the built-in connector with fragile pins was busted. It didn't really matter as
Treading onward, I soldered a female header onto the end of the strip and attached it to my stripboard prototype platform. (see last post)
A floppy drive connector from an ATX PSU became actually useful because it plugged into the pin headers on the stripboard happily.
I compiled the fantastic pi-blaster library and powered the contraption up. After debugging a few connections I was able to change the light colors successfully but I may be dealing with some odd capacitance or such along the way that messes with the MOSFETs and PWM unpredictably. But it's a good start.
Now I needed a way to control the lights depending on time of day. I setup celery with redis and used django-celery purely for an easy-mode gui for adding tasks.
As you can see below, the lights turn on in the evening and then fade to minimum as the night progresses.
I set up a listening socket on the IRC bot and pointed the tasks to write raw commands to the socket for the bot to echo.
Below it shows what it looks like from the irc channel. It's getting cozy in there now.
Around this time I wrote another bot plugin to query what was being played on the tv. Now we're getting places.
The living room has LEDs around the edges of the wall pointing down. I took a FET and a power supply and hooked them to the PC that was controlling the TV and added a few basic commands to control the lights: