Skip to content
Displays local weather on a Raspberry Pi
Python Shell
Branch: master
Clone or download
Pull request Compare This branch is 4 commits ahead of genebean:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example
icons
screenshots
.gitignore
.travis.yml
GPIOmock.py
LICENSE
PiWeatherRock.service
README.md
X10.py
config.py.sample
distelli-manifest.yml
requirements.txt
server-prep.sh
weather.conf
weather.py

README.md

PiWeatherRock - Displays local weather on a Raspberry Pi

Designed with a 3.5" 480x320 TFT display in mind

Daily forecast Hourly forecast Info screen
daily-forecast-screenshot hourly-forecast-screenshot info-screenshot

Introduction

PiWeatherRock is an internet-connected weather station. Its purpose is to display local weather condtions. It was created with the goal of having a simple way to check the weather before taking our dogs out for a walk. The end result is a modern version of a weather rock.

Right now all data is pulled from Dark Sky. A future interation will also incorporate data from sensors connected to a battery powered Arduino.

Note: A previous version pulled data from Weather Underground. IBM bought Weather Undergrund and decided they were too cool to continue to let developers use their api at all for free. To quote their site as of 2018-09-03:

To improve our services and enhance our relationship with our users, we will no longer provide free weather API keys as part of our program.

I cannot wrap my head around how this is supposed to "enhance our relationship with our users."

Usage

The first thing you need to do to run this applicaiton is go to https://darksky.net/dev and get an API key. You can make up to 1,000 API calls per day without paying or even providing payment info. After getting a key, copy config.py.sample to config.py and fill in values for your setup. In addition to your API key you will also need your latitude and longitude. https://gps-coordinates.org/ seems to work well for this as do some cell phone apps.

Once you have your config file in place, you will need to install dependencies.

Note: Anywhere you see pip or python you should be able to substitute the Python 3 versions without issue (aka pip3 and python3).

sudo apt-get install libsdl1.2-dev libsdl-ttf2.0-dev libsdl-image1.2-dev \
libsdl-mixer1.2-dev libjpeg-dev libportmidi-dev libtimedate-perl
pip install -r requirements.txt

Now you should be able to run python weather.py to start the program. While its running there are some keyboard shortcuts to see additional information:

  • w: Displays the main weather screen
  • i: Displays an info screen which contains some additiional info information
  • q: Quits the program

Influence and Credit

Weather.py - A PyGame-based weather data/forecast display

Icons

Almost all the icons have been replaced with ones from github.com/manifestinteractive/weather-underground-icons.

Some additional icons come from erikflowers.github.io/weather-icons. These have been converted to png files via the icons/alt_icons/generate-dark-sky-pngs.sh script in this repository. To use the script you will need to first run pip3 install cairosvg.

GPIOmock.py

Pulled GPIOmock.py from github.com/grantwinney/52-Weeks-of-Pi to enable testing in an x86 virtual machine.

You can’t perform that action at this time.