家族のスケジュールは複雑です。お子さんの学校や放課後の活動、覚えておきたい重要な用事、家族全員の予定が複数あるなど、様々な事情があります。スマートフォンやアプリを使って全てを管理することも可能ですが、家族のスケジュールを表示できる、消費電力を抑えた大型ディスプレイがあればもっと便利だと思いませんか?そんな時は、Eインクカレンダーがぴったりです! E Inkカレンダー ハードウェアこのプロジェクトは休日のプロジェクトとして始まったので、できるだけ多くの古いアイテムを再利用しようと考えました。その中には、長い間放置されていたRaspberry Pi 2も含まれていました。E-inkスクリーンを持っていなかったので、購入する必要がありました。幸運なことに、Raspberry Piに対応し、GPIOポートを使って接続できるスクリーン用のオープンソースドライバーとサンプルプログラムを提供しているベンダーを見つけることができました。 家族も異なるスケジュールを切り替えたいと考えていたため、何らかの入力手段が必要でした。USBキーボードを追加する代わりに、よりシンプルな解決策として、この記事で紹介した1x4キーボードと同サイズのキーボードを購入しました。これにより、キーボードをRaspberry Piの特定のGPIOポートに接続できるようになりました。 最後に、セットアップ全体を収納するためのフレームが必要でした。背面は少しごちゃごちゃしていますが、これで十分です。
カレンダーの内部 ソフトウェア似たようなプロジェクトに触発され、自分のプロジェクト用のPythonコードを書き始めました。2つの場所からデータを取得する必要があります。
一部の部品の到着を待つ必要があったため、入力と表示にはモジュール方式を採用し、ハードウェアなしでコードのほとんどをデバッグできるようにしました。カレンダーアプリケーションにはドライバが必要だったので、デスクトップで動作するようにPygameドライバを作成しました。 コードを書く上で最も良かったのは、既存のオープンソースプロジェクトを再利用できたことで、様々なAPIへのアクセスが容易になったことです。私はユーザーインターフェースの設計に集中できました。これには、全員の週間カレンダーと個人カレンダー、そしてキーパッドを使ったイベント選択機能などが含まれます。また、特別な日のためのカスタムスクリーンセーバーなど、いくつかの追加機能の追加にも時間を費やしました。
E Inkカレンダースクリーンセーバー 最後の統合ステップでは、カレンダーアプリケーションが起動時に実行され、フォールトトレランス性を備えていることを確認します。Raspberry Piの基本的なシステムイメージを使用し、障害発生時やシステム再起動時でもアプリケーションが継続して実行されるよう、アプリケーションをsystemdサービスに設定しました。 すべての作業が完了したら、コードをGitHubにアップロードしました。そのため、同様のカレンダーを作成したい場合は、いつでもレビューとリファクタリングを行うことができます。 結論はスケジュールは、私たちのキッチンで欠かせないツールになりました。日々の予定を思い出すのに役立つだけでなく、子供たちも学校に行く前にスケジュールを確認するのに使えます。 このプロジェクトを通して、オープンソースの力を改めて実感しました。オープンソースのドライバー、ライブラリ、そしてオープンAPIがなければ、私たちは今でもスケジュール管理に紙とペンを使っていたでしょう。信じられないですよね? スケジュールが重ならないようにする必要がありますか?これらの無料のオープンソース プロジェクトを使用して、その方法を学びましょう。 |