デバイス シミュレーション ソリューション アクセラレータの概要
クラウドベースの IoT ソリューションでは、温度、場所、状態などのテレメトリを送信するために、ご自分のデバイスをクラウド エンドポイントに接続します。 このテレメトリをご自分のソリューションで使用して、アクションを実行したり、分析情報を引き出したりできます。
IoT ソリューションを開発するプロセスで不可欠なものは、実験とテストです。 シミュレーションは、このプロセス中、常に重要なツールです。 デバイス シミュレーションを使用して、以下を実行できます。
- プロトタイプを短時間で作動させた後、シミュレートされたデバイスの動作をすぐに調整して反復処理を行うことができます。 このプロセスによって、高価なハードウェアに投資する前に、アイデアの有効性を実証できます。 Web UI を使用してカスタム デバイスを作成し、プロトタイプ デバイスを数秒で生成できます。
- 実際のデバイスの動作をシミュレートすることで、デバイスからソリューションまで期待どおりにソリューションが機能することを検証します。 JavaScript を使用して複雑なデバイスの動作をスクリプト化して、現実的なシミュレートされたテレメトリを生成できます。
- 通常時、ピーク時、およびピーク時を超える負荷条件をシミュレートすることによって、ソリューションのスケール テストを行います。 スケール テストは、ソリューションを実行するために必要な Azure リソースの適切なサイズを判断するためにも有用です。
デバイス シミュレーションを使用して、実際のデバイスをシミュレートするデバイス モデルを定義できます。 このモデルには、メッセージ形式、ツインのプロパティ、およびメソッドが含まれます。 JavaScript を使用して複雑なデバイスの動作をシミュレートすることもできます。
任意の IoT ハブに接続されている 1 台から数千台のデバイスに対するシミュレーションを実行できます。 テストに役立つように、必要に応じて IoT ハブとデバイス シミュレーションをスタンドアロン環境にデプロイできます。
デバイス シミュレーションは無料です。 ただし、デバイス シミュレーションはクラウド上の Azure サブスクリプション内にデプロイされ、Azure リソースを消費します。 デバイス シミュレーションが要件に合わない場合は、コピーして修正するためのソース コードを GitHub から入手することもできます。
サンプル シミュレーション
デバイス シミュレーションをデプロイすると、いくつかのサンプル シミュレーションとサンプル デバイスが取得されます。 これらのサンプルを使用して、デバイス シミュレーションの使用方法を確認できます。 最初に、サンプル シミュレーションを実行します。 用意されている多数のサンプル デバイスのいずれかを使用して独自のシミュレーションを作成することもできます。
カスタムのシミュレートされたデバイス
デバイス シミュレーションを使用して、シミュレーションで使用するカスタム デバイス モデルを作成できます。 たとえば、温度と湿度のテレメトリを送信する新しい冷蔵庫デバイス モデルを定義できます。 カスタムのシミュレートされたデバイスは、テレメトリの値がランダムに増減する単純なデバイスの動作に最適です。
高度なシミュレートされたデバイス
デバイスが送信するテレメトリ値を細かく制御する必要がある場合は、高度なデバイス モデルを使用できます。 高度なデバイス モデルでは、送信されるテレメトリ値を操作するための JavaScript のサポートが可能です。 たとえば、炎天下に駐車している車の車内温度をシミュレートできます。この場合、外気温が上昇すると、車内温度が指数関数的に上昇します。
高度なデバイス モデルを使用して、JSON デバイス定義ファイルと対応する JavaScript ファイルで構成される独自のデバイス モデルを作成してアップロードすることができます。
高度なデバイス モデルを使用して、以下を実行できます。
- テレメトリの種類と共に、デバイスから送信されるメッセージの形式を指定します。
- カスタム スクリプトを使用して、一定時間デバイスの状態を保持するテレメトリ値を生成します。
- カスタム スクリプトを使用して、シミュレートされたデバイスがメソッドにどのように応答するかを指定します。
次のステップ
この記事では、デバイス シミュレーション ソリューション アクセラレータとその機能について説明しました。 ソリューション アクセラレータをデプロイするには、GitHub リポジトリにアクセスします。