クイック スタート:Azure Digital Twins を使用して空き部屋を探す

Azure Digital Twins サービスを使用すると、物理環境のデジタル イメージを再作成できます。 その後、環境内のイベントによって通知を受け取り、それらのイベントへの応答をカスタマイズすることができます。

このクイック スタートでは、1 組の .NET サンプルを使用して、架空のオフィス ビルをデジタル化します。 それによって、そのビルの空き部屋を探す方法を示します。 Digital Twins を使用すると、多くのセンサーを環境に関連付けることができます。 また、シミュレートされた二酸化炭素センサーを利用して、空き部屋の空気の質が最適かどうかを調べることもできます。 サンプル アプリケーションの 1 つでは、このシナリオの視覚化に役立つランダムなセンサー データを生成します。

クイックスタートの設定については、次のビデオで要約しています。

前提条件

  1. Azure アカウントをお持ちでない場合は、開始する前に無料アカウントを作成してください。

  2. このクイック スタートで実行する 2 つのコンソール アプリケーションは、C# を使って記述されています。 開発用マシンに .NET Core SDK バージョン 2.1.403 以降をインストールしてください。 .NET Core SDK がインストールされている場合は、開発用マシン上の C# の現在のバージョンを確認してください。 コマンド プロンプトで、dotnet --version を実行します。

  3. サンプル C# プロジェクトをダウンロードします。 digital-twins-samples-csharp-master.zip アーカイブを展開します。

Digital Twins インスタンスの作成

このセクションの手順に従って、ポータルで Digital Twins の新しいインスタンスを作成します。

  1. Azure portal にサインインする

  2. ホームのサイドバーを選択してから、 [+ リソースの作成] を選択します。

    ホームのサイドバーを展開し、[+ リソースの作成] を選択する

  3. Digital Twins を検索し、 [Digital Twins] を選択します。

    新しい Digital Twins インスタンスを作成するための選択

    あるいは、 [モノのインターネット] を選択してから、 [Digital Twins (プレビュー)] を選択します。

  4. [作成] を選択してデプロイ プロセスを開始します。

    リソースのデプロイを作成して確認する

  5. [Digital Twins] ウィンドウで、次の情報を入力します。

    • [リソース名] : Digital Twins インスタンスの一意の名前を作成します。

    • [サブスクリプション] : この Digital Twins インスタンスを作成するために使用するサブスクリプションを選択します。

    • [リソース グループ] : Digital Twins インスタンスのリソース グループを選択または作成します。

    • [場所] : 使用しているデバイスに最も近い場所を選択します。

      情報が入力されている [Digital Twins] ウィンドウ

  6. Digital Twins の情報を確認してから、 [作成] を選択します。 Digital Twins インスタンスが作成されるまでに数分かかる場合があります。 [通知] ウィンドウで進行状況を監視できます。

  7. Digital Twins インスタンスの [概要] ウィンドウを開きます。 [管理 API] の下のリンクに注目します。 [管理 API] の URL の形式は次のとおりです。

    https://yourDigitalTwinsName.yourLocation.azuresmartspaces.net/management/swagger
    

    この URL では、インスタンスに適用される Azure Digital Twins REST API のドキュメントが表示されます。 この API ドキュメントを読んで使用する方法については、「How to use Azure Digital Twins Swagger (Azure Digital Twins Swagger の使用方法)」を参照してください。 [管理 API] の URL をコピーし、次の形式に変更します。

    https://yourDigitalTwinsName.yourLocation.azuresmartspaces.net/management/api/v1.0/
    

    アプリケーションは、変更された URL をベース URL として使用してインスタンスにアクセスします。 この変更した URL を一時ファイルにコピーします。 これは次のセクションで必要になります。

    管理 API の概要

アプリのアクセス許可の設定

このセクションでは、サンプル アプリケーションを Azure Active Directory (Azure AD) に登録して、これが Digital Twins インスタンスにアクセスできるようにします。 既に Azure AD アプリが登録されている場合は、それをサンプルに再利用します。 このセクションで説明されているとおりにそれが構成されていることを確認します。

注意

このセクションでは、Azure AD アプリの登録手順について説明します。

  1. Azure portal で、展開可能な左側のメニューの [Azure Active Directory] を開き、 [アプリの登録] ペインを開きます。

    Azure Active Directory ペインを選択する

  2. [+ 新規登録] ボタンを選択します。

    新規登録ボタンを選択する

  3. [名前] ボックスに、このアプリ登録の表示名を入力します。

    1. [リダイレクト URI (省略可能)] セクションのテキスト ボックスに「https://microsoft.com」と入力します。

    2. Azure Active Directory アプリでどのアカウントとテナントがサポートされるかを確認します。

    3. [登録] を選択します。

    登録されたアプリ

  4. [認証] ブレードで、重要な認証構成設定を指定します。

    1. [+ プラットフォームを追加] を選択して、 [リダイレクト URI] を追加し、 [アクセス トークン] を構成します。

    2. アプリがパブリック クライアントであることを指定するには、 [はい] を選択します。

    3. Azure Active Directory アプリでどのアカウントとテナントがサポートされるかを確認します。

    パブリック クライアントの構成設定

  5. 適切なプラットフォームを選択したら、ユーザー インターフェイスの右側のサイド パネルで [リダイレクト URI][アクセス トークン] を構成します。

    1. [リダイレクト URI] は、認証要求で指定されたアドレスと一致する必要があります。

      • ローカル開発環境でホストされているアプリでは、 [パブリック クライアント (モバイルとデスクトップ)] を選択します。 [パブリック クライアント] は必ず [はい] に設定してください。
      • Azure App Service でホストされているシングルページ アプリでは、 [Web] を選択します。
    2. [ログアウト URL] が適切かどうかを確認します。

    3. [アクセス トークン] または [ID トークン] をオンにすることによって、暗黙的な許可のフローを有効にします。

    リダイレクト URI を構成する

    [構成][保存] の順にクリックします。

  6. 登録済みアプリの [概要] ペインを開き、次のエンティティの値を一時ファイルにコピーします。 これらの値は、以下のセクションでサンプル アプリケーションを構成する際に使用します。

    • アプリケーション (クライアント) ID
    • ディレクトリ (テナント) ID

    Azure Active Directory のアプリケーション ID

  7. アプリの登録の [API アクセス許可] ウィンドウを開きます。 [+ アクセス許可の追加] ボタンを選択します。 [API アクセス許可の要求] ペインで、 [所属する組織で使用している API] タブを選択し、次のいずれかを選択します。

    1. [https://login.microsoftonline.com/consumers/](Azure Digital Twins) Azure Digital Twins API を選択します。

      API または Azure Digital Twins を検索する

    2. または、Azure Smart Spaces Service を検索します。 Azure Smart Spaces Service API を選択します。

      Azure Smart Spaces の API を検索する

    重要

    表示される Azure AD API の名前と ID は、テナントによって異なります。

    • テスト テナントと顧客アカウントでは、Azure Digital Twins を検索する必要があります。
    • 他の Microsoft アカウントでは、Azure Smart Spaces Service を検索する必要があります。
  8. 選択すると、いずれかの API が同じ [API アクセス許可の要求] ペインに Azure Digital Twins として表示されます。 [Read](読み取り) ドロップ ダウンを選択し、 [Read.Write] チェック ボックスをオンにします。 [アクセス許可の追加] ボタンを選択します

    API のアクセス許可を追加する

  9. 組織の設定によっては、この API への管理者アクセスを許可するために追加の手順を実行する必要があります。 詳細については、管理者にお問い合わせください。 管理者アクセスが承認されると、 [API アクセス許可] ペインの [管理者の同意が必要] 列にアクセス許可が表示されます。

    管理者の同意の承認

    Azure Digital Twins が表示されていることを確認します。

アプリケーションのビルド

次の手順に従って、空間利用率アプリケーションをビルドします。

  1. コマンド プロンプトを開きます。 digital-twins-samples-csharp-master.zip ファイルの展開先フォルダーに移動します。

  2. cd occupancy-quickstart/src を実行します。

  3. dotnet restore を実行します。

  4. appSettings.json を編集して、次の変数を更新します。

    • ClientId: 前のセクションでメモした、Azure AD アプリ登録のアプリケーション ID を入力します。
    • Tenant: Azure AD テナントのディレクトリ ID を入力します。これも、前のセクションでメモしたものです。
    • BaseUrl: Digital Twins インスタンスの、https://yourDigitalTwinsName.yourLocation.azuresmartspaces.net/management/api/v1.0/ という形式の Management API URL。 この URL 内のプレースホルダーを、前のセクションにあるインスタンスの値に置き換えます。

    更新したファイルを保存します。

グラフのプロビジョニング

この手順では、Digital Twins 空間グラフを次のようにプロビジョニングします。

  • いくつかの空間。
  • 1 つのデバイス。
  • 2 つのセンサー。
  • カスタム関数。
  • 1 つのロール割り当て。

空間グラフは、provisionSample.yaml ファイルを使用してプロビジョニングします。

  1. dotnet run ProvisionSample を実行します。

    注意

    Device Login Azure CLI ツールを使用して、ユーザーを Azure AD に対して認証します。 Microsoft のログイン ページを使用して認証するには、ユーザーが特定のコードを入力する必要があります。 コードを入力した後、手順に従って認証します。 ユーザーは、ツールの実行中に認証する必要があります。

    ヒント

    この手順の実行時に、EXIT: Unexpected error: The input is not a valid Base-64 string ... というエラー メッセージが表示される場合は、変数が正しくコピーされていることを確認してください。

  2. プロビジョニングの手順には数分かかることがあります。 また、Digital Twins インスタンス内の IoT ハブもプロビジョニングされます。 IoT ハブで Status=Running と表示されるまで、ループ処理が行われます。

    サンプルをプロビジョニングする - Status=Running

  3. 実行の最後に、デバイス シミュレーター サンプルで使用するデバイスの ConnectionString をコピーします。 下の図で示されている文字列のみをコピーします。

    接続文字列をコピーする

    ヒント

    Azure Digital Twins グラフ ビューアーを使って、空間グラフを表示および変更できます。

コンソール ウィンドウを開いたままにして、後で使用できるようにします。

センサー データの送信

次の手順に従って、センサー シミュレーター デバイス アプリケーションをビルドして実行します。

  1. 新しいコマンド プロンプトを開きます。 digital-twins-samples-csharp-master フォルダーにダウンロードしたプロジェクトにアクセスします。

  2. cd device-connectivity を実行します。

  3. dotnet restore を実行します。

  4. appsettings.json を編集し、前記の ConnectionStringDeviceConnectionString を更新します。 更新したファイルを保存します。

  5. dotnet run を実行して、センサー データの送信を開始します。 これは、次の図に示されているように、Digital Twins に送信されます。

    デバイスの接続性

  6. このシミュレーターを実行したままにし、次の手順の操作によって結果を並べて表示できるようにします。 このウィンドウには、Digital Twins に送信される、シミュレートされたセンサー データが表示されます。 次の手順では、リアルタイムでクエリを実行して、空気の良い空き部屋を探します。

    ヒント

    この手順の実行時に、EXIT: Unexpected error: The input is not a valid Base-64 string ... というエラー メッセージが表示される場合は、DeviceConnectionString が正しくコピーされていることを確認してください。

空気の良い空き空間の検索

このセンサー サンプルでは、2 つのセンサーのランダムなデータ値をシミュレートしています。 これらは、モーションと二酸化炭素です。 空気の良い空き部屋は、室内にだれも存在しないとサンプルで定義されています。 また、二酸化炭素濃度が 1,000 ppm 未満であるとも定義されています。 この条件が満たされない場合、その空間は利用できないか、空気の質が悪いことになります。

  1. 上記のプロビジョニング手順の実行に使用したコマンド プロンプトを開きます。

  2. dotnet run GetAvailableAndFreshSpaces を実行します。

  3. このコマンド プロンプトとセンサー データ コマンド プロンプトを並べて確認します。

    センサー データ コマンド プロンプトでは、シミュレートされたモーションと二酸化炭素のデータを 5 秒ごとに Digital Twins に送信します。 もう一方のコマンド プロンプトではグラフをリアルタイムで読み取り、シミュレートされたランダムなデータに基づいて空気の良い空き部屋を探します。 最後に送信されたセンサー データに基づいて、ほぼリアルタイムで次のどちらかの状況が表示されます。

    • Room is available and air is fresh

    • Room is not available or air quality is poor

      空気の良い空き空間の取得

このクイック スタートで何が起こったのかと、どの API が呼び出されたのかを理解するには、digital-twins-samples-csharp にあるコード ワークスペース プロジェクトを Visual Studio Code で開いてください。 次のコマンドを使用します。

<path>\occupancy-quickstart\src>code ..\..\digital-twins-samples.code-workspace

チュートリアルでは、コードの詳細について説明します。 構成データを変更する方法と呼び出される API について解説しています。 Management API シリーズの詳細については、Digital Twins Swagger ページを参照してください。

https://YOUR_INSTANCE_NAME.YOUR_LOCATION.azuresmartspaces.net/management/swagger
名前 置換後の文字列
YOUR_INSTANCE_NAME お客様の Digital Twins インスタンスの名前
YOUR_LOCATION インスタンスをホストするサーバーのリージョン

または、便利な Digital Twins Swagger を参照してください。

リソースをクリーンアップする

チュートリアルでは、以下の方法の詳細について説明します。

  • 空間利用の生産性を向上させるための施設管理者用アプリケーションを構築します。
  • ビルをより効率的に運用します。

チュートリアルに進む場合は、このクイック スタートで作成したリソースをクリーンアップしないでください。 進まない場合は、このクイック スタートで作成したすべてのリソースを削除してください。

  1. サンプル リポジトリのダウンロード時に作成したフォルダーを削除します。

  2. Azure portal の左側のメニューで、 [すべてのリソース] を選択します。 次に、Digital Twins リソースを選択します。 [すべてのリソース] ウィンドウの上部にある [削除] を選択します。

    ヒント

    ご自分の Digital Twins インスタンスの削除で以前問題が発生していた場合は、サービス更新が修正と共にロールアウトされています。 ご自分のインスタンスの削除を再試行してください。

次のステップ

このクイックスタートでは、簡単なシナリオとサンプル アプリケーションを使用して、労働条件の良い空き部屋を探すために Digital Twins をどのように使用するかを示しました。 このシナリオの詳細な分析については、次のチュートリアルを参照してください。