
Some families have complicated schedules: children have school activities and after-school activities, important things you want to remember, and everyone has multiple appointments, etc. While you can use phones and apps to keep track of everything, wouldn’t it be better to have a large low-power display at home to show the family’s schedule? An e-ink calendar is just what you need!
E Ink calendar
Hardware
This project started as a holiday project, so I tried to reuse as many old items as possible. This includes a Raspberry Pi 2 that has been idle for too long. Since I didn’t have an e-ink screen, I needed to purchase one. Fortunately, I found a supplier that provides open-source drivers and examples for screens that support Raspberry Pi, which connect via GPIO ports.
My family also wanted to switch between different schedules, so some form of input was needed. Instead of adding a USB keyboard, I opted for a simpler solution and purchased a 1×4 size keyboard similar to the one described in this article. This allowed me to connect the keyboard to some GPIO ports in the Raspberry Pi.
Finally, I needed a frame to house the entire setup. Although the back looks a bit messy, it does the job.
Calendar internals
Software
I was inspired by a similar project and began writing Python code for my project. I needed to get data from two places:
Since I had to wait for some parts to arrive, I used a modular approach for input and display so that I could debug most of the code without hardware. The calendar application needed drivers, so I wrote a Pygame driver to run it on my desktop.
The best part of writing code is being able to reuse existing open-source projects, making it easy to access different APIs. I could focus on designing the user interface, which includes each person’s weekly calendar and individual calendars, and allows the use of a keypad to select schedules. I also took time to add some extra features, such as a custom screensaver for special days.
E Ink calendar screensaver
The final integration step will ensure that my calendar application runs at startup and can handle errors. I used a basic Raspberry Pi system image and configured the application to run as a systemd service so that it would continue running in case of failures and system reboots.
After completing all the work, I uploaded the code to GitHub. So, if you want to create a similar calendar, feel free to check it out and refactor it!
Conclusion
The calendar has become a daily tool in our kitchen. It helps us remember our daily activities, and even our children can use it to check the schedule before going to school.
For me, this project made me feel the power of open-source. Without open-source drivers, libraries, and open APIs, we would still be using paper and pen to organize schedules. Crazy, right?
Need to ensure your schedules don’t conflict? Learn how to use these free open-source projects to do just that.
via: https://opensource.com/article/21/3/family-calendar-raspberry-pi
Author: Javier Pena, Topic: lujun9972, Translator: wyxplus, Proofreader: wxy
This article is originally compiled by LCTT and proudly presented by Linux China.