Weather Display with E-Ink Screen
Build a low-power weather display using Raspberry Pi and an E-Ink screen that shows forecasts with zero light pollution.
Parts List
- Raspberry Pi Zero W
- 7.5" E-Ink Display HAT
- MicroSD Card
- Power Supply
Step-by-Step Instructions
Connect E-Ink Display
Align the 7.5-inch E-Ink Display HAT with the 40-pin GPIO header on the Raspberry Pi Zero W and press it down firmly until all pins are seated. The HAT should sit flush against the Pi without any gaps or misaligned pins. Mount the assembly in a frame or enclosure that exposes the display while protecting the electronics behind it.
Install Display Library
Clone the Waveshare e-Paper library from their GitHub repository and run the installation script to set up the Python dependencies. Test the display by running the provided example scripts to verify the screen refreshes correctly and all pixels are functioning. Configure the SPI interface in raspi-config if the display does not initialize properly on first boot.
Fetch Weather Data
Sign up for a free OpenWeatherMap API account and generate an API key for your location. Write a Python script that queries the current weather endpoint and the 5-day forecast endpoint to retrieve temperature, humidity, conditions, and wind data. Parse the JSON responses and store the relevant values in variables that can be passed to the display rendering functions.
Render Weather Info
Design a clean layout on the e-ink display using the Waveshare drawing functions, placing the current temperature prominently in the center with weather icons above it. Add forecast panels below showing the next three days with high/low temperatures and condition symbols. Schedule the script to run every 15 minutes using cron or a Python timer loop, which refreshes the display while consuming almost zero power between updates.