2019年1月12日土曜日

ESP32で1.54インチのePaperを動かす方法


背景

ESP32とは、WiFiとBluetooth通信が出来るプログラム可能なモジュールです。
ePaperとは電源を切っても表示を維持できる情報表示版です。

ESP32で1.54インチのePaperを動かせたので、備忘録を兼ねてやった内容を共有します。

使ったもの

ePaperモジュール


Aliexpressで買いました。

TZT 1.54 インチ電子ペーパーモジュール電子ペーパー E-インク EInk 表示画面 SPI サポートグローバル/用 arduino STM ラズベリーパイ ESP32

こちらのePaperモジュールでも同様のことができます。

Waveshare1.54inch 電子ペーパー/E インクディスプレイ 200 × 200 、ラズベリーパイのための spi インタフェースなど。 2-表示色: 黒、白、部分的なリフレッシュ

ESP32開発ボード

ESP32BBを利用しました。


ESP32を使っている開発ボードなら同じプログラムを動かせます。

ジャンパワイヤ

ESP32BBはピンソケット(メス)が付いているので、オスメスジャンパワイヤを利用しました。


ピンヘッダ(オス)が付いているESP32開発ボードを利用する場合は、メスメスジャンパワイヤか、オスメスジャンパワイヤとブレッドボードを使うと接続できます。

ESP32を開発できるようにしたArduino IDE

PCにArduino IDEをインストールし、arduino-esp32IDEにjsonのurlを追加してからボードマネージャーを通して設定して、開発ボードとしてESP32DevModuleを選択しました。


接続

ESP32開発ボードとePaperモジュールをこのように接続します。

ePaper ESP32
VCC 3V3
GND GND
SDI 23
SCLK 18
CS 26
DC 25
Reset 33
Busy 27


ライブラリを設定

Arduino IDEにEPDライブラリを設定します。

ライブラリを使わなくてもePaper向けのプログラムを公開しているwikiからコードをダウンロードして、ESP32向けにコードを変更すればePaperを利用できます。
しかし、ePaperを利用する度にコードをコピーして変更するのが手間そうだったので、変更したコードをライブラリとして公開しました。

https://github.com/asukiaaa/EPD

上記のライブラリはArduino IDEのライブラリマネージャで設定できます。

Arduino IDEでスケッチ -> ライブラリをインクルード -> ライブラリを管理でライブラリマネージャを開きます。


EPDで検索し、「by Asuki Kono」となっているEPDライブラリをインストールします。


サンプルプログラムの一部を書き換えて書き込み

EPDライブラリを設定できたらサンプルプログラムを使えるようになるので、ファイル -> スケッチ例 -> EPD -> EPD1in54ShowRunningTimeを開きます。


ESP32で利用を推奨されていないピンをEPDが利用する設定になっているので、ESP32で使えるピンを利用します。
先ほど開発ボードとePaperモジュールの接続に利用したピンに合わせて、EPD1in54の定義を下記のように変更します。
// EPD1in54 epd; // default reset: 8, dc: 9, cs: 10, busy: 7
EPD1in54 epd(33, 25, 26, 27); // reset, dc, cs, busy

ピンの割り当てを変更したら、プログラムをESP32に書き込みます。
「Hello worldと丸や四角」、「画像と駆動時間」の表示を確認できました。



まとめ

ePaperモジュールをESP32で制御できました。

参考になれば嬉しいです。

参考

電子ペーパーの実験
1.54inch e-Paper Module

0 件のコメント :