前回。
二乗平均平方根を使うことにしました
クランプ式電流センサで得られる電圧を、前回は一定サンプルの総和をサンプル数で割っていましたが、二乗平均平方根を使う世の中の流れに身を任せてみようと思います。(要は理論がわかっていない)
void setup() { Serial.begin(115200); } void loop() { long total = 0.0; int sample = 1000; for (int i = 0; i < sample; i++) { int sensorValue = analogRead(A0); float voltage = sensorValue * (3.2 / 1023.0); int voltageInt = voltage * 100; int current = (voltageInt - 158) * 30; total += current * current; } float result = total / sample / 10000.0; Serial.println(sqrt(result)); }
電圧を100倍して、Integerに丸めて、それの2乗の総和をサンプル数で割ってルートを取っています。もうよくわからないです。力率とかなんなんですかね。もう知らないです。
コーディングの妥当性を検証する
先に言っておくと、完全に言い訳ですが、なんとなく電流の使用量の遷移が見える化できればいいので、精度とかそういうのは求めていません。が、ちゃんと実際の値と大きなズレがないか確認します。
今回はもうどうにでもなって構わないハンダゴテを使って見ます。
100Vで30W、めんどくさいことを抜きに、単純計算で0.3A。電源コードを割いて、片方にセンサーを噛まして、流れている電流を測ってみます。
こんな感じ。そして、実行結果をシリアルモニターで見てみると・・・
0.25A・・・(真顔) 微妙にずれてますが、もう知りません。
念の為に、配電盤でもチェック。
こんな感じにつないで、いつも家で使っている電気ケトルをOFF→ON→OFFしてみました。
ティファール 電気ケトル 「アプレシア プラス」 コンパクトモデル メタリックノワール 0.8L BI805D70
定格消費電力は1250W。単純計算で12.5A。さぁ、シリアルモニターはどうなったかというと・・・
大体、2.85→14.27。11.42Aか・・・ 微妙にずれてますが、もう知りません。 (大切なことなので2回言いました)
こんな感じですが、今後も粛々と実装を進めます。
Learning Esp8266: Build the Internet of Things With the Arduino Ide and Raspberry Pi