Skip to content

slink/rpi-weather

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rpi-weather

thumbnail
Python 2.7 application to get local weather forecast and display results via icons on LED 8x8 matrices.

Hardware

This program should work with any Raspberry Pi although I have only tested it with an original Model A (yes, an A). Also, any 4 Adafruit 8x8 LED Matrices with I2C Backpacks should work. Be sure to solder the address jumpers to set unique addresses for each. Expected range is 0x70-0x73.

Software

A brief description of the various software components.

  • weather.py - gets and displays forecast
  • rpi_weather.py - defines a class for interfacing with the hardware
  • led8x8icons.py - contains a dictionary of icons
  • clock.py - displays the time, for use as a clock

Dependencies

Install

Simply clone this repo and run:

$ git clone https://github.com/caternuson/rpi-weather.git
$ cd rpi-weather
$ sudo python weather.py

Configure

The forecast location is specified with a zipcode. A default zipcode can be set in the code:

ZIPCODE = 98109

A zipcode can also be passed in from the command line, which will override the default:

$ sudo python weather.py 98109

Automation

The easiest way to have the program run on a daily basis is to use cron. Use crontab -e to add the following entry, which will run the program every morning at 4AM:

0 4 * * * sudo -E PYTHONPATH=$PYTHONPATH python /home/pi/rpi-weather/weather.py

NOTE: If you installed the program in a different location, change the path accordingly.

NOAA REST

The forecast is determined using the NOAA REST web service. Specifically, the Summarized Data for One or More Zipcodes. A typical request looks like:

http://graphical.weather.gov/xml/sample_products/browser_interface/ndfdBrowserClientByDay.php?zipCodeList=98109&format=12+hourly&numDays=4

The key bits being:

  • zipCodeList - zipcode(s) for forecast
  • format - choose either 12 or 24 hour period
  • numDays - number of days in forecast

The request returns XML data. The icons are set by a simple text search in the weather-summary attribute of the weather-conditions tag.

Icons

Show this icon If weather-summary contains
SUNNY SUNNY
RAIN RAIN
CLOUD CLOUD
SHOWERS SHOWERS
STORM STORM
SNOW SNOW
UNKNOWN none of the above

About

Raspberry Pi based weather forecast display.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%