Hatena::ブログ(Diary)

Okiraku Programming RSSフィード Twitter

2016-01-17 スマートメーターの瞬時電力や履歴をWebブラウザで見る

スマートメーターの瞬時電力や履歴をWebブラウザで見る

前の記事の続き。

スマートメーターからリアルタイムに消費電力を取得する - Okiraku Programming


前回の記事ではArduinoで電力を取れるようにしたわけですが、ログを取って統計処理したり、Webリアルタイムに見れるようにしようとすると、やっぱりLinuxの方が便利なので、Linuxマシン(今回はPCduino3を使いましたが、RaspberryPiでも全く同様にできるはず)に移植しました。


前回の記事スケッチ移植・改造した電力取得・ログ記録プログラム(C++) → WebSocketサーバ(Node.js) → ブラウザ上で動的にグラフ描画(Highcharts) という構成です。こんな感じのメーターがリアルタイム(5秒ごとくらい)にピコピコ動きます。

f:id:NeoCat:20160117175159p:image

履歴も秒オーダー/分オーダー/時〜日オーダーで変化が見れたりします。

f:id:NeoCat:20160117175158p:image:w480


PCduino3に接続

接続は、電源(3.3V, GND)とUART(これも3.3Vレベル)ピンの計4本をBP35A1に繋ぎます。誤って5Vに繋ぐとBP35A1が壊れると思われますので注意。

f:id:NeoCat:20160117181701j:image:w360

ソース

https://gist.github.com/NeoCat/73f8ed86db468dd005a2

実行

## smart_meter.cpp内にID、パスワードを設定
% g++ -Os smart_meter.cpp -o smart_meter -pthread
## ttyS1(シリアル)を有効化
% sudo sh -c 'echo 3 > /sys/devices/virtual/misc/gpio/mode/gpio0'
% sudo sh -c 'echo 3 > /sys/devices/virtual/misc/gpio/mode/gpio1'
% ./smart_meter &
## https://nodejs.org/en/download/ から node.js 4.2.4 ARMv7 バイナリをダウンロードして/usr/local/以下にインストール。
% npm install websocket.io
% node power_ws.js &

あとはpower.htmlIPアドレス指定して、Webブラウザで開けばOKです。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。