Matt's Weather Station

Who They Are

This application is a personal project of mine that is designed to be run on a network of Raspberry Pi's and Arduinos.

What They Needed

  • A weather station and data logger that would record, plot, and display data in a live GUI interface, such as a TV or computer monitor, as well as a web interface
  • Plotting should be interactive, so that you can hover over a data point and a tooltip box will display the data values for that point
  • The data queried from the database should be able to be displayed as a summary, such as daily high and low temperatures over a month, and as detailed data, where each data point is shown over the course of 24 to 48 hours.
  • The weather station should use your own network of sensors, but then default back to getting data from the Weather Underground API if the sensors stop working or go offline.

The Solution

The core of the weather station, including both the GUI and web interfaces, was built with Python. The interface displays the current conditions, a four-day forecast, a weather almanac for today, and a travel forecast. A custom WSGI Python server powers the web interface, which contains a live data feed, as well as the ability to plot, display, and download past data in many different formats. JavaScript is used to add interactivity to the web interface, and the Arduinos use a custom C++ program to send data from the sensors back to the Raspberry Pi, where it is logged in the database.


  • Mobile Web Apps
  • Built From Scratch
  • Custom Mobile Site
  • Server Administration

Programming Languages

  • MySQL Databases
  • JavaScript/jQuery
  • Python
  • Data Entry
  • Custom WSGI Server