Armadillo-IoT A6でNode.jsを使用して、IoT Hubから遠隔操作してみました。
手順
1.Azure IoT Hub作成
クイック スタート: IoT ハブに接続されたデバイスを制御するを参考に、IoT Hubの作成とデバイスの登録を行い、デバイス接続文字列をメモしておきます。
2.Node.jsのインストール
Armadillo-640でNode.jsを使ってみるを参考に、Node.jsをインストールします。
3.サンプルアプリケーションのダウンロード
azure-iot-samples-nodeから、サンプルアプリケーションをダウンロードします。
# git clone https://github.com/Azure-Samples/azure-iot-samples-node.git
4.サンプルアプリケーションの編集
「~/azure-iot-samples-node-master/iot-hub/Quickstarts/simulated-device-2」の「SimulatedDevice.js」に、デバイス接続文字列を追加します。
(省略)
// Using the Azure CLI:
// az iot hub device-identity show-connection-string --hub-name {YourIoTHubName} --device-id MyNodeDevice --output table
var connectionString = '{ここにデバイス接続文字列を追加}';
(省略)
5.モジュールのインストール
「~/azure-iot-samples-node-master/iot-hub/Quickstarts/simulated-device-2」で下記コマンドを実行し、サンプルアプリケーションの動作させるために必要なモジュールをインストールします。
# cd ~/azure-iot-samples-node-master/iot-hub/Quickstarts/simulated-device-2
# npm install
6.Node.jsを実行
下記コマンドでサンプルアプリケーションを実行すると、1秒毎にランダムに生成したテレメントリをIoT Hubに送信しています。
# node SimulatedDevice.js
7.IoT Hubからの制御
Azure Portalにログインをして、IoT Hubを開き、「IoT デバイス」タブから登録したデバイスを選択してダイレクトメゾットを開き、下記の設定でメゾットを呼び出してみます。
[メゾット名]SetTelemetryInterval
[ペイロード]10
このようにダイレクトメゾットを実行すると、Armadilloで動作しているSimulatedDevice.js内のfunctionが呼び出さて、テレメントリの送信間隔を1秒から10秒に変更する事ができました。
今回はサンプルアプリケーションを使用しましたが、予め独自のfunctionを作り込んで置く事で、IoT HubからArmadilloを遠隔制御する事が出来ます。