Contents
ラズパイと電子ペーパーで自作ダッシュボードを作る
Raspberry Pi(ラズパイ)と電子ペーパーを使って、部屋の温湿度やCO2濃度と天気予報をまとめて可視化するために自作ダッシュボードを作成することにしました。
SwitchBotからも天気予報やカレンダーなどを表示するダッシュボードが出ていますが、自分でカスタマイズして楽しみたいと思い、自作してみました。

画面表示には4.26インチのe-PaperHATを使用します。もう少し大きい方が視認性が高いですが、e-Paperは値段が高いためまずはラズパイほどのサイズでお試しも兼ねて4.26インチを購入しました。配線の関係上、ディスプレイ配置に合わせて画像を180度回転させて表示しています。
ハードウェア構成と自作パンチングボードへの設置
以前制作したアルミパンチングボードを活用して各センサーを配置しています。アルミ板の切り出しや穴あけ加工などの詳しい自作手順については以下の記事でまとめています。
ボード上部には4.26インチのe-PaperHATを配置し、下部にはRaspberryPi本体と各種センサー群を配置しています。温湿度センサーのDHT22とCO2センサーのMH-Z19Cは、本体の発熱による温度の誤差を避けるために多少離しています。
金属製のパンチングボード穴を利用してスペーサーやボルトでしっかりと固定し、配線はボードの裏側をなるべく通すことで、大量のコードを少しでもスッキリさせています。

今回購入した4.26インチe-PaperHAT
今回ダッシュボードの表示部として用意したのがWaveshare製の4.26インチe-PaperHATです。解像度は800×480ピクセルあり、白黒の2色表示に対応しています。
基板裏面にはSPI通信用のコネクタや設定スイッチが搭載されており、RaspberryPiのGPIOピンヘッダーに直接挿すことも付属の8ピンケーブルで配線することも可能です。今回は、各センサーを接続するため、8ピンケーブルで配線しました。

裏面はこんな感じです。直接GPIOにぶすっと挿すこともできます。

ケーブルを挿すとこんな感じです。爪で少し強めに押します。

必要なパーツと配線一覧
使用する機器とRaspberryPiの接続ピン一覧です。e-Paperディスプレイと各センサーが衝突しないような配置になっているので参考にしてください。
| 接続機器 | ピン名 | RaspberryPi物理ピン | GPIOピン | メモ |
| e-PaperHAT | VCC | Pin1 | 3.3V | メイン電源 |
| e-PaperHAT | GND | Pin6 | GND | グランド |
| e-PaperHAT | PWR | Pin12 | GPIO18 | 電源スイッチ制御 |
| e-PaperHAT | BUSY | Pin18 | GPIO24 | ビジー状態検知 |
| e-PaperHAT | RST | Pin11 | GPIO17 | リセット制御 |
| e-PaperHAT | DC | Pin22 | GPIO25 | データコマンド切り替え |
| e-PaperHAT | CS | Pin24 | GPIO8 | SPIチップセレクト |
| e-PaperHAT | CLK | Pin23 | GPIO11 | SPIクロック |
| e-PaperHAT | DIN | Pin19 | GPIO10 | SPIデータ |
| DHT22 | VCC | Pin17 | 3.3V | センサー電源 |
| DHT22 | GND | Pin9 | GND | グランド |
| DHT22 | DATA | Pin7 | GPIO4 | 温湿度データ入力 |
| MH-Z19C | VCC | Pin2 | 5V | 5V供給が必須 |
| MH-Z19C | GND | Pin14 | GND | グランド |
| MH-Z19C | TXD | Pin10 | GPIO15 | クロス接続 |
| MH-Z19C | RXD | Pin8 | GPIO14 | クロス接続 |
以下がRaspberry PiシリーズのGPIOピンです。(画像は3Bですが4やその他ラズパイであれば共通です)

MH-Z19Cは5V給電が必要なので注意してください。
※給電と配線の注意点
Raspberry Piに電子ペーパーディスプレイ(e-Paper)、温湿度センサー(DHT22)、CO2センサー(MH-Z19C)など複数のデバイスを同時に接続する場合、給電不足によって動作が不安定にななることがあるため、5V/3A以上の安定した電源アダプタを使用してください。
また、今回使用している温湿度センサーDHT22やCO2センサーMH-Z19Cの単体での接続方法や仕組みについて詳しく知りたい方は以下の記事も参考にしてください。
システム設定とライブラリインストール
RaspberryPiと各デバイス(電子ペーパーおよびCO2センサー)を正しく通信させるため、OS内部のインターフェース機能を有効化します。
ターミナルから以下のコマンドを実行して設定画面を表示させます。
sudo raspi-config
SPI機能の有効化
電子ペーパー(e-PaperHAT)へ画面描画データを高速送信するためにSPI通信を有効にします。
- メニュー画面から3 Interface Optionsを選択します
- I4 SPIを選択します
- 電子ペーパーとの通信を許可するためEnabledにする確認画面でYesを選択します
これで描画に必要な通信機能が可能になります。
シリアルポート(UART)機能の設定
CO2センサー(MH-Z19C)とUARTシリアル通信を行うための設定です。ここでの質問の答え方を間違えるとシリアルポートがOSのログインシェル用に占有され通信エラーや権限エラーが発生するため注意が必要です。
- メニュー画面から3 Interface Optionsを選択します
- I6 Serial Portを選択します
- Would you like a login shell to be accessible over serial?という質問に対してNoを選択します(ここをYesにするとポートがデバッグ用に占有されてセンサー値が読めなくなります)
- Would you like the serial port hardware to be enabled?という質問に対してYesを選択します(シリアル通信の機能自体は有効化します)
この設定によりシリアルポートが解放されPythonスクリプトからCO2センサーの値を直接取得できるようになります。
設定変更が完了したらFinishを選択して設定画面を抜け、変更をシステムに反映させるために再起動します。
sudo reboot
必要なライブラリのインストール
制御に必要なPythonライブラリ群をインストールします。最新のRaspberryPiOS環境ではGPIO制御ライブラリのパッケージ名が従来のlibgpiod2からgpiodおよびlibgpiod-devへ変更されている点に注意してください。
実行するコマンドは以下の通りです。
sudo apt update
sudo apt install -y python3-pip python3-pil python3-numpy gpiod libgpiod-dev python3-spidev python3-rpi.gpio
pip3 install adafruit-circuitpython-dht --break-system-packages
まとめと次回予告
今回はハードウェアの組み立て、ピン配線、OSの初期設定および必要なライブラリのインストールまで完了しました。
次回は温湿度センサーDHT22、CO2センサーMH-Z19C、電子ペーパー表示、OpenWeatherMapAPIを用いた単体テストおよびハマりどころの解決法を解説します。










