Morning Girl

Windows, C#, .NET, Dynamics CRM etc..

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

以前のBlogでConnected Field Serviceを紹介したんですが、

kageura.hatenadiary.jp

せっかくなのでちゃんとIoT Hubらしく使いたいと思って、MESHタグを買っていました。

f:id:sugimomoto:20170501150810p:plain

知らない方は、こちらからどうぞ。

meshprj.com

このMESHなんですが、標準でもいろいろ遊べるんですけど、SDKを利用するとJavascriptを使った拡張が行えるようになっていて、しかもajaxを使ってWEB APIに接続できるように仕込むこととかできるんですね!

なので、IoT HubのRESTエンドポイントを利用して、MESHで取得した温度をIoT Hubに流してみようというのが、今回の趣旨になります。

なお、デバイス登録はIoT Hub上でやってしまいます。デバイス登録もMESHからできるようにすれば、いいっちゃいいんですが、そんなにMESHが無いので、、、。

IoT Hubの作成

なにはともあれ、まずはIoT Hubの作成です。

今回はあまりIoT Hubに関して詳しい説明をしません。というか自分がまだまだIoT Hubの知識が薄いですので、また今度。

とりあえず Azure でIoT Hubを新しく作ります。

f:id:sugimomoto:20170501150829p:plain

各プロパティについては、もうちょっと別立てで整理したいので、今回は既定値でそのまま作っちゃいます。

f:id:sugimomoto:20170501150834p:plain

IoT Hubを構成したら、デバイスの登録を行います。

「Device Explorer」→「新規」をクリックし、「Device ID」としてデバイスの一意名称を指定して、保存をクリックします。

このデバイスIDは後ほどMESHからREST APIを使ってリクエストを投げる際に使用します。

f:id:sugimomoto:20170501150839p:plain

あとは、IoT hubに接続する際にSASが必要になるので、そのもとになる接続文字列を取得しておきます。

本来なら、デバイス用とかに分けるのですが、今回はDevice ExplorerでMESHから登録されたデータの監視もしたいので、権限が強いiothubownerを使います。

「共通アクセスポリシー」→「iothubowner」を選択して、「接続文字列-プライマリキー」を控えておきます。

f:id:sugimomoto:20170501150843p:plain

以上でIoT Hub側の準備は完了です。

SASの作成

続いてSASの作成を行います。

SASの作成やデバイスの接続状況をモニタリングするのに便利なツールがMSから提供されているので、そちらを使いましょう。

以下のGit Hubからダウンロードできます。

github.com

「tools\DeviceExplorer」にVisual Stuido ソリューションファイルがありますので、それを立ち上げてビルド・デバッグしてDevice Explorerを立ち上げます。

ConfigurationタブのConnection Infomationに先程取得した接続文字列を貼り付けて、Generate SASをクリックすると、SASが生成されます。

これをMESHで使用します。

f:id:sugimomoto:20170501150853p:plain

今回はとりあえずここまで。

次回MESH SDKの登録から実際の動作確認を行います。

参考

azure-recipe.kc-cloud.jp

docs.microsoft.com

github.com