読者です 読者をやめる 読者になる 読者になる

メモ書きブログ

日々調べたことや興味あることをメモのごとく、淡々と書くだけの気晴らしブログです

スマートメーターとRaspberry Piで電力計を作った

スマートメーター Raspberry Pi

はじめに

直近のブログで何回か紹介してきましたが、自宅の電力メーターがスマートメーターになったので、Raspberry PiとWi-SUNモジュールを使って自宅全体で使用しているで電力量がどのくらいなのか、リアルタイムに表示する電力計を作りました。

これまでの準備や、実験の様子は次の通りです。

完成品

読んでいただいて期待外れだといけないので、完成品から紹介します。

リアルタイムに約3秒おきくらいで瞬間電力計測値を更新しています。

f:id:chapp_net:20150823103332j:plain

 

ソフトウェア

githubに公開しました。

(かなりやっつけで書いています。見にくくてごめんなさい。)

github.com

 

何か所か、環境に合わせて変更が必要です。

ECHONET Lite Liteの設定箇所

  • Wi-SUNモジュールのデバイスファイル名

/dev/ttyUSB0ではない場合は、SERIAL_DEVICEの値を変更してください。

BルートサービスのパスワードをSM_PWDに設定してください。

Bルートサービスの認証IDをSM_RBIDに設定してください。

 

7セグのGPIO設定

  • 7セグのLED設定

SEG_A~SEG_Gまでが、7セグ部分です。一番上から時計回りにAからFで、Gが真ん中です。

SEG_Hがドットになりますが、今回は特に未使用です。

  • 桁制御の設定

ダイナミック表示していますので、SEG_1からSEG_4で表示する桁を制御しています。

SEG_1が一番右(1の位)、SEG_2が10の位、SEG_3が100の位、SEG_4が1000の位です。

 

そのほか、githubのREADMEにも若干説明を書いておきました。

参考にしていただければと思います。

Raspberry PiとWi-SUNモジュールでスマートメーターから情報取得

スマートメーター

今回は、前回の「スマートメーターと通信するための機器について」で紹介したWi-SUNモジュールを、Raspberry Piに接続し、スマートメーターから情報取得してみます。

 

Wi-SUNモジュールとRaspberry Piの接続

Wi-SUNモジュールは、USB接続にてRaspberry Piと繋ぎます。

(Wi-SUNモジュールの電源もUSBからとれるので、ケーブル1本でOK)

あらかじめ、Wi-SUNモジュール(厳密にはマザーボードのBP359C)の ディップスイッチやジャンパーピンを適切に、通信:USB、電源:USBとなるように設定してください。

 

今回使用するRaspberry Piは、余っていたRaspberry Pi 1 B modelになります。

OS(Raspbian)は次の通りです。

Linux raspberrypi 3.18.11+ #781 PREEMPT Tue Apr 21 18:02:18 BST 2015 armv6l 

 

あらかじめWi-SUNモジュールのUSBを接続してからRaspberry Piの電源を投入した方が良いようです。

(電源不足なのか、USB接続時のOSがリブートしてしまうことがありました…)

 

Raspberry Piから接続確認

OSが起動したら、下記コマンドで認識されているか確認します。

 $ dmesg | grep ttyUSB
[ 7.343848] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB0    ←ttyUSB0で認識されています

$ ls -l /dev/ttyUSB0
crw-rw---T 1 root dialout 188, 0 8月 20 00:59 /dev/ttyUSB0

 

シリアルコンソール(minicom)のインストール

Wi-SUNモジュールとシリアル通信するためminicomを使用したいと思います。

インストールされていない場合は、apt-getでインストールしてください。

 $ sudo apt-get install minicom

 

Wi-SUNモジュールの動作確認と出力設定変更

ここでWi-SUNモジュールと正しく通信できているか確認したいと思います。

minicomコマンドで接続し、SKVERとSKINFOを打ってみます。

$ minicom -D /dev/ttyUSB0 -b 115200

SKVER
EVER 1.2.10
OK
SKINFO
EINFO FE80:0000:0000:0000:021D:1290:xxxx:xxxx 001D1290xxxxxxx 22 7490 FFFE   ←一部(IPv6アドレス、MACアドレス)はxxxxで伏せています
OK

EVERやEINFOが帰ってくれば成功です。

ついでに、デバッグしやすいようWi-SUNモジュールの出力設定を変更しておきます。

WOPT 1
OK

WOPT 1で、スマートメーターから受信したバイナリデータが16進ASCII文字で表示されます。

minicomを終了するときは、Ctrl-aを押した後、zを押して、xを押して、Enterです。

 

ECHONET Liteコマンドの作成

もう一つ準備があります。

スマートメーターから情報取得するためのコマンド(ECHONET Lite)がバイナリデータのため、あらかじめファイルとして作成しておきます。

今回は、スマートメーターから瞬時電力計測値(W)[EPC:0xE7]を取得するためのコマンドを作成します。

 $ echo -ne '\x10\x81\x00\x01\x05\xFF\x01\x02\x88\x01\x62\x01\xE7\x00' > getE7.dat
$ ls -l getE7.dat
-rw-r--r-- 1 pi pi 14 8月 20 00:36 getE7.dat ←ファイルサイズが14バイトであること

 

いよいよスマートメーターから情報取得

スマートメーターに接続して、情報取得してみます。

$ minicom -D /dev/ttyUSB0 -b 115200

minicomファイル転送プロトコル設定

ここまでは、先ほどと同じですが、次にminicomのファイル転送プロトコルを設定します。

Ctrl-aを押した後、zを押して、oを押して、[設定]画面に入ってください。

[設定]の”ファイル転送プロトコル”を選択してください。

Jの設定が空いていましたので、jキーを押して、Jを次の通りに設定します。

  • 名前:rawfile ←あとでこの名称を選択するので覚えといてください
  • プログラム:/bin/cat
  • NAME:Y
  • U/D:U
  • 全画面:N
  • IO-Red.:Y
  • 複数:N

ESCキーを2回押して、minicom起動直後の画面まで戻ります。

スマートメーターと接続

ようやくスマートメーターと接続を開始します。

SKSETPWD C xxxxxxxxxxxx ←Bルートサービスのパスワード
OK
SKSETRBID xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ←Bルートサービスの認証ID
OK
SKSCAN 2 FFFFFFFF 6 ←スマートメータを探します
OK
EVENT 20 FE80:0000:0000:0000:021D:1290:0003:C7B2
EPANDESC  ←スマートメータが見つかりました
Channel:31
Channel Page:09
Pan ID:7999
Addr:001C64000xxxxxxx
LQI:51
PairID:004790AC
EVENT 22 FE80:0000:0000:0000:021D:1290:0003:C7B2
SKSREG S2 31 ←上のChannelの値(31)を入れます
OK
SKSREG S3 7999 ←上のPan IDの値(7999)を入れます
OK

SKLL64 001C64000xxxxxxx ←上のAddrの値を入れます
FE80:0000:0000:0000:021C:6400:0xxx:xxxx ←IPv6アドレスが返ってきます

SKJOIN FE80:0000:0000:0000:021C:6400:0xxx:xxxx ←上のIPv6アドレス
OK

EVENT 21 FE80:0000:0000:0000:021C:6400:0xxx:xxxxx

~~中略(いろいろ返ってきます)~~

EVENT 25 FE80:0000:0000:0000:021C:6400:0xxx:xxxx ←EVENT 25が返ってくれば接続成功

SKSENDTO 1 FE80:0000:0000:0000:021C:6400:0xxx:xxxx 0E1A 1 000E  ←(1)
EVENT 21 FE80:0000:0000:0000:021C:6400:0xxx:xxxx 00
OK
ERXUDP FE80:0000:0000:0000:021C:6400:0xxx:xxxx FE80:0000:0000:0000:021D:1290:0xxx:xxxx 0E1A 0E1A 001C64000xxxxxxx 1 0012 1081000102880105FF017201E70400000282 ←(2)

SKTERM ←スマートメーターとの接続切断

(1)の入力方法について

SKSENDTO 1 FE80:0000:0000:0000:021C:6400:0xxx:xxxx 0E1A 1 000E ”の最後の000Eの後に半角スペース含めて入力します。

その後、Ctrl-aを押した後、zを押して、sを押してファイルアップロードをします。

先ほど設定追加したした、rawfileを選択します。

getE7.datファイルのところで、スペースキーを押下して、Okeyでファイルアップロードします。

(2)の出力結果について

この出力結果の最後の8文字(4バイト)が、スマートメーターから取得した瞬時電力計測値(W)になります。

16進数表記なので、今回の00000282は、642W(ワット)ということになります。

 

かなり駆け足になりましたが、スマートメーターから情報取得することができました。

 途中で出てきたECHONET Liteの詳細は、次のホームページで公開されています。

エコーネット規格(一般公開版):ECHONET CONSORTIUM

スマートメーターと通信するための機器について

スマートメーター

スマートメーターと通信するためには、920MHz無線のWi-SUNという規格対応した通信モジュールが必要になります。

920MHz帯といえば、アナログテレビ放送で使用していた帯域ですね。

今回は、1つから入手できて、比較的安価なROHMのBP35A1という通信モジュールを使ってみたいと思います。

f:id:chapp_net:20150818224105j:plain

実際は、こんな感じで3つのパーツが必要になります。

あと、BP35A7-accessoriesという、ネジとスペーサーのセットも合わせて用意してください。

いつもお世話になっている、RSコンポーネンツさんで購入しました。(4点セットで15,000円ほど)

一部、組立にはんだ付けが必要です。

 

また、ROHMではUSBドングル「WSR35A1-00」も出していますので、小ささ重視&はんだ不要希望ならこちらの方が良いかも。値段は同じくらいです。

 

USB接続、UART(シリアル通信)でこの通信モジュールとやり取りができます。

次回は、Raspberry Piにこの通信モジュールを接続して、動作確認をします。

電力メーター情報発信サービス(Bルートサービス)に申し込んだ

スマートメーター

以前、「スマートメーターがやってきた」で書いた通り、家の電力計がスマートメーターになったので、電力メーター情報発信サービスに申し込んでみました。

 

電力メーター情報発信サービスは、簡単に言うと、スマートメーターと通信して、現在の電力計測値や積算の電力量などを取得したりできるサービスです。

詳細は下記より。

電力メーター情報発信サービス(Bルートサービス)について|東京電力

 

スマートメーターが未設置の家庭でも、「申し込みから2~3週間で~」と書いてあったので、すでに設置済みの我が家では、もう少し早いと期待していましたが、きっちり21日かかりました。

こんな感じで、スマートメーターと通信するための認証IDやパスワードが届きます。

f:id:chapp_net:20150818222433j:plain

次回は、スマートメーターと通信するための機器について紹介します。

vsftpdでファイルの書き込みができない

よく見ればわかったはずだけど、ちょっとだけハマったのでメモを残します。

vsftpdではデフォルトで書き込みができない…

550 Permission denied.

/etc/vsftpd/vsftpd.confのwrite_enableのコメントを外す!

# Uncomment this to enable any form of FTP write command.
#write_enable=YES 

 それだけ。

スマートメーターがやってきた

スマートメーター

もう数か月前になりますが、自宅の電力メーターがスマートメータになりました。

特に注文したわけでもなく、東京電力の交換タイミングがやってきたようです。

電力メータ交換の手紙がポストに入っていて、自宅に訪問することなく、不在の間に交換が完了しました。停電もしないなんてすごいですね。

 

取り付けられたメータを見ると、次のメータであることが判明。

スマートメーター 製品特長 電力管理用計器 | 三菱電機 FA

ちいさな液晶表示には、計量指示値や電力量(kWh)などが表示されていて、数秒で切り替わり表示されています。

 

なにやらこのスマートメータは、30分ごとの電力量を東京電力に送信しているらしく、次のサービスで30分ごとの電力量を確認できます。

でんき家計簿 ログイン

登録が必要ですが、無料です。こんな感じで表示されます。

 

f:id:chapp_net:20150718221016p:plain

これから冷房の季節なのに、省エネ意識がちょっとだけ高まる気がします。