ESP32とe-inkディスプレイで作る株価表示デバイス、市販品10台分の機能を約70ドルで実現

FabScene(ファブシーン)

パートナーが市販の株価表示デバイスを欲しがっていたが、1銘柄あたり約80ドルもする。10銘柄以上を追跡したいとなると800ドル以上の出費になる。そこでESP32とe-inkディスプレイを組み合わせて自作したところ、約70ドルで同等以上の機能を実現できた。Redditユーザーのkakosut91氏が公開したプロジェクトだ。

ハードウェアはESP32-WROOM-32(約12ドル)とWaveshare 4.2インチe-Paperモジュール Rev 2.2(約37ドル)の2点が中心。筐体はPrintablesで公開されている血糖値モニター用のSTLファイルを流用し、3Dプリントサービスで印刷と送料込み15ドルで入手した。

このデバイスは2ページ構成で、60秒ごとに表示を切り替える。1ページ目には主要な株式銘柄、2ページ目には追加の銘柄とBitcoin、Ethereumの価格を表示する。各銘柄はティッカーシンボル、現在価格、前日比(ドルとパーセント)、上昇/下落を示す矢印アイコンで構成されている。米国市場の開場/閉場ステータスも表示し、太平洋時間と東部時間の両方を確認できる。

e-inkディスプレイの特性を活かした工夫もある。ページ切り替え時にはパーシャルリフレッシュを使用して画面のちらつきを抑え、15分ごとのデータ更新時にはフルリフレッシュを実行してゴースト(残像)を解消する。常時更新するのではなく、デスクで一目で確認できる省電力な表示デバイスを目指した設計だ。

ソフトウェアはArduino IDEで開発し、GxEPD2ライブラリでディスプレイを制御する。株価データはAlpha Vantage APIから取得するが、無料プランでは1日25リクエストの制限があるため、頻繁な更新には別途Cloudflare WorkerとTwelve Data、Binance APIを組み合わせる方法もドキュメントに記載されている。

配線はSPI接続で8本。注意点として、e-inkディスプレイの消費電流が15〜40mAに達するため、電源はESP32の3.3V端子ではなく5V端子から供給する必要がある。また、Waveshare 4.2インチe-Paperモジュールには複数のリビジョンがあり、このプロジェクトではRev 2.2用のドライバ(GxEPD2_420_GDEY042T81)を使用している。Rev 2.1では動作しない。

ソースコードはGitHubでMITライセンスのもと公開されており、Wi-Fi設定、APIキー、追跡したい銘柄のシンボルを書き換えるだけで利用できる。

関連情報

StockTicker(GitHub)

fabsceneの更新情報はXで配信中です

この記事の感想・意見をSNSで共有しよう
  • URLをコピーしました!