Some households have a posh schedule: the youngsters have faculty and afterschool actions, you have got vital occasions you wish to bear in mind, everybody has a number of appointments, and so forth. While you possibly can preserve observe of every little thing utilizing your cellphone and an app, would not or not it’s higher to have a big, low-power show at dwelling to indicate your loved ones’s calendar? Meet the E Ink calendar!
The calendar began as a vacation mission, so I attempted to reuse as a lot as I might. This included a Raspberry Pi 2 that had been unused for too lengthy. I didn’t have an E Ink show, so I had to purchase it. Fortunately, I discovered a vendor that offered open source drivers and examples for its Raspberry Pi-ready display screen, which is linked utilizing some GPIO ports.
My household additionally needed to modify between totally different calendars, and that required some type of enter. Instead of including a USB keyboard, I opted for an easier answer and acquired a 1×4 matrix keypad, much like the one described in this article. This allowed me to attach the keypad to some GPIO ports within the Raspberry Pi.
Finally, I wanted a photograph body to deal with the entire setup. It seems a bit messy on the again, nevertheless it will get the job achieved.
The software program
I took inspiration from a similar project and began writing the Python code for my mission. I wanted to get knowledge from two areas:
- Weather knowledge, which I acquired from the OpenWeather API
- Calendar knowledge; I made a decision to make use of the CalDav standard, which lets me connect with a calendar working on my dwelling server
Since I needed to look ahead to some components to reach, I used a modular method for the enter and show in order that I might debug a lot of the code with out the hardware. The calendar utility helps drivers, and I wrote a Pygame driver to run it on a desktop PC.
The finest a part of writing the code was with the ability to reuse current open supply tasks, so accessing the totally different APIs was simple. I might give attention to the person interface—having per-person weekly and everybody each day calendars, permitting calendar choice utilizing the keypad—and I had time so as to add some additional touches, like customized display screen savers for particular days.
The last integration step was ensuring my calendar utility would run on startup and be resilient to errors. I used a base Raspberry Pi OS picture and put in the applying as a systemd service in order that it could survive failures and system restarts.
Once I completed every little thing, I uploaded the code to GitHub. So if you wish to create an analogous calendar, be at liberty to take a look and reuse it!
The calendar has turn out to be an on a regular basis equipment in our kitchen. It helps us bear in mind our each day actions, and even our children use it to test their schedule earlier than going to high school.
On a private word, the mission helped me admire the energy of open. Without open supply drivers and libraries and open APIs, we’d nonetheless be organizing our schedule with paper and a pen. Crazy, is not it?