-
Notifications
You must be signed in to change notification settings - Fork 1
Home
The project is the latest version of the Pi Remind project, a Raspberry Pi-based project for notifying users of upcoming appointments in their Google Calendar. I built this project because I often found myself missing appointments because I was engrossed in my work or because I switched away from my work computer to a different cone and didn't hear the reminder ping on my work laptop. I created this project to give me a visual reminder, an obnoxious, silent countdown timer I can set on my desk to flash lights at me as a warning before my next meeting starts.
There are multiple versions of this project:
- Pi Remind - The original, used the low resolution Pimoroni Unicorn HAT to display notifications and didn't show the meeting title because the resolution was too low (8x8 LED matrix).
- Pi Remind Blinkit - A version of the project for the Raspberry Pi Zero and the Pimoroni Pi Zero W Starter Kit
- Pi Remind HD - For this version of the project, I upgraded to the Pimoroni Unicorn HAT HD which upgraded the LED matrix to a 64x64 grid of LEDs and enabled me to display the appointment subject during a notification (it scrolls by on the matrix)
- Pi Remind HD Notify (this project) - For this version of the project, I completely refactored the code, separating the Unicorn HAT and Google Calendar code to separate libraries. I also pulled all the configuration settings (but one) to an external file so you can configure the app's behavior without modifying the code (you're welcome).
The project uses a network connected Raspberry Pi and a Pimoroni Unicorn HAT HD to flash the reminder. The project was originally built using the Pimoroni Unicorn HAT, and published in Make Magazine (makezine.com): Get a Flashing Meeting Reminder with a Raspberry Pi. For this version, I upgraded the Unicorn HAT to the High Definition (HD) version which will allow me to display much cleaner and more interesting color patterns. The HD version of the Unicorn HAT has 256 LEDs vs the original Unicorn HAT's 64, for much higher pixel resolution.
The Pi Remind project connects to a user's Google Calendar, then displays appointment reminders on a Unicorn HAT HD. In this project, the status of the user's Google Calendar is also sent to the Remote Notify device, lighting a LED Red when the user is busy (based on the calendar), Yellow for tentative, and Green for free/available.
One of the things I wanted to do in the original project was display the meeting description/subject on the Unicorn HAT. I could have done it, but because of the low pixel resolution of the Unicorn HAT, it would have looked clunky. The Unicorn HAT HD has a higher pixel resolution, so I've added the feature here.
The Pi connects to Google Calendar and checks every minute for upcoming appointments then flashes the Unicorn HAT's LEDs for following alerts:
- White @ 10 minutes until 5 minutes
- Yellow @ 5 minutes until 2 minutes
- Multi-color swirl @ 2 minutes
If you're feeling adventurous, you can change the code to use any of the sample patterns included with the Unicorn HAT HD Sample Code. I'm personally a big fan of the star field example, but that's not very useful as an alerting mechanism.
The project displays a single indicator LED to let you know the app is working. It will illuminate a single LED along the bottom row of the Unicorn HAT and move the LED across the display every time it connects to Google to obtain calendar information. The color of the LED indicates status of the app as well:
- Blue - The app is connecting to the Google Calendar API
- Green - The app received data from the Google Calendar API, but there are no pending appointments within the next 10 minutes
- Red - The app encountered an error connecting to the Google Calendar API
- White - There is an appointment beginning within 10 minutes
- Yellow - There is an appointment beginning within the next 5 minutes
- Orange - There is an appointment beginning within the next 2 minutes
This way, even if you miss the flashing lights, you can glance at the display and still determine if you have an upcoming appointment.
For this project, I used the following components:
- Raspberry Pi 3, but most any Pi will work. Check the Unicorn HAT documentation for supported Pi devices.
- Pimoroni Unicorn HAT HD
- Adafruit Raspberry Pi B+ / Pi 2 / Pi 3 Case - Smoke Base - w/ Clear Top
- CanaKit 5V 2.5A Raspberry Pi 3 Power Supply / Adapter / Charger (UL Listed) from Amazon
If you find this code useful, and feel like thanking me for providing it, please consider making a purchase from my Amazon Wish List. You can find information on many different topics on my personal blog. Learn about all of my publications at John Wargo Books.