top of page

Object Final Project: Internet Connected Weather LED Board



For my project, I created an internet connected LED board that displays the weather forecast for the next day with a series of fun animations. I used a Particle Photon, a wifi enabled microcontroller, to pull data from Darksky, a free weather API. Through this project I learned a lot about how to work with internet connected devices and how to visualize data in intuitive ways.

 

Materials:

- 1 Particle Photon

- 198 WS2812 LEDs

- 5v 10 amp power source

- 1/4" plywood

- Jumper wires

- Solder

- Wood Glue

 

My original idea for this project was to find an API to access avalanche data, then use LEDs to display this data. But, since I couldn't find any API that had the data I wanted, I decided to use weather data instead so that I could learn how to work with any kind of data using the Photon.

First, I experimented with using the Photon to control the matrix of LEDs I had already built for my previous project, an LED matrix game with gesture controls. Once I had everything connected and running, I could reprogram the Photon over the internet without even plugging it into my computer.


I started to work on the internet connection aspect of my project, and immediately ran into difficulties. I found Darksky to be the most widely used free option. But the API data that Darksky pushes to the photon is huge, and full of things I didn't need for my project. So I used Particle's Webhook service, and parsed out the data I wanted before it even got sent to my Photon. This way I only needed to work with a short string rather than the entire forecast.

I tested my program by only using the 'icon' and 'precipAccumulation' datapoint from the API and displaying them on a small OLED screen. This allowed me to easily visualize the data the Photon was or wasn't receiving, and was a critical tool to debug my code.


Finally, I programmed animations for each of the different weather conditions the API had an icon for. Unfortunately, the Photon's online build environment does not support the libraries for the screen and the matrix simultaneously, so my final project only displays information on the matrix.


Below is a link to my code. One is for the matrix and animations, the other is for the OLED screen.


https://gist.github.com/jackplantz/943c601ca9df7ed14333725077c8ce0a


Here are some of the animations that are displayed when various weather events are forecasted for the next day:

Overall, I learned a lot from this project about how to work with internet connected devices, and I learned even more about the Adafruit Graphics library and how to program for LED boards. I had a lot of fun making this project and plan to keep improving it by finding a way to make the OLED screen display information alongside the matrix, as well as adding a button that could be used to cycle between display modes of the matrix. I could then show a weekly forecast, or snowfall data, or even put the display into a colorful dance party mode! There are so many possibilities with this internet connected LED board.

28 views0 comments

Recent Posts

See All
bottom of page