ブログ

Armadillo-IoT A6:Node.jsを使用してIoT Hubから遠隔操作してみる

at_yukari.hara
2021年12月13日 11時29分

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を遠隔制御する事が出来ます。