クラウドアダプタを利用してAzure IoT Hubへデータを送信する
本ページでは、クラウドアダプタを利用してAzure IoT Hubへデータを送信し、Azure Storageへ保存する一連の流れを説明します。
Azureの設定
IoT Hubの作成
ますは、Microsoft Azure Portal からIoT Hubを開きIoT Hubを設定します。
「IoT ハブ の作成」からIoT Hubを作成します。
以下のように入力し、IoT Hubを設定します。
項目 | 入力値 |
---|---|
リソースグループ | iij (新規作成) |
領域 | 東日本 |
IoT Hub 名 | CloudAdapter |
「サブスクリプション」は適切な値を選択します。
「確認および作成」を選択して確認画面へ進みます。
入力項目に誤りがないかを確認し「作成」を選択してIoT Hubを作成します。
IoT Hubの作成には数分掛かります。
「最新の状態に更新」を選択し、作成が完了するまで待ちます。
「デプロイが完了しました」と表示されれば作成は完了です。
次に「リソースに移動」を選択し、デバイスを登録します。
デバイスの登録
IoT Hubのリソースを開き、検索ウィンドウに「デバイス」と入力します。
「IoT デバイス>新規作成」を選択し、デバイスを新規に登録します。
ここでは下記のように入力しデバイスを登録します。
「デバイス ID」にはIoTサービス上に登録されている、デバイスIDを使用します。
項目 | 入力値 |
---|---|
デバイス ID | dvc-xxxxxxxxxx (マスクしています) |
認証の種類 | 対称キー |
自動生成キー | 選択 |
このデバイスをIoTハブに接続する | 有効化 |
「保存」を選択しデバイスを登録します。
以上でIoT Hubへのデバイスの登録は完了です。
ストレージアカウントの設定
続いて、Azure StorageとAzure IoT Hubを連携させ、IoT Hubに送信したデータをファイルとして保存します。
ますは、「ストレージアカウント の作成」からストレージアカウントを作成します。
ここでは、下記のように入力しストレージアカウントを作成します。
赤枠の箇所を入力・選択し「確認および作成」を選択して確認画面へ進みます。
入力に誤りがないかを確認し「作成」を選択してストレージアカウントを作成します。
項目 | 入力値 |
---|---|
リソースグループ | iij |
ストレージアカウント名 | cloudadapterstorage |
場所 | (アジア太平洋) 東日本 |
ストレージアカウントの作成には数十秒かかります。
「最新の状態に更新」を選択し、作成が完了するまで待ちます。
「デプロイが完了しました」と表示されれば作成は完了です。
「リソースに移動」を選択し、コンテナーを作成します。
ストレージアカウントのリソースを開き、検索ウィンドウに「コンテナー」と入力します。
「コンテナー>+ コンテナー」を選択し、コンテナーを新規に登録します。
コンテナーの名前を「cloudadapter」として作成します。
以上でストレージアカウントの設定は完了です。
メッセージルーティングの設定
次にIoT Hubへ戻り、作成したストレージアカウントへデータを保存するようにメッセージのルーティングを設定します。
検索ウィンドウに「メッセージ」と入力します。
「メッセージルーティング>追加」から設定を追加します。
ここでは設定名を「StorageRoute」として作成します。
また「エンドポイントの追加>ストレージ」から、連携用の新たなエンドポイントを作成します。
エンドポイント名を「IoTData」とします。
「Azure Storage コンテナー」の下の「コンテナーを選択します」を選択し、コンテナーを設定します。
ストレージアカウントのリソース画面から、先ほど作成した「cloudadapter」を選択します。
「エンコード」に「JSON」を選択し「作成」を選択します。
上記までの手順で以下のようになります。
ここでは「ルーティング クエリ」を変更せず、デバイスから送信された全てのメッセージが保存されるようにします。
以上でAzure上への設定は完了です。
認証情報の確認
IoT Hubの認証情報として、以下のいずれかを使用することができます。
- 共有アクセスポリシー
- デバイス毎に発行されるアクセスポリシー
複数のデバイスを利用する場合、デバイス毎に認証情報を登録する必要のない「共有アクセスポリシー」の利用を推奨します。
共有アクセスポリシーの確認
「共有アクセスポリシー>device」からデバイスの共有アクセスポリシーを表示します。
「共有アクセスキー」の中の「主キー」か「セカンダリ キー」のいずれかを控えておきます。
後ほどコントロールパネル上で設定する際に使用します。
デバイス毎に発行されるアクセスポリシーの確認
「IoT デバイス」から「デバイス ID」を選択し、デバイスの情報を表示します。
表示された中の「主キー」か「セカンダリ キー」のいずれかを控えておきます。
後ほどコントロールパネル上で設定する際に使用します。
ホスト名の確認
最後にデータの送信先となる「ホスト名」を確認します。
「概要」に表示されている「ホスト名」を控えておきます。
後ほどコントロールパネル上で設定する際に使用します。
IoTサービスコントロールパネルの設定
次に、コントロールパネルからクラウドアダプタの設定をします。
画面の詳細については クラウドアダプタ画面 をご覧ください。
認証情報の設定
まずは認証情報を設定します。
「クラウドアダプタ>認証情報一覧>認証情報作成」から認証情報を作成します。
ここでは先ほど確認した認証情報を使用します。
認証方式により、入力項目が異なります。
共有アクセスポリシー
項目 | 入力値 |
---|---|
認証種別 | Azure IoT Hub(共有ポリシー) を選択 |
認証情報名 | azure iot hub shared |
Policy Name | device |
Shared Access Key | (控えた文字列) |
デバイス毎に発行されるアクセスポリシー
項目 | 入力値 |
---|---|
認証種別 | Azure IoT Hub(デバイスポリシー) を選択 |
認証情報名 | azure iot hub device |
Device ID | dvc-xxxxxxxxxx (マスクしています) |
Shared Access Key | (控えた文字列) |
転送先の設定
次に、転送先設定を作成します。
「転送先一覧>転送先作成」からHTTPの転送先設定を作成します。
下記のように入力し、転送先設定を作成します。
「転送先URL」には、控えておいた「ホスト名」と、設定した「デバイス ID」を入力します。
また「認証情報」は、先ほど作成した「azure iot hub shared(device)」を選択します。
「デバイス選択」は使用するデバイスを適切に選択します。
項目 | 入力値 |
---|---|
転送先サービス | Azure IoT Hub を選択 |
転送先名 | Azure IoT Hub |
転送先URL | https://CloudAdapter.azure-devices.net/devices/dvc-xxxxxxxxxx/messages/events |
認証情報 | 【Azure IoT Hub(共有ポリシー)】azure iot hub shared を選択 or 【Azure IoT Hub(デバイスポリシー)】azure iot hub device を選択 |
デバイス選択 | 使用するデバイスを選択 |
以上でコントロールパネル上の設定は完了です。
デバイスからのデータ送信と受信確認
それでは実際にデバイスからデータを送信します。
ここでは、ラズベリーパイからコマンドを使用してデータを送信します。
下記コマンドを実行し、データを送信します。
pi@raspberrypi:~ $ curl -i -X POST -H 'Content-Type: application/json' http://gw.iot.iij.jp/v1 -d '{}' HTTP/1.1 200 OK Server: nginx Date: Tue, 10 Dec 2019 07:33:09 GMT Transfer-Encoding: chunked Connection: keep-alive
コマンドを実行するとストレージアカウントの「Storage Explore」からファイルが保存されているのが確認できます。
以上で説明は終了です。
この他にも「Service Bus topic/queue」への送信や「Azure Function」の実行 等、様々なAzureのサービスと連携することができます。
是非お試し下さい。