I take the bus at least once a week to get around San Francisco. There is a local bus stop a block from the house that gets me to the Castro muni station where I can then go downtown on the inbound K, L, or M lines. I use www.nextmuni.com to find out when the next bus will be at my local stop. However, as I’m running around in the morning getting ready, I tend to loose track of exactly when I need to get my butt out of the front door.
I figured all I really needed was an ambient device that I could glance at so I’d know when to leave. As a first step I built a prototype using an Arduino microcontroller board, an Arduino Ethernet shield, and a BlinkM smart tri-color LED.
The LED flashes green when it’s the perfect time to leave (which for me is about 5-6 minutes until the bus arrives). The LED flashes orange then red as the bus gets closer. If the bus is more then 15 minutes away the LED is solid red. It then turns solid yellow then solid green before flashing green as the bus approaches. The LED turns blue when it’s updating.
The Arduino sketch for the monitor is available here. The monitor’s IP address and bus stop information are currently hard coded. For a future version I’d like to add a webserver so settings like the bus stop and update frequency could be altered and stored in EEPROM without needing to recompile the code. Ultimately I also want to build a dedicated version that has just the needed components. Perhaps I could fit it inside a small toy bus?