That's a lot of snow for D.C.!

That's a lot of snow for D.C.!

The white sensor detects if a person is nearby, and turns off the screen if...

The white sensor detects if a person is nearby, and turns off the screen if not.

This was the first battery-operated prototype.

This was the first battery-operated prototype.

What is it?

This screen automatically shows today’s forecast when it senses a person approaching.

What problem does it solve?

When I’m getting ready for the day, I don’t always have time to get the forecast. If it is available to me in a place I encounter every morning, I can be sure to dress for the weather.

What was my role in it?

I designed and built its hardware, software, and firmware. Initial prototypes were built from common hardware modules; the most recent version has a central circuit board that I designed and had fabricated by a factory in China.

How does it work?

The weather screen communicates to a base station with short range wireless nRF24L01+ modules. This base station software, running on a Raspberry Pi, answers incoming requests using the Weather Underground API (cached to reduce API requests). This software chooses which information is most important to display—a hurricane alert is more important than the humidity, for example. I defined a priority list of all available weather conditions and alert codes.

The firmware of the display is written in a general-purpose way; it is reusable for other purposes, such as a bus time screen or a Word of the Day screen, with modifications only to the base station. Each screen is instantiated with a unique ID by the base station when the firmware is first flashed.

A sensor (white circle) detects human presence by sensing changes in the passive infrared heat emitted by our bodies. It’s a standard module (“PIR sensor”), but how cool is that?

Backstory

I never knew when it was going to rain!

How was it made?

Communication

    APIs
    Application programming interfaces help software and companies communicate with each other. They drive the modern Internet.

    I2C
    This protocol is used in many embedded electronics designs to communicate with sensors.

    JSON
    Many APIs use the JSON data interchange format to communicate. It is designed for software to read and write, while remaining human-understandable.

    Weather Underground
    The Weather Underground API is a permissive and powerful source of local weather data.

Hardware

Software

Tags

    Circuit designer