Ambient Nextmuni Monitor Prototype

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?

ClockIt – 7-segment strings

My obsession with the ClockIt clock from SparkFun continues. I like how simple it is. It’s a microcontroller directly wired to a 4 digit LED display, a piezo speaker, and a few switches. I’m finding it a good project for getting used to working with gcc-avr directly without the training wheels offered by the arduino platform. In the video you can see that I’ve written some code to display alpha-numeric strings. I followed suggestions on Wikipedia on how to represent some of the more complex characters. It’s a little weird, but you get used to it. My end-goal for this project is to have the clock spell out the time in English. Pointless, but educational.

I’m thinking I could also have it tell me what electricity rate we’re currently on as part of PG&E’s net metering scheme (peak, partial peak, or off peak). In order to do this properly I’d have to support the date as there are different daily schedules for the summer and the other seasons. The same functionality might work better as an ambient orb like device. It could be red for peak, yellow for partial peak, and green for off peak. I’ll have to think about which I’d like to do.

Some other project ideas I have for the clock are a kitchen timer (obvious I suppose), and a thermometer using a 1-wire digital thermometer IC connected to the one free I/O pin on the microcontroller. I already have some code written for the kitchen timer idea although it needs some clean-up before I post it.

Incidentally, SparkFun recently published the PCB layout files for ClockIt under a creative commons share-alike license making it one of their first open hardware projects. The layout files are for the Eagle layout software by CadSoft. There is a free version of Eagle for non-commercial use that allows you to create 2-sided PCBs up to 4×3.2 inches in size. SparkFun offers a PCB fab service to implement your design for $2.50 per square inch.