e-Paperの良記事を見たので実装してみました


はじめに

額縁の絵をリモートで差し替える、素敵、と思ってつくってみたくなりました。
https://dailyportalz.jp/kiji/e_paper-gakusou

作業環境

  • Mac Mojave
  • Arduino IDE

どんなことか動画で調べる

e-paperは初見なので。

ESP32,ESP8266でのPIN接続について
https://www.youtube.com/watch?v=AeYbX0zaJTY

手順

はまったところはあとでまとめました。

ライブラリをダウンロード・アップデート

ツール > ボード:ESP32 Dev Module > ボードマネージャ

からESP32 Dev Moduleで検索する

ソースコードをダウンロード・修正

ユーザマニュアルを確認し、ソースコードをダウンロードします

Arduino IDEを用いてWifi版とbluetooth版両方のサンプルを試して、Wifi版での操作に絞りました。
bluetooth版は途中までなので、ここでは割愛します。

Loader_esp32wfに含まれるepd.hのPINを都合に合わせて書き換えました。
以下は一例として、ご都合に合わせてください。

電子ペーパーモジュール用ESP32ドライバボードを接続・実行

シリアルポートが表示されなかったらドライバをいれる
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers

転送がおわったらシリアルモニターを監視します。
うまくいっていれば、IPアドレスが表示されるのでアクセスするとサイトが表示されます。
詳しくはドキュメントをみましょう。
今現在はP.12あたりです
https://www.waveshare.com/w/upload/4/4a/E-Paper_ESP32_Driver_Board_user_manual_en.pdf

ハマったところ

シリアルポートが表示されなかった

issueを確認し、ドライバをインストールを実施
https://github.com/espressif/arduino-esp32/issues/1084#issuecomment-363294312

サンプルコードを実行してもe-Paperに表示されない

ESP32の方のフローは正しい気がしていたのでe-Paper側になにか問題があるのだとおもってましたが
epd.hのPINの番号が他ESP32の開発ボードサンプルと全然違った。

bluetoothの例はAndroidのソースを改修

ソースコードはminSDKがAPI23あたり、手持ちのAndroidがAndroid API21(version5.0.2)だったのでソースコードの改修を途中まで行いました。
PermissionHelperを


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
}

でくくる作業をして、ファイルをだすところまでで一度止めました。
ファイル転送で応答なしになったので、PINの指定で動線が切れてしまっていたのだと思います。
そのためWifiで接続する方法に切り替えました。

家のWifiが弱い

接続がとても遅いのか、ドアに遮蔽されているのか、私の自宅はwifiがヨワヨワで非常にストレスでした。
画像の転送ができない理由がWifiが弱いからなのかと疑ってPINの番号指定が違うことに気づくのが遅れました。

さいごに

素材のお買い物の話で、素通りでいい話です。

自作用のe-paperはwaveshareから通販で買うことにしました。
国内で高解像度のものは流通していなかったから

7.5inch HD e-Paper HAT (B)
https://www.waveshare.com/7.5inch-hd-e-paper-hat-b.htm

ラズパイのHATだなあと注文した後で気づいて(適当)
waveshareのe-paper部分はgood displayから仕入れている、とどこかで見知って
ESP32だけならこっちにすればよかったと思いもしました。
ラズパイでも使えばいいかと。
http://www.good-display.com/products_detail/productId=535.html

届くのに時間がかかるのは承知なので、理解のための実装の材料は全部せんごくで揃えました。
https://www.sengoku.co.jp/index.php

デイリーポータルの方はキットを売り出すそうなので、材料を揃えるならそっちもオススメです。

https://twitter.com/tokyo_ff/status/1272905514368860162

参考サイト

全体的な流れ

https://macsbug.wordpress.com/2017/09/07/e-paper-with-esp32/
https://asukiaaa.blogspot.com/2019/01/esp32154epaper.html

サンプルコードについて理解する

ここにPINの番号を書き換える記述があったのに見逃してはまってしまいました
https://garretlab.web.fc2.com/arduino/lab/epd/

マニュアルとサンプルコード

Universal e-Paper Raw Panel Driver Board, ESP32 WiFi / Bluetooth Wireless
https://www.waveshare.com/wiki/E-Paper_ESP32_Driver_Board#Documentation

2.9inch e-Paper Module (B)
https://www.waveshare.com/wiki/File:E-Paper_ESP32_Driver_Board_Code.7z

e-paperだけのサンプルコード
https://github.com/ZinggJM/GxEPD/tree/master