どうも、CHASUKEです。
我が家の電力量計がスマートメーターに取り替わって、かれこれ3年が経過した。
古の取替レポート記事はこちら
通信機能を備えるスマートメーターは、家で使った電力使用量を取得して電力会社に飛ばす身近なIoTデバイスです。この通信ルートはAルートと呼ばれる。
実は、スマートメーターが取得した電力量は、専用の通信機器を使って取ることができる。これをBルートと呼ぶ。
今回、そのBルートを利用して家庭のリアルタイムな電気使用量を取得してみたので、僕がやったことを残そうと思います。
▼最終的にはこんな風に表示できます。

リアルタイムに更新されて面白い

M5Stickで電力量を取得してみた理由

M5StickCを使ってみることに
今回、ESP32搭載のM5StickCを利用しました。というのも、こちらもイジろうと思って買ってあったものの、今に至ったモノ。
ESP32とは、WiFiとBluetoothを搭載した小型端末のこと
そんなこんなで「M5StickCを使って、スマートメーターのデータが取れたら最高だよなぁ」とか思ってたんです。
そんなときに見つけたのが、3Dプリンタで便利アイテムを作っておられる「@norifumi5001」さんの下記ページ。

スマートメーター情報を取得する方法は沢山あるが、今回はこのマニュアルに沿って、M5StickCのディスプレイにリアルタイムな電力量を表示するところまでやってみました。
途中つまづきながらも成功したので、やったことを書いていきます。細かいところはマニュアル参照で!!
スマートメーターの情報取得に必要なモノ

まずは必要な道具を揃える
準備したモノ
- M5StickC
- Wi-SUNモジュール(BP35A1)
- M5StickC用Wi-SUN HAT キット
- ひっつき虫(ソフト粘着剤)
- Bルート利用のID・パスワード

M5StickC
こちらがM5StickCです。
プログラムをインストールして、処理・ディスプレイ表示できるIoT開発ボードです。バッテリーもわずか(80mAh)だが搭載。
▼Amazonで2,400円弱で購入しました。

Wi-SUNモジュール(BP35A1)
これはWi-SUN通信するためのモジュールです。
スマートメーターの通信規格は、よくあるWi-FiやBluetoothではなく、Wi-SUNと呼ばれる規格が採用されています。
▼Wi-SUN規格は、Wi-FiやBluetoothと比べて下記の特徴を持つ。
- 特定小電力無線(920MHz帯)を使うため電波干渉が少ない
- 通信距離が長い
- 障害物に強い
- 消費電力も低い

価格は8,000円。高価なモジュールです。
こちらのWi-SUNモジュールは、アールエスコンポーネンツサイトにて「ロームWLANモジュール」という製品名で販売されてます。
いきなり基盤が出てきたのでビビったかもですが、半田付けなどは一切不要。次で紹介するWi-SUN HAT内に格納するだけで使えます。
メモ
アールエスコンポーネンツでは、他のIoT工作に使える温度センサ・湿度センサなどの部品も幅広く揃っています。
M5StickC用Wi-SUN HAT キット
こちらがM5StickCでWi-SUN通信ができるように機能拡張するためのHAT(Hardware Attached on Top)です。M5StickCだけでは、Wi-SUN通信は出来ません。
こちらの部品は、マニュアルを公開している「@norifumi5001」さんがBOOTH(創作物の総合マーケット)にて販売しています。先に紹介したWi-SUNモジュールを半田付けせずに接続できる素晴らしいキットです。
▼送料込みで2,000円弱。
BOOTH | M5StickC用「Wi-SUN HAT」キット

ひっつき虫(ソフト粘着剤)
マニュアル内で推奨されていたソフト粘着剤。
粘着性のある粘土みたいなもので、指先でグニュグニュして接続箇所にペタッと貼り付けて使います。
これをM5StickCとWi-SUN HATのPIN接続箇所、M5StickCを様々な場所に取り付ける際に使えます。
変形しやすく剥がしやすいので、他にも使い道がたくさん有りそうなアイテムです。
▼300円ほどで購入できます。
Bルートサービスの認証ID・パスワード
最後は購入ではなく、電力会社への申請になります。
実は、スマートメーターにBルートでアクセスするには、IDとパスワードが必要です。

マニュアルに各電力会社向けの申請方法が載っていたので、参考になると思います。ちなみに、僕は3年前のスマートメーターを取り付けて申請済みだったので、アカウントは持ってました。
当時は紙ベースで申請してアカウントが書かれたハガキが送られてきました。無料ですが、何日かかかるので、早めに申請しておくのがオススメです。

トータル費用は12,700円
開発に必要なパソコンやWi-Fi環境は揃っている前提ですが、トータルで12,700円ほどかかりました。
Wi-SUNモジュールが高価で1万円を超えてしまうが、すでにM5StickCを持っているなら、ギリギリ1万円を切ります。
他の手法よりは安く、マニュアル類が揃って敷居が低く感じた。また、M5StickCを常時起動させておくのも楽だし、カスタマイズしやすいのもメリットだと感じます。迷っている方にはおすすめです。
M5StickCで電力量をディスプレイ表示する

完成形はこちら
さて、いよいよ実装していきます。基本的にマニュアルページの通りにやってます。詳細はマニュアル参照で。
実装の流れはこんな感じ
- Wi-SUN HATの組み立て
- M5StickCにファームウェア書き込み
- M5StickCにプログラムを転送
- 再起動&電気量の表示確認
すんなり行けば1時間。
僕の場合、M5StickCが初めてだったのもあり2,3時間ほどかかりました。
Wi-SUN HATの組み立て
BOOTHで購入したWi-SUN HATキットですが、ネジを外してバラすと上記のようになります。ちなみに、上記以外にスペーサー(小さい部品)も同封されているので失くさないように。

▼青の基盤と、緑のWi-SUNモジュールを接続します。
接続は白色のオスメス部品を合わせるだけ。
▼結構な精密パーツなので、真上から慎重に押し込みます。
「ざくっ」という感触で接続できた。
▼モジュール間にスペーサーを差し込み、ネジを仮挿しして置きます。
高いモジュールなので、ミスがこわいw
▼Wi-SUN HATに載せて、スペーサーがズレないようにそっとネジを抜く。
ぴったりサイズでした。
▼あとは蓋をして、隙間がないことを確認したら、ネジ締めして完了。
とても簡単でした。
あとは接続して無事にデータが取得出来ることを願うだけ。次のM5StickCの設定が終わるまで置いておきます。
なお故障の原因になるのでHATの付け外しは、M5StickCを電源OFFしてからやりましょう。
M5StickCのファームウェア書き込み
開封したばかりのM5StickCをPC接続してファームウェアを書き込みます。

書き込みは「M5Burner」という無料ソフトをPCにインストールし、実施します。
▼下記の手順に従いました。

▼今回、書き込むファームは動作実績のある「UIFlow-v1.4.1-beta」を選んでます。
これをダウンロードして、「Burn」します。
そうすると、エラーになった。
「A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header」とある。
調べてみると、どうもM5StickCがPC側で上手く認識出来てないみたい。
▼「デバイスマネージャー」は、こんな表示になっていた。
[ほかのデバイス]-[M5Stack Intf]と表示されてました。
この場合、自分でドライバーをダウンロードしてきて更新しなければ使えません。
▼ドライバーの場所はこちら。
▼これを解凍したフォルダを指定し、ドライバー更新すると、、
僕の環境の場合、ポートに「COM3」が表示されましたー!
▼これでファームウェアの書込みが出来た。

ファーム ウェアの書込みが終わると、こんな画面になる。
表示されるSSIDにスマホで接続して、ブラウザで「192.168.4.1」でWiFi設定が出来ました。
M5StickCにプログラムを転送
再度マニュアル通りに、プログラムの転送を行っていきます。
手順通りに、Visual Studio Codeを使って、M5StickC内にプログラムをアップロードしました。(※今回、子機の設定はしてません)
▼ちなみにM5StickCのボタンは3つある。
最低限、操作は以下の通り。
電源ボタンを6秒間長押しすると、電源OFFされます。USBモードへの切り替えは、電源ONにして画面がついたら決定ボタンを1回押して、選択ボタンで設定画面やアプリ起動画面に行くことができます。ちなみに、電源ONにして何もしないとアプリが立ち上がる仕様です。
GitHubのREADME.mdにある通りに、M5StickCにファイルを転送して、いざ実行!!
アプリ起動モードから実行すると、、
なんか出た!! ERR!!!!
設定ファイル「wisun_set_m.txt」が間違っているようだ。
ソースを解析してみると、認証IDの仕切り文字「ハイフン」が不要なのがわかった。
修正して再起動!!
再起動&電気量の表示確認

ソフト粘着剤でガッチリ固定できた
ジャーン!!
今度は無事に成功です。
この時は、エアコンもレンジもドライヤーも使ってないので、312Wと表示されています。
ディスプレイは3秒ごとに更新されるので、ほぼほぼリアルタイムに電力使用量が確認できます。

▼例えば、ドライヤーを「中」で使うと、、
732Wとギュンと上がる。
▼ドライヤーを「強」にすると、、、

ひっつき虫があれば、どこでも簡単に付けれて便利
1124Wとギュイーンと上がった。
ちなみに、エアコンも試したけど最初ギュイーンと上がっていき、しばらくすると落ち着いた。家電ごとに「これ電気食うんだ」「こんな電気動きするんだ」とか新たな発見ばかりで全然飽きない。

最後に(まとめ)
無料のIoTデータ可視化サービス「Ambient」を使って、2つのグラフも簡単に作れました。


30秒単位にプロットしたグラフと利用量積算グラフです。
ちなみに愛知県で中部電力から電気を買っていれば、カテエネサービスが利用でき、会員画面で電気使用量が確認できる。
今回はサンプルプログラムをそのまま使わせてもらいましたが、少しイジればカテエネで見えるような1時間おきの積算表示グラフは作れると思う。M5StickCの勉強がてらやってみようと思う。
「スマートメーター × M5StickC」はどちらも興味のある内容だったので、本当にクリエイター様には感謝です。
それではまた。