LoginSignup
15
15

More than 5 years have passed since last update.

Node-RED で Azure IoT Hub を使う 

Last updated at Posted at 2018-04-07

やりたかったこと

  • Node-RED で Azure IoT Hubでデータの送受信

Azure IoT Hub 用ノード

Node-REDでAzure IoT Hubをサクッと使えるノードとしては、これは良さげ。

出来ること

  • データの追加 : Azure IoT Hub
  • データの受信 : Azure IoT Hub Receiver
  • デバイスの登録 : Azure IoT Hub Registry
  • デバイス情報の取得 : Azure IoT Hub Device Twin

image.png

サンプルflow

[{"id":"c6d6217f.a9f26","type":"azureiothub","z":"9c35a71c.b648b8","name":"Azure IoT Hub","protocol":"mqtt","x":564,"y":161,"wires":[["2e441a7a.c2b8b6"]]},{"id":"ba1e7b36.0b7da8","type":"inject","z":"9c35a71c.b648b8","name":"","topic":"","payload":"{\"deviceId\":\"unibo-9\",\"key\":\"{add key}\",\"protocol\":\"mqtt\",\"data\":\"{tem: 25, wind: 20}\"}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":317,"y":151,"wires":[["c6d6217f.a9f26"]]},{"id":"2e441a7a.c2b8b6","type":"debug","z":"9c35a71c.b648b8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":796,"y":151,"wires":[]},{"id":"6d0f0a0d.6365f4","type":"azureiothubreceiver","z":"9c35a71c.b648b8","name":"Azure IoT Hub Receiver","x":314,"y":262,"wires":[["339d760f.4be77a"]]},{"id":"339d760f.4be77a","type":"debug","z":"9c35a71c.b648b8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":559,"y":275,"wires":[]},{"id":"6e32679.63e1998","type":"azureiothubdevicetwin","z":"9c35a71c.b648b8","name":"Azure IoT Hub Device Twin","x":585,"y":482,"wires":[["e5fbadf.950675"]]},{"id":"85636857.7e4fe8","type":"inject","z":"9c35a71c.b648b8","name":"","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":327,"y":466,"wires":[["6e32679.63e1998"]]},{"id":"e5fbadf.950675","type":"debug","z":"9c35a71c.b648b8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":820.5,"y":460,"wires":[]},{"id":"9e1adfdf.2b2bb","type":"azureiothubregistry","z":"9c35a71c.b648b8","name":"Azure IoT Hub Registry","x":559,"y":370,"wires":[["6c59ce7a.cd369"]]},{"id":"c7c3a364.6703","type":"inject","z":"9c35a71c.b648b8","name":"","topic":"","payload":"{\"deviceId\":\"testenode1\"}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":319.5,"y":360,"wires":[["9e1adfdf.2b2bb"]]},{"id":"6c59ce7a.cd369","type":"debug","z":"9c35a71c.b648b8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":811.5,"y":349,"wires":[]}]

Azure IoT Hub

クラウドへJSON形式のデータを送信できる。

設定項目

使用するためには、下記の2つを行う必要がある

  • Azure IoT Hubの設定
  • msg.payloadでの設定

Azure IoT Hub の設定

Azure IoT Hubの設定項目は、下記の二項目となる。

  • Protocol : amqp, amqpws, mqtt, http から選択
  • Homename : ホスト名

Node-RED 2018-04-07 22-35-13.png

Homename

ホスト名をコピペ

esp8266-pir - Microsoft Azure 2018-04-07 23-33-59.png

msg.payloadでの設定

下記の項目をJSON形式にまとめ、msg.payload経由で渡す必要がある。

  • deviceId : デバイスID
  • key : プライマリキー
  • protcol : プロトコル
  • data : 送信データ

image.png

Node-RED 2018-04-07 23-30-15.png

例えば、下記のような感じ。(サンプルから流用)

{
    "deviceId": "device146",
    "key": "FgySFuUzwtQMrlS29GRr7luoW07RNAmKcMy5oPDA8pA=",
    "protocol": "mqtt",
    "data": "{tem: 25, wind: 20}"
}

デバイスID

事前にデバイスエクスプローラーでデバイスを追加し、そのIDを設定する。

デバイス エクスプローラー - Microsoft Azure 2018-04-07 22-40-54.png

プライマリキー

デバイスのプライマリキーをコピペ。

デバイスの詳細 - Microsoft Azure 2018-04-07 22-59-11.png

プロトコル

amqp, amqpws, mqtt, http から選択可能

送信データ

JSON形式でセット

実行結果

image.png

Azure IoT Hub Receiver

クラウドからデータを受信できる。

設定項目

Azure IoT Hub Receiverで設定する項目は下記の1項目だけ。

  • connectingString : 接続文字列(プライマリキー)

Node-RED 2018-04-07 23-02-35.png

接続文字列(プライマリキー)

下記の部分をコピペ

iothubowner - Microsoft Azure 2018-04-07 22-28-37.png

実行結果

Azure IoT Hubを実行すると、Receiverでその結果を受信できる。

image.png

Azure IoT Hub Registry

デバイスを追加できる。

設定項目

使用するためには、下記の2つを行う必要がある

  • connectionStringの設定
  • msg.payloadでの設定

connectionStringの設定

Azure IoT Hub Receiverと同じく connectionStringをセットする。

msg.payloadでの設定

msg.payloadにJSON形式で作成したデバイスIDをセットする。

{
    "deviceId": "testenode1"
}

image.png

実行結果

実行すると下記の情報が得られる。

  • プライマリキー
  • セカンダリキー

Node-RED 2018-04-07 23-23-56.png

Azureポータルにもデバイスが追加されている。

デバイス エクスプローラー - Microsoft Azure 2018-04-07 23-25-22.png

注意

同じデバイス名のものは追加するとエラーになります。

Azure IoT Hub Device Twin

デバイスの状態を取得できる。

設定項目

使用するためには、下記の2つを行う必要がある

  • Azure IoT Hub Device Twinの設定
  • msg.payloadでの設定

Azure IoT Hub Device Twinの設定

Azure IoT Hub Receiverと同じく connectionStringをセットする。

msg.payloadでの設定

msg.payloadに文字列で、ターケットとなるデバイスIDをセットする。

image.png

実行結果

実行すると下記のような情報が得られる。

image.png

最後に

今回紹介したノードはほぼ説明がないので取っ付きにくいですがやりたいことはできる。
Node−REDでAzure IoT Hubを触りたい人にはおすすめです。

15
15
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
15
15