My aesthetic is mid-century modern IoT. I think it’s funny to make an internet-connected weather station and then put it in a retro-looking container with analog gauges.
The build is described at http://powerfulmojo.com/weather
The HardwareI started with a breadboard, but the design of the circuit isn't very complicated, so I could have gone straight to protoboard.
Each H-bridge has 4 power pins, 4 ground pins, 4 connections to the Photon, and 4 connections to the motor. I was able to squeeze everything onto a 24x18 perfboard.
The X40 motor is a bit tricky. It has front contacts. That means you have to make all of the connections on the same side of the motor that the gauge hands attach to. The pin layout fits into a 0.1" pitch board.
I looked into a steel face in the first place because it's much thinner than the wood face the clock came with. I thought I wouldn't have to fiddle with extending the spindles. It turned out I had to extend the spindles anyway, so I could have used either face.
I glued stand-offs to the back of the steel and attached the boards with tiny bolts.
There are really good libraries to handle most of this project.
- Stepper by facchinm runs the stepper motors.
- HttpClient by nmattisson calls the weather API.
- ArduinoJson by bblanchon parses the data returned.
There are two firmwares at https://github.com/powerfulmojo/WeatherMojo.
You only need one firmware. Choose whichever one you like.
- weathermojo.ino uses openweathermap.org to show the current temperature and highest temperature it has seen today. It computes the dew point because OpenWeatherMap doesn't give it to you.
- forecastmojo.ino uses weatherbit.io to show the current temperature and the forecast high temperature. It doesn't need to compute dew point because weatherbit provides it.
I live in a very hot, very dry place. If you're not out in the desert like me, you'd probably want different temperature and dew point scales. Most of the year, the dew point at my house hovers around freezing, so that's the middle of my scale. Your humidity may vary.
The station gets weather where I live by default. If you build your own, you'll need to:
- Replace the city ID in the firmware code (look it up here)
- Use your own openweathermap.org or weatherbit.io API Key
- Set minimum and maximum temp. and dew point values to whatever makes sense in your neighborhood
Comments