まとめ
e-Paperフォトディスプレイ
詳細についてはこちらをご覧ください。ギットハブのページ
はじめに
このプロジェクトでは、Raspberry Pi Zero 2 WとWaveshareの7.5インチの電子ペーパーディスプレイを使用して、Firebase Storageから画像を取得し、重なった時計と一緒に表示する動的な写真ビューアーを作成しました。私はこのプロジェクトを2024年のクリスマスプレゼントとして祖父母に作成しました。彼らはそれを本当に愛していました!これは、愛する人から離れていて、意味
コンポーネント
必要な部品
-
Waveshare 7.5インチの電子ペーパーHAT。
-
ラズベリーパイ ゼロ 2 W
-
PLAフィラメント
- 3D印刷用の標準的なPLAフィラメントです。
- ネジとナット
- 4本のM2.5ネジ
- 4個のM2.5ナット
3Dプリンテッドパーツ
STLファイル
このプロジェクトでは、ePaperディスプレイのフレーム用の3D印刷可能なファイルが含まれています。これらは、STLフォルダで見ることができます。
- Frame_Base.stl
- Frame_Lid.stl
これらの部品を印刷するには、お好みの3D印刷ソフトウェアを使用してください。プリンターの設定は、PLAフィラメントに必要な仕様に合致していることを確認してください。
組み立て
-
フレームを印刷する:
- 提供されたSTLファイルを使用して、Frame_Base.stlとFrame_Lid.stlを印刷してください。
-
ディスプレイを組み立てる:
- M2.5のネジとナットを使用して、Waveshare e-Paper HATをRaspberry Pi Zero 2 Wに取り付けます。
- ラズベリーパイとeペーパーディスプレイを3D印刷されたフレーム内に固定します。
- コネクトパワー:
- ラズベリーパイが信頼できる電源に接続されていることを確認してください。
ソフトウェアのセットアップ
1. Raspberry Piの準備をする
続行する前に、あなたのRaspberry Pi Zero 2 Wが以下の状態であることを確認してください。
-
最新のOSで設定されています:
- 最小限のセットアップでRaspberry Pi OS Liteをインストールしてください。
-
ネットワークに接続されています:
- あなたのWi-Fi認証情報を含めるように、wpa_supplicant.confファイルを編集してください。
- SSH が有効になっている:
- SSHを有効にするには、SDカードのブートパーティションにsshという名前の空のファイル(拡張子なし)を保存しておきます。
例のwpa_supplicant.conf:
国=USctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1network={ ssid="YOUR_WIFI_SSID" psk="YOUR_WIFI_PASSWORD"}2.依存関係をインストールする
SSH経由でRaspberry Piに接続し、必要なパッケージをインストールします。
スードー apt アップデート スードー apt インストール -y ピトン3-ピップ ギット ピトン3 インストール ファイアベース-アドミン ピロウ スケジュール リクエスト ピトン3 インストール ウェーブシェア-EPD備考:
-
Python 3:あなたのラズベリーパイにPython 3がインストールされていることを確認してください。バージョンを確認するには、次のコマンドを使用します。
python3 --version -
pip3:Pythonパッケージインストーラは利用可能であるはずです。もしそうでない場合は、次のようにインストールしてください。
sudo apt install -y python3-pip - Waveshareの電子ペーパーライブラリ:ウェーブシェア-ePdライブラリは、ePaperディスプレイとのインタフェースに必要です。お使いのePaperモデルとの互換性を確認してください。
3.スクリプトを設定する
-
リポジトリをクローンする:
あなたの実際のGitHubユーザー名とリポジトリ名で、yourusernameとyour-repo-nameを置き換えてください。
git clone https://github.com/yourusername/your-repo-name.gitcd your-repo-name -
設定を編集する:
eink.pyスクリプトを開き、プレイスホルダのパスと設定を自分のものに置き換えます。
nano eink.py設定セクション:
# ============================# 設定(以下を自分の設定に置き換えてください)# ============================CACHE_DIR = '/path/to/your/eink_cache' # キャッシュディレクトリのパスに置き換えてくださいFONT_PATH = "/path/to/your/fonts/DejaVuSans.ttf" # フォントファイルのパスに置き換えてくださいDISPLAY_WIDTH = 800 # ディスプレイの幅に置き換えてくださいDIS- キャッシュディレクトリキャッシュされた画像を保存するディレクトリ。
- FONT_PATH:TrueTypeフォントファイルへのパス。
- ディスプレイの幅と高さあなたの電子ペーパーディスプレイの解像度。
- 画像の表示期間各画像が表示される時間(秒)。
- CLOCK_UPDATE_INTERVALクロックの更新間隔(秒単位)。
- FIREBASE_CREDENTIALS_PATHあなたのFirebaseサービスアカウントのJSONファイルへのパス。
- FIREBASE_BUCKET_NAMEあなたのFirebase Storageバケット名。
- フォルダ名画像が保存されているFirebase Storageのフォルダ。
- SETTINGS_COLLECTION と SETTINGS_DOCUMENT:表示設定用のFirestoreコレクションとドキュメント名。
保存して終了する:
変更を保存してエディタを終了するには、CTRL + X、Y、Enterを押します。
4. Firebaseの設定をアップロードする。
ファイアベースのサービスアカウントのJSONファイルを安全にラズベリーパイに転送します。ローカルマシンからscpを使用することができます。
scp /path/to/your/firebase-service-account.json pi@your_pi_ip:/path/to/your/firebase-service-account.jsonあなたのローカルマシン上の実際のパスとRaspberry Pi上の希望のパスで、/path/to/your/firebase-service-account.jsonを置き換えてください。
例:
scp ~/Downloads/firebase-service-account.json pi@192.168.1.100:/home/pi/your-repo-name/firebase-service-account.json権限を確保する:
ラズベリーパイでは、Firebaseの認証情報ファイルに適切なアクセス権を設定してください。
chmod 600 /home/pi/your-repo-name/firebase-service-account.json5.起動時に実行するスクリプトを設定する
ラズベリーパイが起動してネットワークに接続した後にスクリプトが自動的に実行されるようにするには、システムdサービスとして設定します。
-
サービスファイルを作成する:
sudo nano /etc/systemd/system/eink.service -
以下のコンテンツを追加してください。
[ユニット] 説明= e-ペーパー写真表示サービス 後に= network-online.target 希望= network-online.target [サービス] ExecStart=/usr/bin/python3 /home/pi/your-repo-name/eink.py ワーキングディレクトリ=/home/pi/your-repo-name 標準出力= inherit 標準エラー= inherit リスタート= always ユーザー= pi [インストール] WantedBy= multi-- エグゼクト・スタート:Python インタプリタとあなたのスクリプトへのパス。
- ワーキングディレクトリあなたのスクリプトが保存されているディレクトリ。
- ユーザースクリプトを実行するユーザーは(デフォルトではpi)です。
-
システムDを再読み込みし、サービスを有効にします。
sudo systemctl daemon-reloadsudo systemctl enable eink.servicesudo systemctl start eink.service -
サービス状況を確認してください:
sudo systemctl status eink.serviceサービスがアクティブであり、エラーなく実行されていることを確認してください。
プロジェクトの運営
組み立てられ、設定された後、e-Paperディスプレイは自動的にFirebase Storageからの画像の表示を開始し、設定に基づいて時計を更新します。
画像の追加
-
ファイアベースストレージに画像をアップロードする:
- あなたのFirebaseコンソールに移動してください。
- に行ってください。ストレージそして、指定されたFOLDER_NAMEに画像をアップロードします。
- サポートされる画像形式:
- 画像がサポートされている形式(JPEG、PNGなど)であることを確認してください。
設定の更新
-
Firestoreの設定:
- に移動してください。ファイアストアあなたのFirebaseコンソールで。
- SETTINGS_COLLECTIONとSETTINGS_DOCUMENTを検索してください。
-
利用可能な設定:
{"show_clock": true,"show_photos": true,"timezone": "America/New_York"}- クロックを表示(Boolean): 時計を表示するかどうか。
- 写真を見せてください。(Boolean): 写真を表示するかどうか。
- タイムゾーン(String): 時計のタイムゾーン (例えば、"America/New_York")。
- 設定を変更する:
- いつでもこれらの設定を更新でき、スクリプトは設定された間隔に基づいて最新の設定を取得します。
トラブルシューティング
-
フォントが見つかりません:
- スクリプト内のFONT_PATHが有効なTrueTypeフォントファイルを指していることを確認してください。
-
Firebaseの初期化エラー:
- ファイアベースの認証情報ファイルが指定されたパスに存在し、必要な権限を持っていることを確認してください。
-
表示の問題:
- ラズベリーパイとeペーパーディスプレイの間の接続を確認してください。
- 正しいePaperライブラリ(waveshare-epd)がインストールされていることを確認してください。
-
サービスが開始されない:
- システムDサービスの状態を確認するには、次のようにしてください。
- エラーのためのログを確認し、サービスファイルのすべてのパスが正しいことを確認してください。
-
ネットワークの問題:
- ラズベリーパイがインターネットに接続されていることを確認してください。
- Wi-Fiの認証情報がwpa_supplicant.confで正確に設定されていることを確認してください。
- 画像のダウンロードに失敗しました。
- Firebase Storageの画像が公開アクセス可能であるか、サービスアカウントが必要な権限を持っていることを確認してください。
- インターネットの接続を確認してください。
タグ
モデルソース
