mcpField
I
iot-engineer

iot-engineer

github.com/404kidwiz開発170 回インストール
リポジトリ

iot-engineer について

iot-engineer は、IoT 開発向けのスキルで、組み込みファームウェア、デバイス接続、システム全体の設計を扱います。電力管理、エッジ AI の導入、セキュリティ上の考慮事項も含みます。

主な機能

  1. 01エンドツーエンドの IoT アーキテクチャ設計
  2. 02ESP32、STM32、Nordic nRF 向けファームウェア
  3. 03MQTT v5 と無線プロトコルの選定
  4. 04バッテリーと消費電力の最適化
  5. 05TinyML の導入ガイダンス
  6. 06IoT セキュリティレビューの指針

活用シーン

  1. 01デバイスからゲートウェイ、クラウドまでの設計
  2. 02MQTT メッセージパターンの実装
  3. 03バッテリー駆動デバイスの省電力化
  4. 04ESP32 での異常検知モデルの導入

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill iot-engineer

インストール後、Claude Code で/iot-engineerを入力して読み込まれたか確認します。

詳細

IoT エンジニア

目的

組み込みファームウェア、ワイヤレスプロトコル、クラウド連携を専門とする、モノのインターネット(IoT)開発の専門知識を提供します。MQTT、BLE、LoRaWAN、エッジコンピューティングを通じて、物理デバイスとデジタルシステムを接続するエンドツーエンドの IoT アーキテクチャを設計します。

使用するタイミング

  • エンドツーエンドの IoT アーキテクチャ(デバイス → ゲートウェイ → クラウド)の設計
  • マイクロコントローラー(ESP32、STM32、Nordic nRF)向けのファームウェア作成
  • MQTT v5 メッセージングパターンの実装
  • バッテリー寿命と消費電力の最適化
  • エッジ AI モデル(TinyML)のデプロイ
  • IoT フリートのセキュリティ確保(mTLS、セキュアブート)
  • スマートホーム規格(Matter、Zigbee)との連携


2. 意思決定フレームワーク

接続プロトコルの選択
What are the constraints?
│
├─ **High Bandwidth / Continuous Power?**
│  ├─ Local Area? → **Wi-Fi 6** (ESP32-S3)
│  └─ Wide Area? → **Cellular (LTE-M / NB-IoT)**
│
├─ **Low Power / Battery Operated?**
│  ├─ Short Range (< 100m)? → **BLE 5.3** (Nordic nRF52/53)
│  ├─ Smart Home Mesh? → **Zigbee / Thread (Matter)**
│  └─ Long Range (> 1km)? → **LoRaWAN / Sigfox**
│
└─ **Industrial (Factory Floor)?**
   ├─ Wired? → **Modbus / Ethernet / RS-485**
   └─ Wireless? → **WirelessHART / Private 5G**
クラウドプラットフォーム
プラットフォーム最適な用途主なサービス
AWS IoT Coreエンタープライズ規模Greengrass、Device Shadow、Fleet Provisioning。
Azure IoT HubMicrosoft 製品を利用する組織IoT Edge、Digital Twins。
GCP Cloud IoTデータ分析BigQuery との連携(注:コアサービスは廃止/移行済みです)。
HiveMQ / EMQXベンダーに依存しない用途高性能 MQTT ブローカー。
エッジインテリジェンスのレベル
  1. テレメトリのみ: センサーの生データ(温度/湿度)を送信します。
  2. エッジフィルタリング: 変化があった場合のみ送信します(デッドバンド)。
  3. エッジ分析: FFT/RMS をローカルで計算します。
  4. エッジ AI: MCU 上で TFLite モデルを実行します(例:音声キーワード検出)。

危険信号 → security-engineer にエスカレーションしてください:

  • ファームウェア内の WiFi パスワードまたは AWS キーのハードコード
  • Over-The-Air(OTA)更新の仕組みがない
  • 通信が暗号化されていない(HTTPS/MQTTS ではなく HTTP を使用)
  • ゲートウェイにデフォルトのパスワード(admin/admin)を使用


ワークフロー 2:ESP32 でのエッジ AI(TinyML)

目標: モーターの「異常」(振動)を検出します。

手順:

  1. データ収集

    • 「正常」状態と「異常」状態の加速度センサーデータ(XYZ)を記録します。
    • Edge Impulse にアップロードします。
  2. モデルのトレーニング

    • 特徴量を抽出します(スペクトル分析)。
    • K-Means による異常検知またはニューラルネットワークをトレーニングします。
  3. デプロイ

    • C++ ライブラリをエクスポートします。
    • ファームウェアに統合します:
      #include <edge-impulse-sdk.h>
      
      void loop() {
          // Fill buffer with sensor data
          signal_t signal;
          // ...
          
          // Run inference
          ei_impulse_result_t result;
          run_classifier(&signal, &result);
          
          if (result.classification[0].value > 0.8) {
              // Anomaly detected!
              sendAlertMQTT();
          }
      }
      


4. パターンとテンプレート

パターン 1:デバイスシャドウ(デジタルツイン)

ユースケース: デバイスがオフラインの場合に状態(例:「ライト ON」)を同期します。

  • クラウド: アプリが desired 状態を更新します:{"state": {"desired": {"light": "ON"}}}。
  • デバイス: 起動し、$aws/things/my-thing/shadow/update/delta をサブスクライブします。
  • デバイス: 差分を確認し、ライトを ON にします。
  • デバイス: reported 状態を報告します:{"state": {"reported": {"light": "ON"}}}。
パターン 2:最終意志メッセージ(LWT)

ユースケース: 予期しない切断を検出します。

  • 接続: デバイスが LWT トピックを設定します:status/device-001、ペイロード:OFFLINE、保持:true。
  • 正常時: デバイスが status/device-001 に ONLINE をパブリッシュします。
  • クラッシュ時: ブローカーがタイムアウトを検出し、LWT ペイロード(OFFLINE)を自動的にパブリッシュします。
パターン 3:ディープスリープサイクル(バッテリー節約)

ユースケース: コイン電池で数年間稼働させます。

void setup() {
    // 1. Init sensors
    // 2. Read data
    // 3. Connect WiFi/LoRa (fast!)
    // 4. TX data
    // 5. Sleep
    esp_sleep_enable_timer_wakeup(15 * 60 * 1000000); // 15 mins
    esp_deep_sleep_start();
}


6. 連携パターン

backend-developer:
  • 引き継ぎ:IoT エンジニアが MQTT トピックにデータを送信 → バックエンド開発者が Lambda/Cloud Function を実行します。
  • 共同作業:JSON スキーマ/Protobuf 定義を作成します。
  • ツール:AsyncAPI。
data-engineer:
  • 引き継ぎ:IoT Engineer が生のテレメトリをストリーミングし、Data Engineer が Kinesis Firehose を構築して、S3 Data Lake に送信します。
  • コラボレーション:センサーからのデータ品質や外れ値に対応します。
  • ツール:IoT Analytics、Timestream。
mobile-app-developer:
  • 引き継ぎ:モバイルアプリが BLE 経由でデバイスに接続します。
  • コラボレーション:GATT サービス/特性の UUID を定義します。
  • ツール:nRF Connect。

コメント