Tasked with building an electromechanical public art installation for my robotics class, my partner and I chose to build a weather station. He was living near a ski mountain in Vermont while I was in Boston, so the idea was to create a way to display the skiing conditions to people in the city.
We used two Raspberry Pi's for the project. His Pi, acting as a server, would read the temperature from a sensor and post the value to its IP address. My Pi would then request the data and update the state of the weather station. I also decided to read data from an API to augment the temperature reading with data about the current condition (partly cloudy, etc.) and windspeed.
I was in charge of assembling and programming the weather station itself, while my partner was in charge of the CAD and programming the server/sensor side. We decided to display the data using a screen for the temperature, an LED windspeed meter, and a rotating wheel to display the current condition. I wrote a Python script which would request data from my partner's Raspberry Pi and the weather API, map it to an appropriate output state, and update the state of the LEDs, screen, and a servo motor which controlled the wheel.
Next up was assembling the hardware. I lasercut the plywood box and fit its pieces together. Since our servo motor could only actuate 180 degrees, we designed a gear system with a 2:1 ratio so the display wheel could rotate 360 degrees. I assembled the gear system, bolted on the wheel and temperature display, and glued in the LEDs. I then put my Raspberry Pi inside and connected all the wiring.
For the final touches, a friend painted the weather conditions on the wheel (sunny, partly cloudy, cloudy, rainy, thunderstorm, and snowy), and painted the rest of the box.
The weather station turning on and displaying the current conditions.