Azure Sphere Wi-Fi 構成
Azure Sphere デバイスは、ネットワーク接続に依存して、オンエア OS とアプリケーションの更新プログラムを受信し、アプリケーション固有のサービスに接続します。 Wi-Fi 接続は、アプリの開発中、製造段階、またはデバイスのデプロイ後に構成する必要がある場合があります。 Wi-Fi 構成のオプションは、Azure Sphere デバイスに物理的にアクセスできるかどうか、または Wi-Fi 構成をリモートで更新しているかどうかによって異なります。
このアプリケーション ノートは、WPA2-PSK 認証 (共有キーなど) に関して記述されています。 さらに、Azure Sphere では、セキュリティで保護されたエンタープライズ ネットワーク用の EAP-TLS がサポートされています。 PSK の送信に使用できる、ここで説明するすべてのメカニズムを使用して、EAP-TLS の証明書を送信することもできます。
デバイスへのサービス ポート アクセスを使用して Wi-Fi を構成する
USB/FTDI プログラミングとデバッグ インターフェイスを含むデバイスがある場合、または USB/FTDI プログラミングとデバッグ インターフェイスを含む外部ボードを追加できる場合は、Azure Sphere Command-Line インターフェイス (CLI) と開発ツールを使用できます。 サービス ポート オプションは、製造にのみ適しています。 製造後、通常の使用時には、サービス ポートを使用する代わりに、以下で説明する他のオプションのいずれかを使用することをお勧めします。これは、サービス ポートが フィールド サービス機能を取得するために Azure Sphere カタログにアクセスする必要があるためです。
Azure CLI
USB/FTDI プログラミングとデバッグ インターフェイスを含む Azure Sphere デバイスを開発用 PC に接続し、 Azure Sphere SDK をインストールしている場合は、 Wi-Fi を構成するためのコマンドを含む Azure CLI を使用できます。 [ネットワーク 診断](.. を取得することもできます。/reference/az sphere-device.md)、および [EAP-TLS ネットワークの証明書の管理](../reference/az sphere-device.md)。
外部プログラミング ボード
オンボードの Azure Sphere プログラミングおよびデバッグ インターフェイスを含まないが、 スタンドアロン FTDI インターフェイス ボードを一時的に接続できるデバイスがある場合は、上記の Azure CLI コマンドを使用できます。 この方法を使用すると、FTDI インターフェイスを使用せずに運用デバイスを出荷できます (コストを節約できます)。エンジニアごとにプログラミング/デバッグ ボードのみが必要です。
デバイスへのローカル アクセスを使用して Wi-Fi を構成する (サービス ポートなし)
USB/FTDI プログラミングおよびデバッグ インターフェイスを含まない (または追加する機能を持つ) デバイスの場合、デバイスへのローカル アクセスがある場合は、Wi-Fi を構成するためのいくつかのオプションがあります。 最適なローカル オプションは、使用しているユーザーの種類と、ユーザーが必要と思うリソースによって異なります。 たとえば、エンド ユーザーが Wi-Fi、NFC、Bluetooth を構成するコンシューマー製品の場合、使いやすいエクスペリエンスが得られますが、ハードウェア ドングルを使用して製品とのインターフェイスを行うことができるプロのインストーラーまたは sysadmins によってインストールされる製品の場合、UART オプションのコストオーバーヘッドは最も低くなります。
Bluetooth
Azure Sphere デバイスで Bluetooth 接続が公開されている場合は、Bluetooth を使用して Wi-Fi をプロビジョニングできます。 WifiSetupAndDeviceControlViaBle リファレンス ソリューションでは、nRF52 Bluetooth コントローラー (USI Global Azure Sphere モジュールに含まれる) を使用します。 このサンプルには、Azure Sphere の高レベル アプリケーションと Windows デスクトップ アプリケーション (C# で記述) が含まれています。
Uart
運用環境では、USB/FTDI プログラミングとデバッグ ボードを一時的に追加するためのサポートがないデバイスの Wi-Fi 構成を更新する必要がある場合があります。 エンジニアがデバイスの Wi-Fi 設定を更新できるように、デバイスから UART/シリアル インターフェイスを公開することもできます。 Azure Sphere Gallery WifiConfigurationViaUart プロジェクトでは、デバイスの再起動、現在の Wi-Fi 構成の一覧、新しいネットワーク構成を追加する機能など、UART ベースのメニュー インターフェイスを開発する方法を示します。 サンプルを拡張して、追加の機能を追加できます。
ネットワーク構成のブートストラップ
ネットワーク接続を使用して構成をブートストラップ Wi-Fi 場合があります。 次の 2 つの手順があります。
ブートストラップ ネットワークに接続されている Azure Sphere デバイスを取得します。
新しい Wi-Fi プロビジョニング情報を取得し、デバイスを構成します。
ブートストラップ ネットワークに接続されているデバイスを取得する
デバイスが接続する Wi-Fi ネットワークは、製造時点では認識されず、オンサイトのセットアップ中にデバイス インストーラーまたはエンジニアによって構成される場合があります。 製造プロセスの一環として、デバイスへの Wi-Fi 接続のプロビジョニングを検討する場合があります。 エンジニアは、製造プロビジョニングされた SSID とパスキーに一致する Wi-Fi アクセス ポイント としてモバイル デバイスを構成し、Azure Sphere デバイスを接続できるようにします。
デバイスは、最初に携帯ネットワークまたはイーサネット接続を使用して接続できます。
ブートストラップ ネットワークから Wi-Fi 接続をプロビジョニングする
デバイスがブートストラップ ネットワークに接続されると、新しい Wi-Fi 構成を取得するためのオプションがいくつかあります。
- Azure Sphere デバイスは、ブートストラップ ネットワーク上のクライアントがネットワークを構成できるようにする単純な TCP または HTTP サーバーをホストできます。
- Azure Sphere デバイスは、事前に決定された TCP/IP ポートまたはホスト名を使用して、Wi-Fi 資格情報を提供するサーバー/サービスに接続できます。
- Wi-Fi 資格情報を提供するために使用されるサービスは、実行時に決定する必要があります。その場合、 DNS-SD などのテクノロジが使用される場合があります。
- 次に示すリモート構成オプションの 1 つが使用される場合もあります。
Nfc
NFC ベースの Wi-Fi 構成には、いくつかの手順を必要とし、高速であるという利点があります。 ケーブルを接続し、場合によってはコマンドを入力する必要があるコマンド ライン メソッドとは異なり、オペレーターが構成する必要があるデバイスに対して携帯電話を保持する唯一のアクションです。 NFC は近接通信のみに依存し、ペアリングとペアリング解除を行う必要がないため、他のほとんどの構成手法に比べて高速です。 Android ストアと Apple ストアの両方に、開発中およびテスト中に使用して、Wi-Fi 資格情報をデバイスにプロビジョニングできるアプリケーションがあります。
Azure Sphere Gallery WifiConfigurationViaNfc プロジェクトは、NFC タップ イベントに基づいて新しいネットワーク構成を追加する方法を示しています。
Wi-Fi をリモートで構成する
デバイスが運用環境にあるか、リモートの場所にある場合でも、Wi-Fi 資格情報をプロビジョニングまたは更新する必要がある場合があります。オプションには次のようなものがあります。
Azure Device Twin プロパティ (推奨オプション)
Azure IoT Hubと Azure IoT Central で Device Twins がサポートされているデバイス ツインは、デバイス ツインは、Azure IoT Hub/Central サービスとデバイスの間でミラー化された JSON ドキュメントであり、Azure 側では、デバイスオペレーターがデバイスが達成を試みるべき望ましい状態 (サーモスタットの温度設定ポイント) を設定し、デバイスは報告された状態をに戻すことができますAzure IoT Hub/Central。 Azure IoT Hub/Central 内の 1 つまたは複数のデバイスに対して新しい必要なプロパティを設定する機能 (これはプログラムで実現できます) を使用すると、デバイスオペレーターは、1 つまたは複数のデバイスの目的のプロパティとして新しい Wi-Fi 構成を設定し、特定の Azure Sphere デバイス グループ内のデバイスに関する知識を Azure IoT Hub 内のデバイスとペアリングできます。/Central アプリケーションを使用すると、更新されるデバイスを細かく制御できます。
アプリケーション ソフトウェアへの更新
Azure Sphere デバイス アプリケーションは、 デバイス メーカーによって更新できます。 Azure Sphere OTA 更新プログラムの開発に関する IoT Show ビデオでは、アプリケーションのデプロイとアプリケーション更新プログラムの遅延について説明しています。
更新されたアプリケーションから Wi-Fi 構成を更新するには、いくつかのオプションがあります。
- Wi-Fi 構成の変更ごとに更新される文字列をアプリケーション コードに含める場合があります。 これは比較的簡単に実装でき、埋め込みリソース ファイルの読み込み/解析は必要ありません。 つまり、コード ファイルは、Wi-Fi 構成の更新の一環としてタッチされ、コード履歴に影響を与える可能性があります。
- アプリケーションで埋め込みリソース ファイルを使用して、リソースを変更してもコードに触れない場合があり、JSON などのデータ形式を選択すると、自動ビルドとテスト中にファイルの内容を簡単に解析および検証できます。 WifiConfigurationViaAppResource ギャラリー プロジェクトは、JSON リソース ファイルの内容を使用して Wi-Fi を構成する方法を示しています。
- よく知られている Web エンドポイント (Azure アプリ サービスなど) を使用して、デバイスの Wi-Fi 構成を取得できます。
Wi-Fi 構成をアプリケーション (ソースファイルまたはリソース ファイル内) に直接埋め込むということは、更新されたデバイスが同じ Wi-Fi 構成情報を受信することを意味することに注意してください。 個々のデバイス Wi-Fi 構成を設定する場合は、Azure IoT Hub/Central Device Twin メソッドまたは既知の Web エンドポイント オプションを使用する必要があります。
Wi-Fi 構成に関する考慮事項
デバイスの Wi-Fi 構成を変更するときは、新しい Wi-Fi 構成を追加し、 既存の接続を無効にし、新しい接続を有効にして、以前の接続情報を削除する前に新しい接続が動作していることを確認します。