A small tool that gets weather forecasts from the internet and displays it on an e-ink display.
The e-ink display is a Waveshare 6inch HD model with a resolution of 1448*1072: https://www.waveshare.com/wiki/6inch_HD_e-Paper_HAT
Notable dependencies are:
- The IT8951 driver to interface with the e-ink display: github.com/GregDMeyer/IT8951
- A wrapper around the OpenWeatherMap web API: github.com/csparpa/pyowm
- Weather icons: github.com/erikflowers/weather-icons
There is also a Fusion 360 model of an enclosure that can be 3D printed: enclosure.f3d
Currently 3 weather providers are supported:
- open-meteo.com - Completely free, no API key required
- openweathermap.org/api - Free tier requires API key
- tomorrow.io/weather-api - Free tier requires API key
Example display image:
Photo of completed unit:
Install package requirements using apt if running on a Raspberry Pi:
apt update
apt install python3-pandas python3-pil python3-matplotlib python3-scipy python3-pip python3-setuptools git vimThen install this tool using pip:
pip3 install --break-system-packages https://github.com/GregDMeyer/IT8951/archive/master.zip
pip3 install --break-system-packages https://github.com/FutureSharks/rpi-weather-display/archive/master.zipAnd run it and it will update the e-ink display:
# Using Open-Meteo (no API key required)
rpi-weather-display --provider openmeteo
# Using OpenWeatherMap
rpi-weather-display --provider openweather --api-key <YOUR_API_KEY>
# Using Tomorrow.io
rpi-weather-display --provider tomorrow --api-key <YOUR_API_KEY>Or to optionally run it as a service via systemd (command will need to be updated with any required arguments):
echo -e "[Unit]\nDescription=RPi Weather Display Service\nAfter=network.target\n\n[Service]\nExecStart=/usr/local/bin/rpi-weather-display\nRestart=always\nRestartSec=5\nUser=root\n\n[Install]\nWantedBy=multi-user.target" > /etc/systemd/system/rpi-weather-display.service
systemctl daemon-reload && systemctl start rpi-weather-display && systemctl enable rpi-weather-display


