Python + Bash with a Raspberry Pi and Waveshare's 4.2in ePaper display and ePaper library, using Spotipy for track info, OpenWeathermap for weather info, and Pillow to generate/display image.
- main.py only engages with ePaper functionality after determining the availability of Waveshare's epd library.
python3 main.py --clock # push image to ePaper or save local .png every ~3 minutes most of the day
python3 main.py --local # generate local test_output/clock_output.png
python3 main.py -v # enable STDOUT logging
- launch_epaper.sh is designed to run main.py indefinitely.
./launch_epaper.sh --clock # push image to ePaper or save local .png every ~3 minutes most of the day
./launch_epaper.sh --local # generate local .png every 60 seconds
./launch_epaper.sh -v # enable STDOUT logging
- auth_update.py is also designed to run indefinitely and periodically updates the local branch to the origin every 15 minutes and can be added as a cron job.
- We presume you have a headless Raspberry Pi (I use a Zero W 2) with Waveshare's 4.2inch ePaper display attached via GPIO.
- Waveshare provides a set of instructions in the 'Hardware/Software' setup tab under the setup tab to install the libraries required to drive the display, follow that guide, enable SPI interface in raspi-config, and install the software below as su.
-
sudo apt-get install git python3-pip python3-pil python3-numpy imagemagick sudo pip3 install RPi.GPIO spidev spotipy requests
-
- Clone Waveshare Examples and Python Libraries, install setup.py and test epd_4in2_test.py
-
sudo git clone https://github.com/waveshare/e-Paper cd e-Paper/RaspberryPi\&JetsonNano/python sudo python3 setup.py install cd examples sudo python3 epd_4in2_test.py
-
- Clone this repository, and alter config/keys.json to include one or two Spotify User's id and secret generated from Spotify's Create App page and a free OpenWeatherMap token
- Run main.py and pass in returned google url into terminal to sync Spotify key to project.
- Modify e-Paper/launch_epaper.sh to point to the correct main.py path.
- call ./launch_epaper.sh on reboot via cron or rc.local