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

Arduino MKR GSM 1400 を Google Cloud IoT Core に安全接続 - ステップバイステップガイド

必要な部品と材料

Arduino MKR GSM 1400 ×1
Micro-USB ケーブル ×1
3.7V LiPoバッテリー ×1
Micro SIMカード (データ通信対応) ×1
セルラー用 UF.L アンテナ ×1

アプリとオンラインサービス

プロジェクト概要

> **注意: このチュートリアルは古い可能性があります。最新版は こちら を参照してください。**

はじめに

デバイスを GCP IoT Core に接続するには HTTP または MQTT を使用します。このチュートリアルでは、Arduino MKR GSM 1400 を MQTT クライアントとして GCP IoT Core に **安全に** 接続する手順を解説します。MQTT (Message Queuing Telemetry Transport) は M2M (Machine-to-Machine) 接続プロトコルで、パブリッシュ/サブスクライブ型のメッセージングを提供します。

認証には JSON Web Token (JWT) を使用します (RFC 7519)。GCP IoT Core は RSA と楕円曲線暗号 (ECC) の両方で JSON Web Signature (JWS、RFC 7515) を検証できます。

MKR シリーズ (MKR GSM 1400を含む) には、Microchip ATECC508A または ATECC608A 暗号素子 が搭載されています。これを使って 256ビットの ECC 秘密鍵を安全に生成・格納し、JWT の署名に使用します。秘密鍵はチップから決して出ません。

ソフトウェアとハードウェアのセットアップ

  1. Arduino IDE をインストール (未インストールの場合)
  2. ボードマネージャで 「Arduino SAMD Boards」 の最新版 (執筆時 1.6.20) をインストール
  3. ライブラリマネージャで以下をインストール:
    • MKRGSM
    • Arduino_JSON
    • ArduinoECCX08 (v1.3.0 以上)
    • ArduinoMqttClient (v0.1.3 以上)
    • Arduino Cloud Provider Examples (v1.2.0 以上)
  4. MKR GSM 1400 に Micro SIM、アンテナ、LiPoバッテリーを接続し、USBでPCと接続
  5. Arduino IDE でボード「Arduino MKR GSM 1400」、適切なシリアルポートを選択
Arduino MKR GSM 1400 を Google Cloud IoT Core に安全接続 - ステップバイステップガイド
Arduino MKR GSM 1400 を Google Cloud IoT Core に安全接続 - ステップバイステップガイド

GCP IoT Core へのデバイス登録

JWT認証用の公開鍵をボードで生成し、GCPコンソールに登録します。

  1. Arduino IDE で ファイル → スケッチ例 → ArduinoECCX08 → Tools → ECCX08JWSPublicKey を開いて書き込み
  2. シリアルモニタを開く (改行コード「NL & CR」に設定)
  3. 初回のみ、暗号素子の永続設定・ロックを求められます。この処理は不可逆 ですが、クラウド接続には必須です。スロット0〜4の5つの秘密鍵スロットが利用可能になり、いつでも再生成できます。
  4. スロット番号を聞かれるので「0」を入力
  5. 生成された PEM 形式の公開鍵 (「-----BEGIN PUBLIC KEY-----」で始まるブロック) をコピー
Arduino MKR GSM 1400 を Google Cloud IoT Core に安全接続 - ステップバイステップガイド

GCPコンソールでの作業

  1. Google Cloud Console にログイン
  2. プロジェクトを作成 (例: "MKR GCP Tutorial")
  3. ナビゲーションメニュー → 「Big Data」 → 「IoT Core」 → 「APIを有効化」
  4. 「デバイス レジストリを作成」: レジストリID (例: "MKR_GCP_Tutorial")、リージョン (例: "us-central1") を指定
  5. レジストリ詳細画面で「デバイス」→「デバイスを作成」
  6. デバイス名 (例: "MyMKRGSM1400")、公開鍵形式「ES256」、公開鍵値に先ほどのPEMを貼り付け → 「作成」
Arduino MKR GSM 1400 を Google Cloud IoT Core に安全接続 - ステップバイステップガイド

ボードを GCP IoT Core に接続

  1. Arduino IDE で ファイル → スケッチ例 → Arduino Cloud Provider Examples → GoogleCloudPlatformIoTCore → GCP_IoT_Core_GSM を開く
  2. arduino_secrets.h タブで SIMのPIN、GPRS APN/ユーザー/パスワードを設定
  3. 同ファイルで GCP情報を設定:
    #define SECRET_PROJECT_ID "mkr-gcp-tutorial"
    #define SECRET_CLOUD_REGION "us-central1"
    #define SECRET_REGISTRY_ID "MKR_GCP_Tutorial"
    #define SECRET_DEVICE_ID "MyMKRGSM1400"
  4. スケッチを書き込み、シリアルモニタで接続ログを確認
Arduino MKR GSM 1400 を Google Cloud IoT Core に安全接続 - ステップバイステップガイド

GCP IoT Core でのデバイス操作

接続成功後、スケッチは5秒ごとに /devices/{deviceId}/state トピックにメッセージを送信し、/devices/{deviceId}/config と /devices/{deviceId}/commands/# を購読します。

Arduino MKR GSM 1400 を Google Cloud IoT Core に安全接続 - ステップバイステップガイド
Arduino MKR GSM 1400 を Google Cloud IoT Core に安全接続 - ステップバイステップガイド
Arduino MKR GSM 1400 を Google Cloud IoT Core に安全接続 - ステップバイステップガイド

結論

このチュートリアルでは、MKR GSM 1400 のハードウェア暗号素子 (ATECC508A/608A) に格納された秘密鍵で JWT に署名し、MQTT 経由で GCP IoT Core に安全に接続する方法を説明しました。これにより、GCP の他のサービス (BigQuery, Pub/Sub, Dataflow 等) と連携した本格的な IoT システム構築の第一歩となります。

コード リポジトリ

GitHub: ArduinoCloudProviderExamples

製造プロセス

  1. Raspberry Pi 3とDHT11センサーを接続し、ThingsIo.aiクラウドへデータ送信
  2. Windows 10 IoT CoreとSHT15センサーで高精度な温湿度モニタリング
  3. Raspberry Pi 3 Model B+へのWindows 10 IoT Coreインストール:ステップバイステップガイド
  4. Windows 10 IoT Coreで音声制御ロボットを構築 - Raspberry Pi 2編
  5. Arduino Portenta H7デュアルコアシステムをSegger J-Linkでデバッグする
  6. Arduino Megaで写真撮影・Google Drive自動アップロード:PHPoC WiFiシールド活用
  7. ArduinoとMAX30100で作るリアルタイムIoT心拍数モニター
  8. ESP32で作るIoT環境モニター:温湿度・気圧・CO2をWebダッシュボードで可視化
  9. Azure IoT対応スマートプール制御システム:水温・気温監視と遠隔ポンプ制御
  10. ADLINKとGoogle Cloudが協業し、シームレスなIoTソリューションを提供
  11. IoTゲートウェイをマスターする:デバイスをクラウドへシームレスに接続