LoginSignup
11
7

More than 3 years have passed since last update.

Azure IoT Hubで受け取ったデータを利用する方法(Azure function)

Last updated at Posted at 2020-05-27

概要

 Azure IoT Hub でエッジデバイスからデータをAzureに送信することに成功したのですが、そこからどう使うかかを模索した話です。

【前回記事】
M5Stackとクラウドを直接連携してみる(Azure IoT hub入門)

今回はこちらを参考に、「Azue function」を使用して、Azure IoT Hubで取得したデータを利用することができました。

Azure IoT HubとAzure functionを接続

 Azure Functionを使う準備をしていきます。Azure portalを開き、Azure IoT Hubと同じリソースグループに、関数アプリを追加します。

image.png

関数アプリを作成できたらリソースに入り、関数を作っていきます。
image.png

画面右側に関数のテンプレート選択が現れるので、「IoT Hub」を選択します。
image.png

 関数テンプレート作成時に初期設定を行います。名前は適当。Event Hub connectionをIoT Hubにします。この時、IoT Hubのリソースが作成済みでないといけません。
image.png

 関数作成後、次のような画面となれば作成完了です。
image.png

接続確認

 画面左の欄から、「コードとテスト」を選択します。次のようにIoT Hubからメッセージを受け取ったら、コンソールログに出力するコートになっています。
image.png

 IoT Hubへメッセージを送るデバイスを起動し、次のようにログにメッセージが表示されれば接続Okです!
image.png

 例えば、次のようにするとM5Stackから送信された温度データをログに表示できます。

module.exports = function (context, IoTHubMessages) {
//    context.log(`JavaScript eventhub trigger function called for message array: ${IoTHubMessages}`);

    IoTHubMessages.forEach(message => {
        context.log(`Processed message: ${message.Temperature.toFixed(1)}`);
    });

    context.done();
};

 

おわりに

 この方法は特に回りくどい事せずことをせず、設定するのみだけなので簡単かなと思います。
ただし、あまりに頻繁にデータを送信していると課金になるかもしれないので気を付けましょう。

参考

Azure Functions の Azure IoT Hub トリガー
Azure IoT Hub と Windows 10 IoT Core とRaspberry Pi 3 Model B+ とでテレメトリーの収集をしてみた
IoT Hub メッセージ ルーティングを使用して device-to-cloud メッセージを別のエンドポイントに送信する

11
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
7