#実デバイスが無くても試せる Azure で IoT
「Azure IoT やってみたいけれど、実デバイス持ってないんだよなー」
という貴方にお勧め。
今回は実機が無くてもブラウザだけでテストできる 「Raspberry Pi オンライン シミュレーター」 を使って**「Azure IoT Hub」**と通信する方法を説明します。
基本的には、マイクロソフトの公式コンテンツ(下記URL)ですが、ちょっとココに書いていないTipsを交えて紹介します。
#Azure側 IoT Hub の用意
はじめに、Azure IoT Hub を作成し、IoT Hub 上に新しいデバイスを登録(デバイスID)しておきます。
下記のURLの手順に従って準備してください。
#Raspberry Pi オンライン シミュレーター の起動
下記のURLから、ラズパイシミュレーターを起動します。
ラズパイシミュレータ本体
https://azure-samples.github.io/raspberry-pi-web-simulator/#Getstarted
ちなみに、このラズパイシミュレータ、GitHub でソースコードが公開されていますので、中身を見てみたい方はどうぞ。
[GitHub] Azure-Samples/raspberry-pi-web-simulator
#Raspberry Pi オンライン シミュレーター の初期設定
ラズパイシミュレーターの画面右側、コーディング領域で15行目の
const connectionString = '[Your IoT hub device connection string]';
に、IoT Hub で登録したデバイスの プライマリ接続文字列(Primary Connection String) を貼り付けます。
※以下の例では**「RPISim001」**という名前でデバイスを登録しています。
const connectionString = 'HostName=iothubpaasdemo.azure-devices.net;DeviceId=RPISim001;SharedAccessKey=xxxxrxZrOHjt4E86ynH87d8EC8UNRXTMWAf1nyZxxxx=';
あとはコーディング領域の下にある**「Run」**ボタンを押すだけです。
ラズパイシミュレーターからIoT Hubへのデータ送信が成功すると、「Run」ボタンの下のコンソール ウィンドウ - コードの出力 に、次のようなJSON形式で2秒置きにデータが送信されている事が分かります。
Sending message: {"messageId":1,"deviceId":"Raspberry Pi Web Client","temperature":24.557101751054944,"humidity":79.75501992169126}
**「temperature」がシミュレートされた温度の値で、「humidity」**が湿度の値です。
一旦、ここで**「Stop」**ボタンを押してデータ送信を停止しておきます。
#Raspberry Pi オンライン シミュレーター から IoT Hub に送信されているデータを変更してみる
送信するJSONデータの「deviceId」の値を変えたい場合には、29行目の
deviceId: 'Raspberry Pi Web Client',
の'Raspberry Pi Web Client' の値を変更します。
setInterval(sendMessage, 2000);
の「2000」の値(2.0秒=2000ms)を変更します。
例えば、0.5秒(500ms)毎にデータを送信したい場合は「500」にします。
#Raspberry Pi オンライン シミュレーター から IoT Hub に送信されているデータをモニターする
次に、「Device Explorer」という Windowsアプリ(オープンソース)を使ってIoT Hubに届いたデータをモニタリングしてみます。
下記のURLから「Device Explorer」のインストーラー (SetupDeviceExplorer.msi
) をダウンロードして、使い方を確認してください。
Device Explorer のダウンロード
Device Explorer の使い方
準備ができたら、ラズパイシミュレーターの**「Run」**ボタンを押して、データ送信を開始しましょう。
Device Explorer の**「Data」タブを選択し、対象の「Device ID」** を指定した上で**「Monitor」ボタンをクリックすると、IoT Hub に届いたJSONデータを見る事ができます。
※停止させるには「Cancel」**ボタンをクリックします。
これで、ラズパイシミュレーターから IoT Hub にテストデータを送信して、実際に動作しているかどうか簡単にテストする事ができました。