yamamoWorks

.NET技術を中心に気まぐれに更新していきます

Google HomeとAzure IoT HubとRaspberry PiでTVとPS4をコントロール【Iot Hub編】

前回は「概要編」ということで、これから作る全体像を示しました。今回からは各パーツの設定や作成を行っていきます。

IoT Hub作成

最初は同じくAzureのEvent Hubで構想していたのですが、Freeプランがありデバイスにダイレクトメソッド呼び出しができるIoT Hubで作ることにします。

Azure Portalより、リソースの作成「+」ボタンで「IoT Hub」を探して「作成」
f:id:yamamoWorks:20180305221832p:plain

「名前」は公開されるURLの一部(xxxxx.azure-devices.net)になるので既に使われている名前はつけられません。 「価格とスケールティア」は 今回の用途では1日に8000メッセージを処理できる「F1 Free」で十分ですね。 後は「サブスクリプション」と「リソースグループ」を選び「作成」ボタンを押します。
f:id:yamamoWorks:20180305221828p:plain:w300

デバイス登録

次にRaspberry Piをデバイスとして登録します。 作成したIoT Hubを開き「デバイスエクスプローラー」の「+追加」ボタンを押し、任意のデバイスIDを入力して「保存」ボタンを押します。
f:id:yamamoWorks:20180306000805p:plain:w400

接続テスト

公式ドキュメントを参考に、クラウドから呼び出すことができるダイレクトメソッドを持つデバイス側のプログラムと、IoT Hub を介してデバイス側のダイレクトメソッドを呼び出すプログラムをNode.jsで作成しWindows上で実行します。 「シミュレーション対象デバイス アプリの作成」以下を手順通りに実施するだけなので詳細は省きますが、指定する接続文字列について触れておきます。

SimulatedDevice.js で指定する {device connection string} は先程ポータルで作成したデバイスの詳細にある文字列です。
f:id:yamamoWorks:20180312232222p:plain:w400

CallMethodOnDevice.js で指定する {iothub connection string} は「共有アクセスポリシー」-「service」の詳細にある接続文字列です。
f:id:yamamoWorks:20180312232605p:plain:w400

IoT Hubを介してデバイス側のメソッドを呼び出す事が出来ました。
f:id:yamamoWorks:20180312234546g:plain

次回はPS4の制御方法を解説します。