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

Arduino MKR Fox 1200で作る信頼性の高いSigfox kWhメーター

必要な部品と材料

部品数量備考
Arduino MKR Fox 12001Sigfox通信モジュール内蔵
ブレッドボード1
ジャンパーワイヤー1式
CNY70 反射型フォトセンサー1メーターの回転円盤検出用
抵抗 221Ω1CNY70 LED側
抵抗 10kΩ1CNY70 トランジスタ側プルアップ
抵抗 100Ω1ステータスLED用
可変抵抗器1センサー感度調整用
プッシュスイッチ 12mm1操作ボタン
LED(汎用)1ステータス表示用

使用ソフトウェア・サービス

このプロジェクトについて

1. 概要

このチュートリアルでは、古い誘導式電力メーターをインターネットに接続するデバイスを作ります。対象は最も古いタイプながら今も使われている、回転円盤(アルミ製)のあるメーターです。円盤の周囲に反射塗料が塗られ、一部分に黒い線があります。この黒い線が通過するたびに1回転とみなされ、このプロジェクトでは120回転=1kWhとして計算します。

2. 使用マイコン・IoTネットワーク

Arduino MKRFOX1200を使用します。内蔵のSigfoxモジュールでLPWAN(低電力広域ネットワーク)に接続します。SigfoxはISMバンド(868MHz)を使用し、1日あたり最大140メッセージ(ペイロード12バイト)をアップリンクできます。メッセージはSigfoxクラウドに蓄積され、コールバック機能で任意のエンドポイント(ThingSpeak等)へ転送可能です。

ThingSpeak: IoTデータ可視化プラットフォーム。Sigfoxのコールバック先として受信データをグラフ表示します。

Arduino MKR Fox 1200で作る信頼性の高いSigfox kWhメーター

対象メーターはこのタイプです(回転円盤に黒ストライプがあるもの)。

3. 実装手順

  1. 配線: 回路図通りに全パーツを接続。電源はUSBモバイルバッテリーやPCのUSBポートでOK。
  2. Arduino MKR Fox 1200で作る信頼性の高いSigfox kWhメーター
  3. コード書き込み: ページ下部のコードをArduino IDEで書き込み。
  4. ThingSpeakチャネル作成:
    • ThingSpeakでアカウント登録
    • チャネル1作成:フィールド1を「Consumption(消費量)」に設定
    • チャネル2作成:チャネル1ベースでMATLAB Analysisを有効化、以下のコードを設定
    readChannelID = チャネル1のID;
    readAPIKey = 'チャネル1のRead API Key';
    writeChannelID = チャネル2のID;
    writeAPIKey = 'チャネル2のWrite API Key';
    data = thingSpeakRead(readChannelID, 'ReadKey', readAPIKey,'OutputFormat','table');
    analyzedData = data;
    analyzedData.('Consumption') = (data.('Consumption') + 現在の積算値_Wh)/1000;
    thingSpeakWrite(writeChannelID, analyzedData, 'WriteKey', writeAPIKey);
    
  5. Sigfoxコールバック設定:
    • Sigfoxバックエンドにログイン
    • コールバック追加:
      • TYPE: DATA UPLINK
      • CHANNEL: URL
      • CUSTOM PAYLOAD CONFIG: status::uint:32:little-endian
      • URL PATTERN: https://api.thingspeak.com/update?api_key=チャネル1のWriteAPIKey&field1={customData#status}
      • HTTP METHOD: GET

4. デバイス設置とロジック

Arduino MKR Fox 1200で作る信頼性の高いSigfox kWhメーター

CNY70センサーをメーターのガラス面に両面テープで固定。円盤の中心に合わせます。デバイスのボタンを2回押すとキャリブレーションモードになり、反射部でLED点灯、黒線で消灯すれば正常。さらに1回押すと測定開始。30分ごとに消費電力量をSigfoxで送信。分解能は25Wh(3回転ごと)です。

5. 最終的な出力

Arduino MKR Fox 1200で作る信頼性の高いSigfox kWhメーター

以上で、ThingSpeakの美しいグラフでリアルタイムに電力消費量を確認できるようになります。

コード

#include <SigFox.h>
int DIODE = 13;
int BTN = 12;
int BTN_state = 0, BTN_prev = 0, BTN_NR_OF_PRESS = 0;
int CALC = 0;
unsigned long i = 0;
uint32_t CONSUMPTION = 0;
boolean SHINE = false, KARDAN = false;

void setup() {
  pinMode(DIODE, OUTPUT);
  pinMode(BTN, INPUT);
  Serial.begin(9600);
  if (!SigFox.begin()) Serial.println("Sigfox module unavailable.");
}

void loop() {
  int senzor = analogRead(A3);
  BTN_state = digitalRead(BTN);
  if (BTN_state != BTN_prev) {
    if (BTN_state == HIGH) BTN_NR_OF_PRESS++;
  }
  BTN_prev = BTN_state;

  // キャリブレーションモード(ボタン3回押しで終了)
  if (BTN_NR_OF_PRESS % 3 == 0) {
    if (senzor > 300 && senzor < 950) digitalWrite(DIODE, HIGH);
    else digitalWrite(DIODE, LOW);
  }

  // 回転検出ロジック
  if (senzor < 1020 && SHINE == false) SHINE = true;
  if (senzor > 1020 && SHINE == true && BTN_NR_OF_PRESS == 4) {
    CALC++; SHINE = false;
  }
  if (CALC % 3 == 0 && CALC != 0 && KARDAN == false) {
    KARDAN = true; CONSUMPTION += 25; // 25Wh加算
  }
  if (CALC % 3 != 0) KARDAN = false;

  // 30分ごと送信(ボタン4回押しで送信モード)
  if (BTN_NR_OF_PRESS % 4 == 0) {
    digitalWrite(DIODE, LOW);
    if (SHINE == false) {
      for (millis(); (millis() - i) > 1800000; ) {
        i = millis();
        SigFox.debug();
        SigFox.beginPacket();
        SigFox.write(CONSUMPTION);
        SigFox.endPacket();
      }
    }
  }
}

回路図

Arduino MKR Fox 1200で作る信頼性の高いSigfox kWhメーター

製造プロセス

  1. スマート渇きアラート植物アラーム – 最適な水やりタイミングを知らせるDIYセンサー
  2. イタリア語ワードクロック自作:Arduino Nano、NeoPixel、LCD、RTCで時刻を文字で表示
  3. アナログ3ピンで4×3キーパッドを接続 - Arduinoピン節約テクニック
  4. Bluetooth対応温度モニター:Arduino NanoとHC-06でスマホ監視
  5. 自動レンジ切替対応 静電容量メーター (10pF〜10µF) - Arduino Nano で簡単自作
  6. 非接触ジェスチャー錠: APDS-9960とArduinoでセキュアアクセス
  7. Arduino Nanoコンパニオンキット – 電子工作に必須の部品とツールを搭載した多機能IC型デバイス
  8. Arduino Micro/Leonardo用 USB-MIDIアダプタキット – 完全パーツリストと実装ガイド
  9. Arduino用絶縁アナログ入力回路の設計:LM331 V-F変換+フォトカプラでノイズ耐性を確保
  10. RGB 32バンド オーディオスペクトラムビジュアライザー - Arduino LEDマトリックスプロジェクト
  11. Arduino UNOで作る精密反応速度テスター