Linux中國

利用樹莓派和低功耗顯示器來跟蹤你的家庭日程表

有些家庭的日程安排很複雜:孩子們有上學活動和放學後的活動,你想要記住的重要事情,每個人都有多個約會等等。雖然你可以使用手機和應用程序來關注所有事情,但在家中放置一個大型低功耗顯示器以顯示家人的日程不是更好嗎?電子墨水日程表剛好滿足!

![E Ink calendar](/data/attachment/album/202103/21/091525ksnt71mvc585fu5k.jpg "E Ink calendar")

硬體

這個項目是作為假日項目開始,因此我試著儘可能多的舊物利用。其中包括一台已經閑置了太長時間樹莓派 2。由於我沒有電子墨水屏,因此我需要購買一個。幸運的是,我找到了一家供應商,該供應商為支持樹莓派的屏幕提供了 開源驅動程序和示例,該屏幕使用 GPIO 埠連接。

我的家人還想在不同的日程表之間切換,因此需要某種形式的輸入。我沒有添加 USB 鍵盤,而是選擇了一種更簡單的解決方案,併購買了一個類似於在 這篇文章 中所描述 1x4 大小的鍵盤。這使我可以將鍵盤連接到樹莓派中的某些 GPIO 埠。

最後,我需要一個相框來容納整個設置。雖然背面看起來有些凌亂,但它能完成工作。

![Calendar internals](/data/attachment/album/202103/21/091526rojamnnbfa52ce8f.jpg "Calendar internals")

軟體

我從 一個類似的項目 中獲得了靈感,並開始為我的項目編寫 Python 代碼。我需要從兩個地方獲取數據:

  • 天氣信息:從 OpenWeather API 獲取
  • 時間信息:我打算使用 CalDav 標準 連接到一個在我家伺服器上運行的日程表

由於必須等待一些零件的送達,因此我使用了模塊化的方法來進行輸入和顯示,這樣我可以在沒有硬體的情況下調試大多數代碼。日程表應用程序需要驅動程序,於是我編寫了一個 Pygame 驅動程序以便能在台式機上運行它。

編寫代碼最好的部分是能夠重用現有的開源項目,所以訪問不同的 API 很容易。我可以專註於設計用戶界面,其中包括每個人的周曆和每個人的日曆,以及允許使用小鍵盤來選擇日程。並且我花時間又添加了一些額外的功能,例如特殊日子的自定義屏幕保護程序。

![E Ink calendar screensaver](/data/attachment/album/202103/21/091527ajgp7xgx7s1quhx8.jpg "E Ink calendar screensaver")

最後的集成步驟將確保我的日程表應用程序將在啟動時運行,並且能夠容錯。我使用了一個基本的 樹莓派系統 鏡像,並將該應用程序配置到 systemd 服務,以便它可以在出現故障和系統重新啟動依舊運行。

做完所有工作,我把代碼上傳到了 GitHub。因此,如果你要創建類似的日曆,可以隨時查看並重構它!

結論

日程表已成為我們廚房中的日常工具。它可以幫助我們記住我們的日常活動,甚至我們的孩子在上學前,都可以使用它來查看日程的安排。

對我而言,這個項目讓我感受到開源的力量。如果沒有開源的驅動程序、庫以及開放 API,我們依舊還在用紙和筆來安排日程。很瘋狂,不是嗎?

需要確保你的日程不衝突嗎?學習如何使用這些免費的開源項目來做到這點。

via: https://opensource.com/article/21/3/family-calendar-raspberry-pi

作者:Javier Pena 選題:lujun9972 譯者:wyxplus 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國