Very fun weekend project. With E-Ink displays coming down in price and Raspberry Pi’s getting cheaper, I wanted to play with these new toys! A simple dashboard with the weather forecast and top headlines is an easy, but useful little project.
Ours is now hanging up in the kitchen...
Almost arty photos
If you just want to see the code, check out the repository here.
Read below to put this project together yourself!
Supplies
- Raspberry Pi w/ Wifi
- MicroSD w/ Raspbian
- E-Ink Display
- 2.5A Micro USB charger
- (Optional) Keyboard, Mouse, Display, & Mini-hdmi adapter or cable
Getting Started with your Raspberry Pi
This is my process for setting up a RaspberryPi… if you know what you’re doing here, skip to the next section
Turn on the Raspberry Pi
There’s been many guides written here (some of my favorites), but here’s the sparknotes.
- Download Raspbian onto an SD card
- Plug that SD card in
- Plug in a power cable
- Plug in keyboard, mouse, and display
It’s easy to get lost in the weeds when you're just getting started. Just follow one guide and keep going.
I like to get the Raspbian UI up and running so I can get readjusted to the Raspberry Pi environment and tools.
Configure the Raspberry Pi
Next we’re going to make changes to the raspberry pi configuration
- Connect to the internet - For API access and to enable github and other developer tools
- Enable GPIO pins - For the E-Ink display connection
- Change password - So we don't get HACKED
- Enable remote SSH - For my preferred developer tooling setup
Connect via SSH Using VScode
Let’s connect the RaspberryPI to VSCode via Remote-SSH. This is my personal preference. It just works so dang well!
Here's a guide to getting connected using VSCode.
So download and install VSCode and install the "Remote-SSH" plugin, then connect to the RaspberryPi by hitting CMD-Shift-P and typing in Remote-SSH. Connect to host, where the host is "RaspberryPi.local"
In my experience, Remote-SSH can work with a RaspberryPi 2b+, but remote shell works better with the 3 or newer. Much less stuttering, disconnecting.
Connect your E-Ink Display
I'm using the WaveShare 7.5in Red/Black/White display. The RaspberryPi hat pushes directly onto the GPIO pins of the RaspberryPi.
To test the connection, I used the WaveShare github repository's Python test scripts. They're moderately well documented, so you can just run the test script appropriate for your WaveShare display.
The Code
The interesting part of this project is the GitHub repository. You can check out my code here: [https://github.com/SamBroner/e-ink-weather)[https://github.com/SamBroner/e-ink-weather]
To get weather information, I used https://weatherapi.com/. To get News, I used https://newsapi.org. If you use my repo, you can clone and put your API tokens in the .env
file.
It's relatively well documented, but tweet at me if you have issues and I'll update the documentation. (@SamBroner)
Hanging & Framing
Ultimately, I wanted this to hang in the kitchen, so I found a cheap Shadow Box frame at a used goods store near my house.
I cut an opening for the ribbon cable to go from the front of the matting to the back, then glued the display & the RaspberryPi to opposite sides of the backing.
Conclusion
Fun project. E-Ink is great and reduced prices should lower the barriers to projects like this.