Introduction: Panel Meter Weather Station With Photon

About: Grady Hillhouse is a professional civil engineer and hobbyist everything else.

For me, discussing the weather is more than idle small talk. So when I got interested in web-enabled electronics (the Internet of Things), I knew immediately that my first IoT project would be related to the first thing I do when I log onto my computer at work each day: check the weather. This "weather station" simply pulls weather data from the internet and displays it using analog electrical panel meters.

The brains of the project is the Particle Photon which is pretty much a tiny Arduino with a wifi chip. The actual weather station is made of a scrap of walnut. The panel meters have custom faces that I designed in DraftSight, which is a free cad program. The weather data is provided by the Forecast.io Dark Sky API. All the code and custom panel meter faces can be found on the project GitHub Repository.

Errata: The barometer meter face shown in the video and photos has a mistake. I accidentally shifted it up by 100 millibar. The scale should actually read 960-1060 millibar, which will cover normal atmospheric pressure in most places.

Step 1: Code

All the code for the project is available at the project GitHub Repository. Here are the steps for the code:

  1. If your Particle Photon is brand new, follow the "Getting Started" steps on Particle's website.
  2. Compile the file "weather.ino" onto your Particle Photon device using build.particle.io.
  3. Edit the file "forecastio_webhook.json" in a text editor to use your personal API web address from Dark Sky.
  4. Upload the webhook to the Particle Cloud using the instructions on Particle's website.

Step 2: Woodworking

The actual weather station is made of a scrap of walnut. I cut this to size and then planed down to the thickness I wanted. Then I drilled out for the panel meters. I put a chamfer around the edges and then put on a few coats of tung oil as a finish. You can arrange things however you want!

Step 3: Panel Meter Modifications

I created custom faces for the panel meters using DraftSight, a free CAD program. You can download my file at the project GitHub repository. You may have to adjust the faces to fit your panel meters and/or your local weather conditions.

Errata: The barometer meter face shown in the video and photos has a mistake. I accidentally shifted it up by 100 millibar. The scale should actually read 960-1060 millibar, which will cover normal atmospheric pressure in most places.

Step 4: Wiring

Wiring is very simple. Just follow the diagram above. The resistor values will depend on the type of panel meters you use. I recommend meters that are full scale at 1 milliamp (example). In that case, the resistor values should be about 3300 ohms each for the panel meters. The LED resistors should be in the range of 100 - 500 ohms, depending on your LED.

Step 5: How Does It Work?

This is the gist of how the weather station works.

  • The photon publishes an event when it would like to know the current weather conditions.
  • This triggers a webhook which is stored on the cloud to make an API call to forecast.io.
  • The API returns data in JSON format.
  • The webhook contains a template to parse the JSON data using mustache then sends it to the photon.
  • Finally, the photon deconstructs this data into the individual values, and then converts them into pulse-width modulated signals for the five panel meters and the alert LED.

If you need to troubleshoot, I recommend using the Particle Dashboard to see what types of events are happening between the cloud and your Photon device.

If you want more details, watch the YouTube Video in the introduction or visit my website. Thanks for taking a look!

Rainy Day Challenge

Runner Up in the
Rainy Day Challenge

Full Spectrum Laser Contest 2016

Participated in the
Full Spectrum Laser Contest 2016

Brave the Elements Contest

Participated in the
Brave the Elements Contest