TWELITE + e-Paper でスマート表札を作ってみた。

一年ちょっと前に衝動買いしたe-Paper。使い道に困った挙句、我が家の表札として使うことに。

Good-display の e-Paper (GDEY075Z08) を使ってみた。

Windowsのペイントアプリなどで作ったモノクロビットマップを転送するだけで表示内容を変更できる。表示内容の更新はTWELITEの無線経由で行い待機電流は0.7uA程度。(CPU単体では0.6uA)

本体は単四二本駆動にしてみたが e-Paperは表示内容を変更するときだけ電力が必要で電源が無くても半永久的に表示内容を保持できるため普段は電源を切っておくことも可能だ。

今回使用した e-Paperは3色使えるが赤は専用のビットマップを別途用意する必要があり少し手間がかかる。フォントについては様々な字体が最初から用意されている英字を使うのがお勧めかもしれない。

メーカー純正のケースは防水ではないためどうやって防水するか暫し悩んだが純正ケース全体をさらに覆うような防水ケースを3Dプリンターで別途作成しアクリル板で表示部を保護してみた。3Dプリンターで作ったものは水がしみるため念のために防水スプレーもかけてみた。

ちなみに我が家の表札には直射日光は当たらないが e-Paperは日光により劣化するような記載があったりして屋外用の製品ではないことは確かなので耐久性が気になるところだ。

【防水ケースに組み込んだ写真(表示内容はサンプル)】

【純正ケース(内部は7ミリしか隙間がない)】

【回路図】
クリエイティブ・コモンズを名乗るほどの回路ではないがお決まりということで一応...(笑)

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 – 継承 4.0 国際 ライセンスの下に提供されています。

画像イメージが48Kbもあるため処理時間短縮のためにも可能な限り高速転送したいところだがe-Parerのデータシートを見る限りSPIの最大クロックは4MHzらしい。が、試しにと8MHzで動作させてみたところ問題なさそうなのでSPIクロックは8MHzにしてあるが何か問題があったら4MHzに落とせばOKだ。

ちなみに最初は全く動作しなくてハマッてしまったが調べてみるとRESET制御用に割り当てたDIO9をLOWにするとなぜか発振したような信号が不定期に出力されてしまい誤動作してしまうという問題だったのでRESET制御はDIO10に変更し使っている。この件だが、後日おかしな症状が多々確認されたためCPUを交換してみたら問題なくなった。在庫の未使用品を使ったのだが所謂不良CPUだったようだ。宝くじには当たらないがこういうのにはよく当たる。なぜ? (笑)

【システム】
システムはディスプレーモジュール(TWELITE+e-Paper)と画像管理サーバー(MONOSTICK+Raspberry Pi)の2つのプログラムで構成されていて、ディスプレーモジュールは1日に一回の頻度で画像更新があるかどうかを画像管理サーバーに問い合わせする。画像管理サーバーは更新された画像ファイルがあればディスプレーモジュールへ画像データを送信する仕様となっている。ディスプレーモジュールの起動時に更新チェックを行うためディスプレーモジュールの電源オフオンにより直ぐに画像を更新させることもできる。

今後の改良点として、カラービットマップから白黒プレーンと赤プレーン用のビットマップを自動生成する機能があったりすると便利かもとは思っているが最近では8色のe-Paperもあるようなのでカラー対応は今後の様子を見ながら考えていったほうが良いかもしれない。

【ダウンロード】
ディスプレーモジュール (TWELITE-DIP) (eclipse)
画像管理サーバー通信モジュール (MONOSTICK) (eclipse)
画像管理サーバーアプリ (make)

※PANID/CHANNEL/SECURITY-KEYは適宜変更すること!

その他、購入したのは下記の通り。

e-Paper ディスプレイモジュール用アダプタ基板 [DESPI-C02]

7.5 inch enlosure for electronic shelf label shell case(single screen) EW075F12

電池ボックス 単4×2本 リード線・フタ・スイッチ付

アクリル板は加工もOKなここがお勧め。

はざいや

【修正】
2023-03-19
ときどきCPUが起動しなくなるのでおかしいな?と思って調べてみたらDO1を接続していたのがまずかったようだ。それとSPIのMISO(DO1)とMOSI(DIO18)が勘違いで逆になっていたので回路を修正。SPIのリードは必要ないのでMISO(DO1)の接続をカットした。あとTWELITEのウェイクタイマー精度が良くなくて更新確認するタイミングが不明なためタイマー誤差補正処理を追加し指定の時刻に更新確認できるようにしてみた。
ちなみに電源を入れ直しても再起動しないので調べてみるとTWELITEの待機消費電流が少なすぎて電源を切っても電源回路のコンデンサの残留電力だけで1分近くも動作してしまうようだ。リセットボタン付けとけばよかったかも...(-_-;)
ということで電源オフしたときにCPU回路側をショートして残留電力を除去できるよう電池ボックス内の配線を改造してみた。これで1分待たなくても済むようになるぞ。(^o^)

1日一回一瞬しか動作させてないので電池が全く減らない。もし画像更新時の電力が賄えるようならボタン電池のほうがいいかも...

PS.
ウェイクタイマーの誤差を調べてみたら最大で2分程度はあるようだが誤差補正のおかげで毎日ほぼ指定時刻に再起動している。気温とか湿度など気候的な影響なのか長い期間で見ると誤差が大きく揺らいでいるように見える。参考まで。