VIVITABLOG

VIVITAで活躍するメンバーの情報発信サイト

消費電力可視化ガジェットをつくってみた

f:id:haru2036:20200704142523j:plain

お手軽ハックでリモートを快適に

こんにちは、VIVITAでAndroidアプリエンジニアをしている中島です。 入社早々諸々の事情によりいきなりリモートになってしまったので、一度もオフィスに出社することなく今まで来てしまいました…… リモートにはリモートの良さがあるなあと感じつつも、主にコミュニケーション面で工夫が必要だなあと感じているこの頃です。

さて、コミュニケーション以外にもリモートの課題になりそうなものといえば、自宅の電力消費が増えることですよね。 私は最近Nature Remo E Liteという電力メーターと通信して消費電力量を取得できるデバイスを購入して使っています。 瞬間的に家全体の電力使用量を知ることができるという今までにない利点がある一方、スマホアプリをわざわざ立ち上げないと見れないという弱点があったため、最初は頻繁に確認していたものの、だんだん見なくなってきてしまいました…… そこで、スマホ以外にも常時どこかに表示できていれば楽しく消費電力を知ることができるのではないかと思い、Raspberry Pi Zero Wと電子ペーパーを用いて表示用のデバイスを自作してみました。

公式アプリの画面。わかりやすい反面、そもそもアプリを立ち上げるのを面倒くさがってしまうという問題が……

ハードウェア

今回使った電子ペーパーモジュールはInky pHATという製品で、Raspberry Pi Zeroに最適なサイズやピン配置になっています。 これのおかげで、ハードウェア的にはRaspberry Pi Zero WH にInky pHATを取り付けるだけで完成してしまいました。なんとお手軽。 一応なんとなく自宅の激安3Dプリンタでプリントしたケースに収めて、コンパクトなキーホルダー的ガジェットとしました。

f:id:haru2036:20200710150253j:plain
Raspberry Pi Zero Wに電子ペーパーモジュールをがっちゃんこするだけ。電子ペーパーなので電源が切れても画面は消えません

ソフトウェア

今回は全体をPythonで記述してみました。必要なライブラリが全て揃っていてとてもお手軽に使えました。

まず、自宅の消費電力を取得する方法です。こちらもお手軽に取得できてしまいます! Nature Remo E Liteの発売元であるNature社の公開API(くわしくは https://developer.nature.global/ )を叩くだけで、その時点の電力使用量に関する情報がJSONで取得できるため、あとはその中から必要な情報(今回は瞬時値)を取り出すだけです。

画像の生成にはPythonでよく使われているPillow(PIL)を利用しています。 Inky pHATとの連携も、Inky公式ライブラリのサポートが充実しており、PythonからPillowの画像オブジェクトをライブラリの提供するメソッドに渡すだけで画面の表示ができてしまいました。

このような方法で画面の更新を90秒ごとに行って、ぱっと見で直近の消費電力を確認できるようにしました。 あとは今回書いたスクリプトをsystemdのServiceとして設定し、Raspberry Piの起動時に立ち上がるようにしたので、電源を繋げばあとは何もしなくても画面が更新されるようになっています。

まとめ

今回はハードウェアからソフトウェアまで、いろいろなモジュールとしてパッケージされているものを組み合わせることによって、自分の生活をちょっと便利にするスキマデバイスを作ってみました。 じぶんで想像していたよりも更にかんたんに作ることができ、その結果ちょっとした不満を解消できたので、とても満足しています。 お手軽にできるので、みなさんも日常の隙間を埋めるデバイスづくりに挑戦してみるのはいかがでしょうか!

おまけ:使ったものリスト

Nature Remo E Lite(使用するには電力会社のBルートサービスに申し込む必要があります) nature.global

Raspberry Pi Zero WHとそれに必要なmicroSDカードなど www.raspberrypi.org

Inky pHAT 電子ペーパーモジュール Inky pHAT (ePaper/eInk/EPD)shop.pimoroni.com

Raspberry Pi OS(Raspbian) www.raspberrypi.org