自作電子小物/簡易電力量計/7チャネルGUI版
自作電子小物/簡易電力量計/7チャネルGUI版
Wh meter V0.8
2014年1月18日土曜日
一般家庭の分電盤(ブレーカボックス)用の最大7チャネル簡易型デジタル積算電力計・電力量計です。この小さい1台で、複数箇所の電気使用量を同時に計測・記録し、グラフィックディスプレイに一覧表示します。また過去の使用量も、グラフと数値で確認できます。USBメモリを差し込めば電力ロガーに、USB-Bluetoothドングルを差し込めばワイヤレス電力計になってしまいます。製作費は約16000円/6チャネル分、電流センサにカレントトランスを、電圧センサに抵抗器、制御部にSTマイクロテクノロジー社のSTM32F4を使用し、ソフトウエアはC言語にてコーディングしています。
<機能/特徴>
■家の配線を変更せずに取付け出来る
■最大6もしくは7回路分を複数同時に計測
■使用する電流センサ(CT:カレントトランス)の種類は何でもOK!
■電圧計測も可能、測定精度が向上し力率も表示される
■3.1インチ240x320ドットカラーLCD画面の見やすい表示、7チャネル分同時表示
■USBメモリへCSV形式で最小1秒間隔のデータが得られます
■リアルタイムでのデータ出力は無線で、安いBluetooth-USBアダプタを利用し、PCやスマートフォンに表示可能
■汎用部品で安価・製作容易、調整不要
<仕様>
名称:一般家庭向け6〜7チャネル電力量チェッカ
分類:商用電源単相交流100V/200V用多チャネル簡易積算電力量計/皮相電力量計
測定点数: 電流のみの場合最大7カ所 、電圧計測する場合最大6カ所。
測定方法:
被回路の片線にCTを装着。
電圧測定する場合は、専用の「みの虫クリップ」を一カ所取付。
上図は分電盤に取付ける場合で、各系統毎にCTを一つづつ装着します。N側L側のどちらでも構いません。取付方向は有りません。左図が電圧測定しない場合で、右図が電圧測定する場合です。電圧測定する系統は100V系、200V系どちらでも構いません。例の場合、系統ブレーカを切ると他の系統の計測が出来なくなる事に注意して下さい。この図は一般的な家庭用の受電方式「単相3線式」1φ3Wでの取付け箇所の例ですが、単相2線式1φ2Wでも使用可能です。単相200Vも混在可能ですが若干の注意点があります。
CTは開く構造になっているので、既存配線を変更する事無く付加する事が出来ます。
電圧計測をすればより正確な結果を得られます。既存配線の露出部分をクリップで接続すれば、これも配線を変更しなくて済みます。
分電盤だけでなく、テーブルタップから分かれる各回路の測定に使っても良いでしょう。
計測範囲:
電力量:0〜596kWh/チャネル・月間
電力:10W〜3kW(100Vの場合)
電圧:単相交流100〜200V程度、10〜100Hz、計測せず任意電圧固定にする事も可能
電流:単相交流0.1A〜30A
(CTにU_RD社CTL-10-CLS、負荷抵抗100Ωの場合)
半波のみの計測のため、波形が非対称の負荷(例えば半波のみ使用する器具)の場合、正しい計測が出来ません
計測間隔:1秒
数値精度:基本確度-10%〜+10%
表示単位:
電圧:1V単位
電流:0.01A単位
電力:1W単位
電力量:0.1kWh単位
表示項目:表示例は実際の使用状況です。
現在値画面:
「Now」ボタンで表示されます。
左より
チャネル名
Setup画面で設定できます。
例では「WAL」は壁コンセントのつもりで入力したものです。
現電力
電圧センサ無い場合は皮相電力[VA]、ある場合は有効電力[W]
当月使用電力量[kWh]
毎月1日0:00にリセットされます。
小数点2桁目以下は四捨五入です。
棒グラフ
現電力を対数値と色で表示
棒の長さは対数表現されていますので、小電力でも良くピコピコ動く。
フルスケール10kWです。
[W]
0
〜3W
〜10W
〜30W
〜100W
〜300W
〜1kW
〜3kW
〜10kW
以上
色
黒
水色
青緑
緑
ライム
黄色
オレンジ
赤
紫
青
SUMは、合計値を表します。
SUM行は、電圧センサが接続もしくは無接続のチャネルに、それ以上のチャネルの合計が表示されます。
現在値詳細:
タッチしたチャネルの情報が表示されます。
各値は、1秒間隔で変化します。
上から、
当月使用電力量[kWh]
0.1kWh単位四捨五
毎月1日0:00でリセット
当日使用電力量[kWh]
0.1kWh単位四捨五入
毎日0:00でリセット
有効電力[W]
1W単位四捨五入
電圧センサ無い場合には皮相電力と同じ
皮相電力[VA]
以下の計算値です
電圧×電流、1W単位四捨五入
力率[%]
計測値ではなく計算値です
有効電力÷皮相電力×100
電圧[V]
rms値
電流[V]
rms値
周波数[Hz]
電圧センサが無ければ固定値となります。
波形
緑が電流、赤が電圧の変化を表示
縦のスケールはピーク値を100%になるように自動的に変化
横は16ms固定
当日使用電力量グラフ:
「Today」ボタンで表示されます。
1時間毎の電力量を縦棒グラフで表示。
黄色線の右側は前日を表します。
黄色線は現在値を表します。
縦軸は、最大値を0.1kWh単位で自動調整します。
色は時間帯で変わります。
23〜6時 青
7時、22時 ピンク
8〜21時 赤
13〜15時 オレンジ
これは、ある電力会社の料金プランを示しています。
時間帯別の料金プランで契約しているのならば、有利な使い方をしているかどうか判別しやすいと思います。
当日使用電力量数値:
上記グラフの数値を表示
正確な数値を確認したい場合に使用。
0.01kWh単位四捨五入。
当月使用電力量グラフ:
「Month」ボタンで表示されます。
1日毎の電力量を折れ線グラフで表示。
黄色線の右側は前月を表します。
縦軸は、最大値に調整されます。
当日使用電力量数値:
上記グラフの数値を表示
0.1kWh単位四捨五入
当日は後ろに”*”が付きます。
当年使用電力量グラフ:
「Year」ボタンで表示されます。
月毎の電力量を積み上げ棒グラフで表示。
灰色の縦線の右側は前年を表します。
縦軸は、最大値に調整されます。
冬期間のボイラー(boi)が異常に少ないのは、節約の為、電源を切ってお湯を全く使わないようにしていた為です。(12月はボイラーの設定の失敗で、0にできませんでした)
お湯を使わない?あり得ないですね。私の対応は、炊事は冷たくても我慢し、風呂は天童温泉に通っていました。天候が良ければ自転車で行きますが、自動車を使うとガソリン代・車両維持代を考えれば微妙です。
当年使用電力量数値:
上記グラフの数値を表示
0.1kWh単位四捨五入
また、チャネル合計電流が表示電流を越えていた時間を秒単位で表示します。
リセットボタンを押すまで、積算されます。
とにかく最大電流が小さければ小いさいほど基本料が安いので、ブレーカー断を恐れず、かつ面倒さを少なくする最適の契約プランを考える材料に出来ると考えます。
節約に敏感な方ならお解り頂けると思います。
セットアップ画面:
当日詳細画面の「Setup」ボタンで表示されます。
「Sensor type」は、該当チャネルに接続されている測定素子の種類を、プルダウンメニューから選択します。「Current」はCTを、「Voltage」は電圧計測用の抵抗器入りのみの虫クリップを、「None」は未接続の場合に選択します。
「CT Coil turn N」は、CTの巻き線数。
「CT Char K」は、CTの特性値。(通常は1.0)
「CT Load reg. RL」は、負荷抵抗の値をΩ単位で入力。
「Current offset」は、計測電流値に対して固定値での補正を行いたい場合に設定します。
「Volt sensor#」は、対応する電圧センサのチャネルをプルダウンから選択します。電圧センサを使わない場合は「None」を選び、「Fixed voltage」と「Fixed frequency」を入力します。
「Multiply」は、計測された電圧を2倍読みするかどうかを指定します。これは、100V系に取付けた電圧センサを、200Vの系統でもその電圧センサを利用する時に使用します。
CT関係のパラメタは、CTのデータシートを見ながら設定します。
日時設定画面:
画面上部をタッチする事により表示されます。
「Log Interval」は、USBメモリを接続した場合に取得されるログデータの、保存間隔を秒単位で指定します。
1〜3600が指定出来ます。
「EPROM」ボタンを押すと、過去の全データがUSBメモリに書き込まれます。このUSBメモリを、未使用のWHM0.8にセットして電源を入れると、全く同じ環境が再現されます。
データ保持機能:
本体内に、2年3ヶ月分の時間単位の積算電力量を保存
電源が切れた場合、最後の時間の実績は消えます。前時間までの積算値は残ります。
入力操作:
画面全体がタッチパネルになっており、画面の指示により操作する方式。
データ出力機能:
Bluetoothドングルを接続すると、1秒間隔でデータ送信します。
Bluetooth4.0のアトリビュートプロトコルに対応するPC、スマートフォンで受信出来ます。
USBメモリを接続すると、所定の秒数間隔でデータがCSVファイルに書込まれます。
ファイルは1日1ファイルに区切られます。
本体内部に記録されているデータを保存、復帰する機能あり。
外形:
幅81mm、奥行38mm、高さ130mm
重量210g
電源:
USB電源アダプタを使用。
消費電力、約1W
重要:
分電盤内に関わる作業は、それなりの知識が無いと生命に関わる事故や火災になる可能性があります。
電気工事士の資格者が行うようにして下さい。基本的には、資格を持った方が自己責任で行う電子工作だと理解して下さい。
電圧計測する場合、基板は交流電源と絶縁されていません。最終的な使用状態で金属部分が露出しない様にして下さい。また、外部機器への接続機能を付加する場合は、絶縁について慎重に設計して下さい。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
参考
Bluetoothを通じて、データをスマートフォン、PCに転送した時の画面です。
iPhone(iOS)用のビューア
Machintosh(OSX)用のビューア
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ 設計書 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
この小物を再現するのに必要な、設計の結果情報です。
目次
1. 技術的なポイント
1.1 ハードウエア
1.2 ソフトウエア
1.3 開発法
2. 回路図
3. 部品表
4. ソフトウエア
4.1 開発に必要な物
4.2 フローチャート
4.3 ソースコード
5. 実装・外装
5.1 基板
5.2 ケース
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
1.技術的なポイント
1.1 ハードウエア
・STMicroelecroronics社のSTM32F4マイクロコントローラ
・電力の計測
CT(カレントトランス、 変流器 、分流器)による交流電流の計測
分圧抵抗による交流電圧の計測
非ゼロクロス検出、交流の正成分のみ取込み
・非絶縁回路
1.2 ソフトウエア
・プログラミング言語はC、開発環境はEclipse、コンパイラはGCC
・有効電力計算、電圧・電流RMS計算
・半波データのみで、交流値計算
・積算値の維持、FLASHをEPROMとして利用
・A/D変換をハードウエアで定期実行
・タイマ割込でカレンダ時計の実装
・自家製タッチパネルグラフィックディスプレイライブラリの利用
・自家製Bluetoothソフトウエアスタックを利用し、BLEでデータ転送
1.3 開発法
・OSX上で無料で利用出来るEclipse+GCCを使用
・回路設計は、無料で利用出来るCadSoft Computer社のEAGLEを使用。
2.回路図
3.部品表
文書ファイル:V0_8_parts.numbers
線材、ケースを除きます。
4.ソフトウエア
4.1開発に必要な物
Eclipse+GCCソフトウエア開発環境(*1)
上記、EclipseでサポートしているOS環境
*1)無料で利用できます。Macでの環境設定例があります。「自作電子小物/TIPS/STM32,OSX,Eclipse開発環境設定」
4.2 フローチャート
利用した、USBホストとBluetoothのライブラリが、イベントループ構造を前提としていますので、それに習ってアプリケーション処理をループの中に組み入れる形です。
イベントループ構造とは、処理を行う必要があろうが、なかろうか必ず繰り返し制御が渡ってくるプログラムの構造です。これは、仮想的にマルチタスク/マルチスレッドを実現する為の、1手段です。
注意すべきは、制御が渡ってから長時間CPUを占有せず、細切れに処理を行う等の工夫が必要になります。このWHM0.8では毎秒1〜5万回程度でループしています。
文書ファイル:FlowChart.numbers
「状態」を保持する静的変数を使って、少しづつ処理を進めるようになっています。基本的に、1秒単位での計測となりますので、秒の区切りを検出すると状態が先に進みます。それ以外の時は、表示処理を行わせます。表示処理の中でも、同様の事を行っていますが、これよりは少し複雑です。
やっている処理の本質は簡単なもので、
・A/Dコンバータで波形データを7チャネル分一気に取込む
・数値処理でローパスフィルタをかける
・負側の波形は取込めないので、正側の波形を使って生成してやる
・波形データから電流・電圧・電力・周波数を計算する
・電力値を積算しておく
です。
あとは、これに細かい処理を肉付けしていくだけです。
4.3 ソースコード
ソースファイル一覧
モジュール関連図
文書ファイル:ModuleRelation.numbers
■ダウンロード
Eclipseプロジェクトファイル:
ライセンス: フリーソフトウエア(GPL v3)
作成者:富樫豊彦 tog001@nifty.com
開発環境(WHM0.8d):
Mac OSX 10.9
GCC ARM Embedded 4.7
Eclipse IDE for C/C++ Developers
Version: Juno Service Release 1
Build: 20121004-1855
Qstlink2 OSX - Revision #65 2011.12
開発環境(WHM0.8e):
Mac OSX 10.9
GCC ARM Embedded 4.8
Eclipse IDE for C/C++ Developers
Version: Luna Release (4.4.0)
Build: 20140612-0600
Qstlink2 OSX - Revision #65 2011.12
以下、サンプルプログラム
スマートフォン側のアプリケーションプログラム
iPhone 4S以降 iOS7用
PC側のアプリケーションプログラム
Macintosh Bluetooth4.0対応機種 OSX10.9用
5.実装
5.1 基板
大した回路ではないので、蛇の目基板にて作成可能です。
5.2 ケース
簡単な、カバー程度のケースを余り物のアクリル板で作ってみました。
下部は、1枚のアクリルシートを「コ」の字形に折り曲げ、上部も同様な手法で作って重ね合わせる形です。
正面の透明パネルは、 上部に支点があり上に開く形です。 若干スモークさせており、LCDの画面は支障無く確認でき、中の基板が目立たないようになっています。何と言っても作るのが簡単です。
正面パネルを開けると、LCDのタッチパネルを操作できます。
LCDモジュール基板は、ケースにネジ止めしてあります。この下に、CPUの基板が逆向きで取付けられています。側面・背面は乳白色のアクリル板ですので、このCPU基板上のLEDを分解せずに確認できます。
ターミナルブロックが1つしか付いていないのは、ケチったせいで特に意味はありません。
側面。
上面。ここの、マイクロUSBコネクタにBluetoothドングルを取付けます。
下部。センサへの取付けケーブルと、電源供給兼プログラム書込みの為のUSBコネクタがあります。
背面。強力マグネットシートを両面テープで貼付けてあります。冷蔵庫等の鉄板パネルの様な所なら、簡単に取り付けできます。
唯一の回路であるセンサ入力部は、蛇の目基板(ユニバーサル基板)上に組んでいます。
< 設計情報 >
<関連>
「自作電子小物/電力インジケータ/テーブルタップ版0.6.5」
※時系列順
<あとがき>
すいません、懲りずに、また電力量計を作ってしまいました。まさかv0.8まで行くとは...
本文でも書きましたが、すずめ車庫で使っている初代2006年式のリプレース目的で、しばらく、自宅で使用してみて問題なければ置き換えたいと思っています。
この所、小物が複雑化してしまい開発スピードが1個/年と、大変ゆっくりした物になっています。あまりにも機能を盛りすぎている感があります。初心を思い出す時期に来ているのかも。
富樫 豊彦 tog001@nifty.com
Multi channel watt hour meter.
Graphic display and bluetooth communication.