PZEM-051っていうDCのデジタルワットメータを解析している人がいて、Arduinoでデータを取り込めるらしいのでやってみた。PZEM-021でも良かったんだけど、PZEM-021だとシャント抵抗内蔵で20Aまで。PZEM-051だと50Aか100Aのシャント抵抗が外付けっぽい。
KT-D1384っていうそっくりなやつがあったんだけど、結局中身はPZEM-051だった。中華製なので出荷時期によって変わったりするかもしれないから注意なんだろうけど…
PZEM-051の裏面の蓋を開けてみるとこの基板はPZEM-051(v5.0)だった。PEACEFAIRっていうメーカー、一応PCに出力できるタイプのワットメータもAC、DC問わずにランナップされているけど液晶付きのやつをよく解析されてる気がする。void loop() {
static unsigned int updateRate = 200;//データ出力頻度
static unsigned long lastUpdate = 0;
if (lastUpdate + updateRate <= millis()) //updateRate[ms]周期で実行
{
lastUpdate = millis();//次の実行のために現在時間格納
Serial.print(get_voltage());
Serial.print(" V\t");
Serial.print(get_current());
Serial.print(" A\t");
Serial.print(get_power());
Serial.print(" W\t");
Serial.print(get_energy());
Serial.println(" Wh");
}
if (Serial.available() > 0) { // シリアルバッファチェック
char in = Serial.read();
if (in == 't') {
unsigned int input = Serial.parseInt();
if (input >= 50) {
updateRate = input; //データ出力頻度変更
}
}
}
}
ちなみにRS485のModbus対応とかだったらLCDはついていないけどPZEM-017というのが存在するみたい。ただし200msぐらいでしか通信できないみたいなので、RS-232CとかでデータストリームするぐらいだったらPZEM-051を改造したほうがデータ更新頻度は高そう。



