Raspberry Pi用電子ペーパーディスプレイシステムモニター「eink_monitor」
概要
「eink_monitor」は、Raspberry PiとWaveshare製2.13インチ電子ペーパーディスプレイを組み合わせて使用するためのシステムモニターアプリケーションです。CPU使用率、メモリ使用量、ディスク容量、ネットワーク状況、バッテリー残量などのシステム情報を電子ペーパー上にリアルタイム表示します。特にUPS-Lite V1.3を用いたバッテリー監視と連携し、バッテリー残量が0%になると自動シャットダウンを実行するなど、省電力かつ安全な運用が可能です。Pythonで書かれており、軽量でカスタマイズしやすい設計となっています。
リポジトリの統計情報
- スター数: 7
- フォーク数: 0
- ウォッチャー数: 7
- コミット数: 7
- ファイル数: 8
- メインの言語: Python
主な特徴
- Waveshare 2.13インチ電子ペーパーディスプレイ対応のシステムモニター表示
- UPS-Lite V1.3との連携によるバッテリー状態監視と自動シャットダウン機能
- CPU、メモリ、ディスク、ネットワーク、バッテリーの情報をリアルタイムに表示
- 軽量でPythonによるシンプルな実装、Raspberry Pi Zeroシリーズでの動作検証済み
技術的なポイント
本プロジェクトは、Raspberry Piと電子ペーパーディスプレイの特性を活かしたシステムモニター実装が特徴です。電子ペーパーは省電力かつ視認性が高い反面、画面更新に時間がかかり頻繁なフルリフレッシュは避けるべきという制約があります。そこで「eink_monitor」は、ディスプレイ更新の頻度や描画内容を工夫し、必要な情報のみを効率的に描画する設計を採用しています。
具体的には、PythonのPillowライブラリを用いたテキスト描画をベースにし、CPU使用率やメモリ状況などの数値更新時のみ画面の部分更新を行います。また、UPS-Lite V1.3のAPIを通じてバッテリー残量を取得し、残量0%時にはRaspberry Piの安全なシャットダウンを自動で実行。これにより、バッテリー切れによるデータ破損リスクを低減しています。
ハードウェア面では、Waveshareの2.13インチe-Paper HATを使用し、Raspberry Pi Zero WやZero 2 Wで動作確認済み。シンプルなHAT接続により、GPIOやSPI通信を介して電子ペーパーを制御しています。ソフトウェア構造は単一のPythonスクリプト(eink_monitor.py)を中心に、必要なフォントや画像資産をassetsディレクトリで管理。インストールスクリプトinstall.shにより依存関係のセットアップも容易です。
また、画面表示はテキストの可読性を重視し、電子ペーパー特有のモノクロ表示に最適化。バッテリー残量やCPU温度など重要なステータスはアイコンや色分けで視覚的に区別可能です。これらの工夫により、低消費電力環境下でも長時間安定してシステム状態を監視できます。
さらに、オープンソースとして拡張性が高く、他の電子ペーパーや外部センサーとの連携も想定可能。Pythonベースなので、ユーザーは自身の運用環境に応じて機能追加やUIカスタマイズが行いやすい点も魅力です。
プロジェクトの構成
主要なファイルとディレクトリ:
- LICENSE: ライセンス情報ファイル
- README.md: プロジェクト概要やセットアップ手順の説明
- assets: フォントやアイコンなど表示用の画像資産ディレクトリ
- eink_monitor.py: メインのPythonスクリプト。システム情報取得と電子ペーパー描画処理を実装
- install.sh: 必要なライブラリやドライバのインストールを自動化するシェルスクリプト
- requirements.txt: Pythonパッケージの依存リスト
- screenshot.png: 動作中の電子ペーパー画面スクリーンショット
- setup.py: Pythonパッケージとしてのセットアップ用ファイル(必要に応じて)
これらにより、初期セットアップから日常運用までをスムーズに行える構成となっています。
まとめ
Raspberry Piと電子ペーパーによる低消費電力システムモニターとして優秀。
リポジトリ情報:
- 名前: eink_monitor
- 説明: e-ink system monitor for raspberry pi
- スター数: 7
- 言語: Python
- URL: https://github.com/TheMiner203/eink_monitor
- オーナー: TheMiner203
- アバター: https://avatars.githubusercontent.com/u/84179454?v=4