United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

LoRaWANとMS Azureの連携 – Part3:Azureをはじめる

本シリーズでは、LoRaWANネットワークの技術と、有用な2つのサービスThe Things Network(以下TTN)とMicrosoft Azureを連携させる方法を、チュートリアルを通して紹介していく。チュートリアルでは、下の図のシステムを構築し、温湿度センサーのデータを、LoRaゲートウェイからTTNへと送信し、TTNと連携させたMicrosoft Azure IoT Hubを利用してデータの可視化を行なう。

12_76f3ddd815c790480d9929a2159a17619b50c333.png

本シリーズは4つのパートで構成されている。
パート1では、各技術・サービスの内容を説明し、連携方法の概要を紹介した。
パート2では、LoRaゲートウェイを経由してTTNへデータを上げるための前準備として、RaspberryPi, TTN, センサデバイスのセットアップ方法を説明した。
本記事の前に、上の2つを読むことをおすすめする。

パート3では、The Things NetworkのHTTP Integration機能を利用して、Azure IoT Hubと連携する方法について、Azureへの登録・各種設定方法から順に説明していく。パートの最後では、センサデバイスから取得した温湿度データを、リアルタイムでグラフにプロットできるようにする。

 

1.Azureの設定

①Azureのアカウントを作成する。今回は無料アカウントでの利用とした。

無料アカウントであっても、

  • 最も人気のある Azure 製品への 12 か月間の無料アクセス
  • サインアップから最初の 30 日の間に使用できる ¥22,500 のクレジット
  • 25 個を超える常時無料の製品へのアクセス

が可能だ。Azure 無料アカウント FAQ | Microsoft Azure より)

azure_002_ver2_70814646d2bc1c026366d641e6e19588423d9f38.png
「無料で始める」をクリックする

azure_003_ver2_52b84a3c261543754feb375064d9ff172818aed7.png
必要項目を入力する

 

②まずはダッシュボードを作成する。ダッシュボードは、タスクの実行やリソースの監視を便利にする、デスクトップのようなワークスペースだ。
「+」のアイコンをクリックして新しいダッシュボードを作成し、ダッシュボードの名前を入力したら、「カスタマイズ完了」で完了する。

azure_004_66478a4a14b03203f013d37cd34c5fe01e99d31c.png
「+」で新しいダッシュボードを作成する

azure_005_30d016d3a937c9055866eb63cb97f0e8115515a3.png
ダッシュボードの名前を入力する

③リソースグループを作成する。Azureでは、Azure IoT Hubなど個々のサービスはリソースとして管理され、複数のリソースはグループ単位にまとめられて管理される。これがリソースグループである。
「リソースグループ」ページ中の「+ 追加」をクリックする。二つの項目に入力し、リソースグループ作成を完了する。

  • リソースグループ
    • 任意のリソースグループ名を入力
  • リージョン
    • 利用する地域を選択(画像では「東日本」を選択)

azure_006_c65241681ef1a68113f956d18328f39e70b12f72.png
「+追加」で作成開始

azure_007_ver2_97db00602c3861a84ce94f11da1e57a7cf023d76.png
必要項目を入力する

以上でAzureの基本設定は完了だ。

 

2.Azure IoT Hubの設定

Azure IoT Hub は、クラウドから IoT デバイスを管理し、センサデバイスからのデータを格納・処理できるようクラウドに取り込むための Azure サービスだ。

IoT Hubを作成して、TTNに登録したセンサデバイス情報と紐づけていこう。

Azure IoT Hubを作成する。
ページ上の検索窓から「IoT Hub」で検索・選択し、IoT Hubの作成を開始する。
「基本」で以下の必要項目を入力する。

  • サブスクリプション
    • 無料試用版
  • リソースグループ
    • 前節で作成したリソースグループを選択
  • リージョン
    • 利用する地域を選択(画像では「東日本」を選択)
  • IoT Hub名
    • 任意のHub名を入力

azure_008_a4b8353a7ab9aa726fab026d4e4c75e208c07e46.png
「IoT Hub」で検索する

azure_009_ver2_fd43009f09d49778077eee76e2f990d4bddd4dd9.png
必要項目を入力する

完了したら、「サイズとスケール」をクリックし、以下の必要項目を入力する。
あとは「確認および作成」をクリックし、作成が完了すれば、デプロイ完了のメッセージが表示される。

  • 価格とスケールティア
    • S1

azure_010_3d10675503eeb60322e1bbd794e9cfbba5154cb4.png
「サイズとスケール」についても同様に行なう

 

②Azure IoT Hub Deviceを登録する。
「IoT デバイス」から「+ 新規作成」をクリックしたら、「デバイスの作成」で必要項目を入力し、「保存」を選択してデバイス登録を完了する。

  • デバイスID
    • TTNに登録したデバイスIDを入力。デバイスIDは、TTNのアプリケーション一覧 > {利用するアプリケーション} > デバイス > {登録するデバイス} から確認できる。

azure_011_ver2_ae4ed0dd7fa0d0c355b3a754890920a83371ece6.png
「+新規作成」で作成開始

azure_012_ver4_27820288b56e21924f854644ee436f174f800a2b.png
TTNで登録したデバイスIDを、Azureの「IoT デバイス」にて入力する

 

3.連携と確認

AzureはShared Access Signature (SAS)をサポートしているため、リソースへのアクセスのセキュリティ保護ときめ細やかな管理が可能だ。
TTNとIoT Hubを連携させるためには、TTNに登録したデバイス情報をIoT HubデバイスIDレジストリに追加し、接続文字列を生成する必要がある。これにより、デバイスからIoT Hubまでへの安全な接続を確立することができる。

本節の工程では、IoT Hubでデバイスを管理するためのWindows専用グラフィカルツールであるDevice Explorerを使用する。下記のリンク先で「SetupDeviceExplorer.msi」インストーラーのダウンロードリンクをクリックし、ダウンロード・インストールしよう。

以降は、DeviceExplorer.exeをタスクバーにピン止めしておくことをおすすめする。

①作成したIoT Hubのページの「共有アクセスポリシー」>「iothubowner」から、接続文字列プライマリキーをコピーする。

azure_015_ver2_46c4143a0ad0a785bc1ff1a19a986c9e9d669f9c.png
共有アクセスポリシーを開く

azure_016_ver2_9c08e213cf5cab84bcc4a2641e4c1397748d7932.png
iothubownerから接続文字列プライマリキーをコピーする

②Device Explorerを開き、「IoT Hub Connection String」に前項でコピーした接続文字列を入力する。入力後、「Update」, 「Generate SAS」の順にクリックしてSASトークンを発行する。azure_017_ver2_18f85211bf26ea95445ca4f7acc9883fcef72128.png
SASトークンを発行する

③Azureのリソースへの安全なアクセスを保証するには、SASトークンは常にHTTPを使用して渡される必要があるため、TTNのHTTP Integration機能を利用する。
まずTTNの「アプリケーション一覧」>「(今回使用するアプリケーション)」>「インテグレーション」を開き、「HTTP Integration」を選択する。

azure_020_ver2_bd8bb2cd67a12b6c575f1de1fbff3dbd0f7a7f8f.png
「HTTP Integration」を選択する

④HTTP Integrationの設定を行なう。以下の必要項目を入力し、変更を保存する。これでセンサデバイス、TTN、Azure IoT Hubが紐づけられる。

  • プロセスID
    • 任意のIDを入力
  • Access Key
    • default key
  • URL
    • https://{IoT Hubの名前}.azure-devices.net/devices/{デバイスの名前}/messages/events?api-version=2018-06-30
  • Method
    • POST
  • Authorization
    • 2つ前の項で生成したSASトークンを使用する。下はテンプレート
    • SharedAccessSignature sr={IoT Hubの名前}.azure-devices.net%2Fdevices%2F{デバイスの名前}&sig=xxxxxxxxx&se=xxxxxxxxxxx
  • Custom Header Name
    • Content-Type
  • Custom Header Value
    • application/json

azure_020andHalf_ver2_e8d3b95bf7fb63b5f80ac6df6c9737ff90c7ab43.png
必要項目を入力

⑤Device Explorerで、サービス同士が連携されていることを確認する。
「Data」タブに移動して「Device ID」からデバイスを選択し、「Monitor」をクリックする。これまでの設定が正しく完了していれば、下の画像のように、Even Hub Dataウィンドウ中にTTNからのデータログが表示される。

azure_%E7%95%AA%E5%A4%9602_ver21_1cfe438f87fab2b93433990777fe6c0a4a7186a6.png
データログが正常に表示された状態

一方、この工程で下の画像のようなエラーが表示されたことがあった。
ただし筆者の場合、このエラーが表示された際にもこれ以降の作業に支障が生じたことはなかった。
azure_021_ver2_ee18001c568bf7c0a39db09f34018b1f3464c39f.png
エラー

以上で、サービス間の連携を確立できた。これでいよいよ、データの視覚化が可能になる。

4.Time Series Insightsで可視化

Time Series Insightsは、センサデバイスから送信される時系列データを保存・視覚化できるようにするサービスだ

最後に、このサービスを利用して温湿度センサーの情報を視覚化する。

①まずはTime Series Insights環境を作成する。
ページ上の検索窓から「Time Series Insights 環境」で検索・選択し、環境の作成を開始する。

azure_023_ver2_39e101cb8ee18fd5de8f78771bc627cae6341d51.png
Time Series Insightsを検索する

「基本」で入力する項目は以下の通りだ。

  • 環境名
    • 任意の名前
  • サブスクリプション
    • 利用するサブスクリプションを選択
  • リソースグループ
    • 所属させるリソースグループを選択
  • 場所
    • 環境を展開するリージョンを選択

    • S1
  • キャパシティ
    • 1

azure_024_ver2_217411f226a43e10c5858883030ff598da8b744c.png
必要項目を入力する

「イベントソース」では以下の項目を入力する。

  • イベントソースを作成しますか?
    • はい
  • 名前
    • 任意の名前
  • ソースの種類
    • IoT Hub
  • ハブを選択
    • Select Existing
  • サブスクリプション
    • 利用するサブスクリプション
  • IoT Hub name
    • 利用するIoT Hub名を選択
  • IoT Hub access policy名
    • iothubbowner
  • IoTハブコンシューマグループ
    • リストから選択するか、新しいグループを作成する

「確認と作成」をクリックし、環境作成を完了する。

azure_025_ver2_0370e14b974d716143496c563315ca266109035f.png
「イベントソース」も同様に入力する

データアクセスポリシーを確認する。
ホーム > Time Series Insights環境 > データアクセスポリシー で、自身のアカウントが登録されているか確認する。登録されていない場合は、「ユーザ役割の選択」からアカウントを選択し、「ロールの選択」で「Reader」および「Contributor」にチェックを入れて登録を完了する。

azure_028_ver2_129d64a67c48c7060b3515a0443153c8bc7617cf.png
すでに登録されていれば、自身のアカウントは図のように表示される

③Time Series Insights環境 から Time Series InsightsエクスプローラのURLをクリックする。

azure_030_ver2_89e1cfbdd02056f704797b66cdca1077d1eed2e8.png
赤枠内のURLからTime Series Insightsのページに移動する

 

④Times Series Insights のページで温度・湿度(「payload.fields.Humidity」および「payload.fields.Temperature」)を選択する。これまでの作業を正しく完了していれば、温湿度データのプロットが表示されるはずだ。

azure_031_ver2_88ef2537957130419850c03fd49484e0894f9c72.png
Time Series Insightsのプロットの様子

図中のある時刻で湿度と温度が急激に上昇しているが、これは筆者が温湿度センサを握り温湿度が上昇するか試したためである。結果、温湿度の変化がTime Series Insightに反映されていることが確かめられた

以上、Azure IoT Hubを利用した温湿度データの可視化について説明した。
パート1からパート3にかけて解説したAzure IoT Hubを利用したチュートリアルを通して、LoRaWANネットワーク・TTN・Azureへの理解が深まったのであれば幸いだ。

パート4では、IoT Central ブリッジを利用して、TTNとAzure IoT Centralを連携させる方法について説明する。

パート1はこちら

パート2はこちら

パート4はこちら

T.Ono さんはまだ自己紹介を入力されていません...