Red Alert Box

Every morning I get up too late, and then I think to myself "I'll just check real quick to see that everything on my home network is running". 45 minutes later I've browsed all the new lolcats and read a few personal trainwreck posts on askme, and now I'm running really late.

This is the kind of problem we can solve with technology! If I can check the status of my network without looking at a computer, then I'm bound to start arriving at the office on time.

Now, I already had most of the pieces of this project laying around:

to this I added the sparkfun funnel io (avr board with xbee socket), and a bit of software. Buying all the parts at once would have been a bit costly at $100+, and that's not counting headers, jumper wires, the wall-warts or the usb cables required! Luckily, I make a habit of buying things slowly over time before I have projects to go with them.

The software on the avr end is very simple (programmed in the arduino environment): if no characters are received after a timeout, increase the alert level. Otherwise, set the alert level based on the received character. The 4 alert levels are dim green (OK), cyan, yellow, and red (ERROR).

On the PC end, things can get as complicated as you like. I've written a fairly extensible program that has a number of checks to make; each check is simply a python function, and can have a different check interval. When checks fail, the function is re-run more frequently so that the condition will show as "cleared" soon after it's fixed. One of the "checks" is for files in the ~/.checks directory, so arbitrary programs can just create a file if attention is required.

Updated, 20090307: I made a more permanent home for this gizmo: a lamp fixture with a frosted glass ball. I also solved the "two wall wart" problem by soldering a jumper from the funnelio's +5V to the BlinkM.

Problems I've seen so far included:

Files currently attached to this page:

checks.py3.3kB
redalert.pde2.1kB
xbee-setup.py1.5kB



Entry first conceived on 31 January 2009, 16:29 UTC, last modified on 15 January 2012, 3:46 UTC
Website Copyright © 2004-2024 Jeff Epler