工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduinoで作る高精度エナジーモニター&データロガー – Dr. Wattsonボード活用

必要な部品と材料

部品数量備考
Arduino UNO1
Dr. Wattson エナジーモニタリングボード1MCP39F521搭載、I2C接続
Dr. Wattson用アクリルケース1安全性確保、IECソケット付き推奨
Adafruit MicroSDカードブレークアウトボード1SPI接続、データログ用
タクトスイッチ1ログ開始/停止トグル用
LED (赤)1ログ状態表示用
抵抗 220Ω1LED電流制限用
ジャンパーワイヤー多数

プロジェクト概要

Microchip MCP39F521パワーモニタリングICを搭載した「Dr. Wattson」ブレークアウトボードをArduinoで制御し、電流・電力・力率などのエネルギーデータをMicroSDカードにCSV形式でロギングするシステムです。タクトスイッチでログ開始/停止を切り替え、LEDで記録中を表示。ログローテーション機能により、セッションごとに別ファイル (DATA00.CSV〜DATA99.CSV) に保存。Excel等で簡単にグラフ化可能です。

Arduinoで作る高精度エナジーモニター&データロガー – Dr. Wattsonボード活用

Dr. Wattsonボードの特徴

Arduinoで作る高精度エナジーモニター&データロガー – Dr. Wattsonボード活用

回路接続

Arduinoで作る高精度エナジーモニター&データロガー – Dr. Wattsonボード活用

Dr. Wattson – Arduino UNO (I2C)

Dr. WattsonピンArduinoピン
SCLA5
SDAA4
GNDGND
VIN5V
3.3V3.3V
ZCD / Event未接続 (本例では未使用)

MicroSDカード – Arduino UNO (SPI)

SDピンArduinoピン
CLK (SCK)13
MISO12
MOSI11
CS10 (ハードウェアCS、変更可)

ボタン & LED

部品接続
タクトスイッチピン4 — GND (内部プルアップ使用, アクティブLOW)
LED (アノード)ピン9 — 220Ω — GND (カソード)

スケッチ解説

主要ライブラリ

セットアップ処理


#define BUTTON_PIN 4
#define PULLUP true
#define INVERT true
#define DEBOUNCE_MS 20
Button myBtn(BUTTON_PIN, PULLUP, INVERT, DEBOUNCE_MS);

#define LED 9
#define CHIP_SELECT 10

UpbeatLabs_MCP39F521 wattson;
bool readData = false;
char filename[] = "DATA00.CSV";

void setup() {
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  pinMode(CHIP_SELECT, OUTPUT);

  // SDカード初期化
  if (!SD.begin(CHIP_SELECT)) {
    Serial.println(F("*** SD Card failed, or not present ***"));
  }

  wattson.begin();  // デフォルトI2Cアドレス 0x74

  // 未使用のファイル名を検索 (DATA00.CSV 〜 DATA99.CSV)
  for (uint8_t i = 0; i < 100; i++) {
    filename[4] = i/10 + '0';
    filename[5] = i%10 + '0';
    if (!SD.exists(filename)) {
      Serial.print(F("Data file is "));
      Serial.println(filename);
      break;
    }
  }
  Serial.println(F("**initialization complete.**"));
}

メインループ


void loop() {
  myBtn.read();  // ボタン状態更新

  // ボタンリリースでトグル
  if (myBtn.wasReleased()) {
    readData = !readData;
    digitalWrite(LED, readData);  // LEDで記録状態表示
  }

  if (readData) {
    UpbeatLabs_MCP39F521_Data data;
    UpbeatLabs_MCP39F521_FormattedData fData;
    int readMCPretval = wattson.read(&data, NULL);
    unsigned long currentMillis = millis();

    if (readMCPretval == UpbeatLabs_MCP39F521::SUCCESS) {
      // ターミナル画面クリア (screenコマンド使用時)
      Serial.write("\x1B""c");
      wattson.convertRawData(&data, &fData);
      printMCP39F521Data(&fData);

      // SDカードにCSV書き込み
      File dataFile = SD.open(filename, FILE_WRITE);
      if (dataFile) {
        dataFile.print(currentMillis); dataFile.print(",");
        dataFile.print(fData.currentRMS); dataFile.print(",");
        dataFile.print(fData.activePower); dataFile.print(",");
        dataFile.print(fData.reactivePower); dataFile.print(",");
        dataFile.println(fData.apparentPower);
        dataFile.close();
      } else {
        Serial.print(F("error opening ")); Serial.println(filename);
      }
    } else {
      Serial.print(F("Error! ")); Serial.println(readMCPretval);
    }
  }
}

CSV出力フォーマット


timestamp(ms), currentRMS(A), activePower(W), reactivePower(VAR), apparentPower(VA)

※ ヘッダー行自動出力は将来の拡張予定。手動で1行目に追加してください。

実測例: CFL電球 (14W) のコールドスタート

Arduinoで作る高精度エナジーモニター&データロガー – Dr. Wattsonボード活用

データ分析のヒント

シリアルモニターの代替: screen コマンド

Arduinoシリアルモニターは画面クリア非対応。Mac/Linuxなら screen が便利:


$ screen /dev/tty.usbmodem1411 9600

スケッチ側で Serial.write("\x1B""c"); (ANSIエスケープシーケンス) を送ると画面がその場で更新され、リアルタイムモニターのように見えます。

結論とリソース

Dr. Wattsonは「メイカーが手軽に高品質な電力データを扱えること」を目指したボードです。安全性、キャリブレーション済み、拡張性を兼ね備え、家電の消費電力分析からIoT電力監視まで幅広く応用可能。

製造プロセス

  1. 予防保全スケジューリングの極意:固定型とフロート型の構築と最適化
  2. Arduinoで温湿度ロガーを作る – DHT11とEthernetシールドでSDカード記録
  3. Arduino Dueと3.2インチTFTで作る温度監視付きリアルタイムクロック
  4. DHT11 と Blynk で温湿度をリアルタイム監視する Arduino チュートリアル
  5. Arduino Mega と IoT センサによる高機能ホームモニタリングシステム
  6. Arduino UNOで作る信頼性の高いスマートエネルギーモニター – ステップバイステップガイド
  7. Arduino GPSデータロガー:リアルタイム飛行追跡、最高高度・速度監視
  8. Arduinoベースの心電図・呼吸モニタリングシステムを構築する
  9. ArduinoとProcessingで作るリアルタイムデジタルコンパス
  10. TensorFlowで変分オートエンコーダを構築:実践ガイド
  11. クラウド革命:IT、セキュリティ、キャリアをどう変えるか