Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

【Azure】【MESH】【IoT Hub】MESH SDKからREST APIでIoT Hubに温度を送信してみる その2

前回、Azure IoT Hubの作成からSASの取得までを行いました。

今回は構成した情報を元にMESH SDKを用いて、MESHからIoT Hubへのデータ送信までを書いていきます。

MESH SDKの作例は以下を参照してもらえるといいと思います。

MESH SDK Reference Manual

https://meshprj.com/sdk/doc/ja/

(ただ、ちょっと情報不足感。もうちょっと色々と作例を示してほしいところ……。)

MESH SDKソースコードJavaScript

まず、今回のソースコードをざっくりとお伝えします。

今回は、MESHボタンとMESH温度・湿度を利用します。

ボタンが押されたら、温度を測定して、自作のMESH SDKに渡し、SDK内部でajaxを使ってIoT Hubへ送信するという感じのものです。

f:id:sugimomoto:20170501151606p:plain

MESH SDKについては、私もまだまだ勉強中ですが、いくつかポイントがあるかなぁと思います。

その一つのポイントが、MESH タグからの「インプット」今回で言えば温度・湿度の部分ですが、この値は「messageValue」というオブジェクトの中に入ってきます。

オブジェクトにはMESHタグの各種パラメータとともに温度、湿度が渡ってきます。

ただ、messageValueのそれぞれのValueを格納しているKey名が何なのか、なぜかSDK Manualをあさっても出てきませんでした……。

一応

温度が「temperature」

湿度が「humidity」

です。

他のMESHタグはわからないので、logメソッドで実行ログが出力できるのを利用して、虱潰しに漁るしかなさそうです。

プロパティはまだ「properties」オブジェクトに自分が指定したKeyで入ってくるのでわかりやすいですね。

以下が今回私の方で作成したJSです。

なお、上のJSを組み込んだjsonも用意しているので、今回はそれを取り込む方法ベースで参考までですが、紹介していきます。

MESH SDKの登録

まずは、MESH SDKの登録が必要です。

以下のサイトにアクセスして、「Start using the MESH SDK」をクリックして、MESH SDKのアカウントでログインします。

meshprj.com

f:id:sugimomoto:20170501151616p:plain

アカウントが無い場合は、「Create New Account」から新しく登録してください。特に料金はかからないです。

f:id:sugimomoto:20170501151621p:plain

f:id:sugimomoto:20170501151624p:plain

続いて、カスタムタグを登録します。

以下のgit hub に import可能なjsonを配置しておきました。

プロパティをいじってもらえれば、自身のIoT Hubへ接続可能です。

「Create New Tag」をクリックして

f:id:sugimomoto:20170501151628p:plain

「Imoport」をクリック

f:id:sugimomoto:20170501151631p:plain

Git HubのJsonを貼り付けて、「Load JSON」をクリック

f:id:sugimomoto:20170501151635p:plain

各種プロパティのデフォルトValueに必要な情報を入力してください。

f:id:sugimomoto:20170501151638p:plain

MESH で設定を追加

あとは、iPhone用などのMESHアプリでカスタムタグを利用したレシピを作成していきます。

f:id:sugimomoto:20170501151643p:plain

カスタムタグを登録する場合は、メニューのSDKをタップして、ログインしておきます。

f:id:sugimomoto:20170501151647p:plain

カスタムの「追加」ボタンからカスタムタグを追加することができるので、以下のような感じで作っておきます。

f:id:sugimomoto:20170501151651p:plain

各プロパティはここから変更することもできます。

f:id:sugimomoto:20170501151656p:plain

DeviceExplorerを使って動作確認

送信したデータはDevice Explorerのモニタリング機能を使うことで確認できます。

DataタブでDevice IDを選択して、Monitorをクリック。

Monitorが開始されたあとにMESHレシピを実行すれば、Event Hub Dataのところに送信されたJSONが表示されていきます。

f:id:sugimomoto:20170501152552p:plain

所感

はじめてIoTらしいことをした今回の投稿ですが、IoTよりもMESH SDK部分にずいぶん引きずられてしまったかなぁといったところです。

やっぱり今度はRaspberry PiWindows 10 IoT Coreでリベンジしたいところですねぇ。