IoT Hub (iOS) を使用した cloud-to-device メッセージの送信

Azure IoT Hub は、何百万ものデバイスとソリューション バックエンドの間に信頼性のある保護された双方向通信を確立するのに役立つ、フル マネージドのサービスです。

この記事で取り上げるテクニック:

  • デバイスでクラウドからデバイスへ (C2D) のメッセージを受信する

この記事の最後で、次の Swift iOS プロジェクトを実行します。

注意

IoT Hub では、Azure IoT device SDK により、多くのデバイス プラットフォームと言語 (C、Java、Python、JavaScript など) 用の SDK がサポートされています。

cloud-to-device メッセージの詳細については、「IoT ハブから cloud-to-device メッセージを送信する」を参照してください。

前提条件

  • Azure のアクティブな IoT ハブ。

  • iOS プラットフォーム用 Azure IoT サンプル リポジトリのコード サンプル。

  • iOS SDK の最新バージョンを実行している最新バージョンの XCode。 この記事は XCode 9.3 と iOS 11.3 でテストされました。

  • 最新バージョンの CocoaPods

  • ポート 8883 がファイアウォールで開放されていることを確認してください。 この記事のデバイス サンプルでは、ポート 8883 を介して通信する MQTT プロトコルを使用しています。 このポートは、企業や教育用のネットワーク環境によってはブロックされている場合があります。 この問題の詳細と対処方法については、「IoT Hub への接続 (MQTT)」を参照してください。

IoT デバイスのシミュレート

ここでは、Swift アプリケーションを実行して IoT ハブから cloud-to-device メッセージを受信する iOS デバイスをシミュレートします。

CocoaPods のインストール

CocoaPods は、サードパーティ製のライブラリを使用する iOS プロジェクトの依存関係を管理します。

ターミナル ウィンドウで、前提条件としてダウンロードしたリポジトリを含むフォルダーに移動します。 その後、サンプル プロジェクトに移動します。

cd quickstart/sample-device

XCode が終了していることを確認し、次のコマンドを実行して、podfile ファイルで宣言されている CocoaPods をインストールします。

pod install

インストール コマンドでは、プロジェクトに必要なポッドをインストールすると共に、依存関係にポッドを使用するように既に構成されている XCode ワークスペース ファイルも作成されます。

サンプル デバイス アプリケーションの実行

  1. デバイスの接続文字列を取得します。 Azure portal のデバイスの詳細ページからこの文字列をコピーするか、次の CLI コマンドを使用して取得できます。

    az iot hub device-identity connection-string show --hub-name {YourIoTHubName} --device-id {YourDeviceID} --output table
    
  2. XCode で、サンプル ワークスペースを開きます。

    open "MQTT Client Sample.xcworkspace"
    
  3. MQTT Client Sample プロジェクトを展開してから、同じ名前のフォルダーを展開します。

  4. XCode で編集するために ViewController.swift を開きます。

  5. connectionString 変数を検索し、最初の手順でコピーしたデバイス接続文字列で値を更新します。

  6. 変更を保存します。

  7. デバイス エミュレーターで、 [ビルド/実行] ボタンまたは Command + r キーの組み合わせを使用してプロジェクトを実行します。

    スクリーンショットは、デバイス エミュレーターの [ビルド/実行] ボタンを示しています。

C2D メッセージを送信する

これで、cloud-to-device メッセージを受信する準備が整いました。 Azure portal を使用して、シミュレートされた IoT デバイスに cloud-to-device テスト メッセージを送信します。

  1. シミュレートされた IoT デバイスで実行されている iOS App Sample アプリで、[開始] を選択します。 アプリケーションは device-to-cloud メッセージの送信を開始しますが、cloud-to-device メッセージのリッスンも開始します。

    サンプル IoT デバイス アプリの表示

  2. Azure Portal で、IoT ハブに移動します。

  3. [デバイス] ページで、シミュレートされた IoT デバイスのデバイス ID を選択します。

  4. [デバイスへのメッセージ] を選択して、cloud-to-device メッセージのインターフェイスを開きます。

  5. [メッセージ本文] テキスト ボックスでプレーンテキスト メッセージを記述して [メッセージの送信] を選択します。

  6. シミュレートされた IoT デバイスで実行されているアプリを観察します。 このアプリは、IoT Hub からのメッセージをチェックし、最新のメッセージのテキストを画面に出力します。 出力は次の例のようになります。

    cloud-to-device メッセージの表示

次の手順

この記事では、クラウドからデバイスへのメッセージを送受信する方法を学習しました。