LoginSignup
7
5

More than 3 years have passed since last update.

M5StickCでスマートメーターの電力を読み取る(BP35C0-J11-T01編)

Posted at

概要

M5StickCで家庭用スマートメーターをハックする! をBP35C0-J11-T01でやってみました。

BP35C0-J11-T01について

BP35C0-J11-T01というのはローム社のBルート/Enhanced HAN対応無線モジュールBP35C0-J11を2.54mmピッチの基板に差せるようにしたものです。(シリーズ内のBP35C1-J11-T01はBP35A1と同じコネクタ?)
インターネット上の記事でよく使われるBP35A1と比較したBP35C0-J11の特徴は以下の通りです。

  • Wi-SUN Enhanced HAN通信に対応
  • コマンド送受信がJ11-UART規格のバイナリ(BP35A1はSKSTACK-IP用SKコマンド、テキストベース)

コマンド体系が変わることで大部分書き換える必要があったので公開してみました。

用意したもの

  • BP35C0-J11-T01
  • 外付けアンテナ
  • M5StickC
  • ブレッドボード

BP35C0-J11はアンテナ外付けが必要ですが、特定小電力無線なのでBP35C0-J11との組み合わせで技適対応が確認されたものを使用する必要があります。(対応製品のリストはここに掲載されています

結線

M5StickCとBP35C0-J11-T01を以下のように結線します。なおブレッドボードに直接差そうとするとCN3が邪魔なのでCN3のピンヘッダを外すか、ピンソケットで下駄をはかせる必要があります。

M5StickC BP35C0-J11-T01
GND CN1-1 or 9(GND)
3V3 CN1-4 or 5(VCC)
G36 CN2-5(TXD)
G26 CN2-7(RESET)
G0 CN2-4(RXD)

ブレッドボードでの実装例 M5StickCとBP35C0-J11-T01を載せるとこんな感じ

プログラム

ソースはgithubに置いています。

元のプログラムの手順のうちtest_WiSUN_Ambient.pyの代わりにtest_WiSUN_Ambient_J11.pyをアップロードします。
ESPNOW関連のコードは互換性があるのでモニター子機は元のプログラムのものがそのまま使えます。

考慮すべき点

  • 応答が可変長バイナリなのでreadlineが使えない
  • コマンド送信時にチェックサムを付与する必要がある
  • readで読み取った内容に応答1文が完全に含まれているとは限らない、逆に2文以上の応答を受信しているかもしれない
  • 数日動かしているとPANA再認証の通信に失敗し、スマートメーターと通信できなくなることがある → 自動再起動で対処
7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5