Azure
IoT

Azure IoTのチュートリアルをやってみた2

前回に続いて、Azure Machine Learningで天気予報を行うチュートリアルをやって見ました。

必要なもの

  • Azureアカウント
  • Azure Machine Learning Studioアカウント
  • 前回セットアップしたRaspberry PiとBME280センサー

作業概要

チュートリアル:Azure Machine Learning で IoT Hub からのセンサー データを使用して天気予報を行う

 1. 天気予報モデルをWebサービスとしてデプロイ
 2. IoT Hubへコンシューマーグループを追加
 3. Stream Analyticsジョブの作成・構成・実行
 4. Microsoft Azureストレージエクスプローラーで天気予報を表示

1. 天気予報モデルをWebサービスとしてデプロイ

チュートリアルの通り、Azure Machine Learning Studio1で出来合いの天気予報のモデルをWebサービスとしてデプロイします。

 1. weather prediction modelのページに移動
 2. [Open in Studio]でMachine Learning Studioのページに移動
 3. [RUN]をクリックして、モデルの手順を検証
 4. [SET UP WEB SERVICE] - [predictive Web Service]を順にクリック
 5. [Web service input]モジュールを[Score Model]モジュールの入力に接続
 6. [RUN]をクリックして、モデルの手順を検証
 7. [DEPLOY WEB SERVICE]をクリックして、モデルを Web サービスとしてデプロイ
 8. Excelをダウンロードして、[WEB SERVICE URL]と[ACCESS KEY]をメモ

2. IoT Hubへコンシューマーグループを追加

AzureのポータルでIoT Hubにコンシューマーグループを追加します。
追加する際に指定するコンシューマーグループ名は、次のStream Analytics ジョブへの入力の追加手順で必要になります。

3. Stream Analyticsジョブの作成・構成・実行

チュートリアルの通り、Stream Analytics ジョブを作成します。

 1. Stream Analytics ジョブの作成2
 2. Stream Analytics ジョブへの入力の追加
 3. Stream Analytics ジョブへの出力の追加
 4. デプロイした Web サービスを呼び出すための関数を Stream Analytics ジョブに追加
 5. Stream Analytics ジョブのクエリの構成
 6. Stream Analytics ジョブの実行

4. Microsoft Azureストレージエクスプローラーで天気予報を表示

 1. 未インストールであれば、Microsoft Azureストレージエクスプローラーをインストール
 2. Microsoft Azureストレージエクスプローラーを起動
 3. Azureアカウントにサインインしてサブスクリプションを選択
 4. Azure サブスクリプション > [ストレージ アカウント] > 自分のストレージ アカウント > [BLOB コンテナー] > 自分のコンテナーの順にクリック
 5. CSVファイルを表示

下記のようなCSVファイルが生成されていれば成功です!!

time,temperature,humidity,probabalities of rain
2018-02-10T11:15:00.7620000Z,17.669537,58.713015,0.489944100379944
2018-02-10T11:15:02.7940000Z,17.669537,58.732272,0.489944100379944
2018-02-10T11:15:04.8610000Z,17.694883,58.786674,0.489944100379944
2018-02-10T11:15:06.9250000Z,17.694883,58.748158,0.489944100379944
2018-02-10T11:15:08.9570000Z,17.694883,58.627792,0.489944100379944
2018-02-10T11:15:11.0220000Z,17.679676,58.501743,0.489944100379944
2018-02-10T11:15:13.0540000Z,17.694883,58.396677,0.489944100379944
2018-02-10T11:15:15.0990000Z,17.689814,58.40602,0.489944100379944
2018-02-10T11:15:16.1940000Z,17.664468,58.433485,0.489944100379944
2018-02-10T11:15:18.2260000Z,17.659399,58.568004,0.489944100379944
2018-02-10T11:15:20.2470000Z,17.64926,58.605941,0.489944100379944
2018-02-10T11:15:22.3650000Z,17.64926,58.687782,0.489944100379944
2018-02-10T11:15:24.3810000Z,17.64926,58.678154,0.489944100379944
2018-02-10T11:15:26.3970000Z,17.65433,58.664001,0.489944100379944

雑感

  • チュートリアルではとっても簡単に、Raspberry Piに接続したセンサーのデータをIoT Hubで受けて機械学習を利用して天気予測するシステムができましたが、実際は以下が必要そうです。まだまだ知識が足りないと痛感。。。
    • センサー出力をIoT Hubへ送るところのプログラミング(←チュートリアルではサンプルアプリを利用)
    • 機械学習の知識(←チュートリアルでは出来合いのモデルを利用)
    • 定期的に再学習してモデルを更新する仕組み(←今回やったチュートリアルの範囲外)

  1. Azure Machine Learning StudioはWeb上で機械学習ができるサービスです。Freeアカウントがあるので、無料で利用できます。以前Microsoftの無料トレーニングの時に作成したFreeアカウントがあったので、それを利用しました。 

  2. チュートリアルには記載がありませんが、ホスティング環境は[クラウド]を選択します。[Edge]を選択するとRaspberry piにジョブがデプロイされるようですが、試していません。