빠른 시작: Azure Digital Twins로 사용 가능한 회의실 찾기

중요

새 버전의 Azure Digital Twins 서비스가 릴리스되었습니다. 새 서비스의 확장된 기능에 비추어 원래 Azure Digital Twins 서비스(이 설명서 집합에 설명됨)가 사용 중지되었습니다.

새 서비스에 대한 설명서를 보려면 활성 Azure Digital Twins 설명서를 방문하세요.

Azure Digital Twins 서비스를 사용하여 물리적 환경의 디지털 이미지를 다시 만들 수 있습니다. 그 후 환경 내 이벤트를 통해 알림을 받고 그에 대한 응답을 사용자 지정할 수 있습니다.

이 빠른 시작에서는 .NET 샘플 쌍을 사용하여 가상의 사무실 건물을 디지털화합니다. 해당 건물에서 사용할 수 있는 공간을 찾는 방법을 보여줍니다. Digital Twins를 사용하면 환경에 여러 센서를 연결할 수 있습니다. 이산화탄소를 측정하는 시뮬레이션된 센서를 통해 사용 가능한 회의실의 공기질이 최적 상태인지 확인할 수 있습니다. 샘플 애플리케이션 중 하나는 이 시나리오를 시각화하는 데 도움이 되는 임의의 센서 데이터를 생성합니다.

다음 비디오는 빠른 시작 설정을 요약하여 보여줍니다.

사전 요구 사항

  1. Azure 계정이 없는 경우 시작하기 전에 체험 계정을 만듭니다.

  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 instance 만들기 위한 선택 사항

    또는 사물 인터넷을 선택하고 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 설명서로 이동합니다. Azure Digital Twins Swagger 사용 방법을 읽고 이 API 설명서를 읽고 사용하는 방법을 알아봅니다. 관리 API URL을 복사한 후 다음 형식으로 수정합니다.

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

    애플리케이션은 수정된 URL을 기본 URL로 사용하여 인스턴스 액세스합니다. 수정된 이 URL을 임시 파일에 복사합니다. 다음 섹션에서 필요합니다.

    관리 API 개요

앱에 대한 권한 설정

이 섹션에서는 샘플 애플리케이션이 Digital Twins 인스턴스에 액세스할 수 있도록 샘플 애플리케이션을 Azure AD(Azure Active Directory)에 등록합니다. 이미 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에서 호스팅되는 단일 페이지 앱의 경우 을 선택합니다.
    2. 로그아웃 URL이 적절한지 확인합니다.

    3. 액세스 토큰 또는 ID 토큰을 확인하여 암시적 허용 흐름을 사용하도록 설정합니다.

    리디렉션 URI 구성

    구성을 클릭한 다음, 저장을 클릭합니다.

  6. 등록된 앱의 개요 창을 열고 임시 파일에 다음 엔터티의 값을 복사합니다. 이러한 값을 사용하여 다음 섹션에서 샘플 애플리케이션을 구성할 수 있습니다.

    • 애플리케이션(클라이언트) ID
    • 디렉터리(테넌트) ID

    Azure Active Directory 애플리케이션 ID

  7. 앱 등록을 위한 API 사용 권한 창을 엽니다. +사용 권한 추가 단추를 선택합니다. API 사용 권한 요청 창에서 내 조직이 사용하는 API 탭을 선택한 다음, 다음 중 하나를 검색합니다.

    1. Azure Digital Twins. Azure Digital Twins API를 선택합니다.

      검색 API 또는 Azure Digital Twins

    2. 또는 Azure Smart Spaces Service를 검색합니다. Azure 스마트 공간 서비스 API를 선택합니다.

      Azure Smart Spaces에 대한 검색 API

    중요

    표시되는 Azure AD API 이름 및 ID는 테넌트에 따라 다릅니다.

    • 테스트 테넌트 및 고객 계정은 Azure Digital Twins를 검색해야 합니다.
    • 다른 Microsoft 계정은 Azure Smart Spaces Service를 검색해야 합니다.
  8. API가 선택되면 동일한 API 사용 권한 요청 창에 Azure Digital Twins로 표시됩니다. 읽기 드롭다운 옵션을 선택한 다음, 읽기/쓰기 확인란을 선택합니다. 사용 권한 추가 단추를 선택합니다.

    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를 입력합니다.
    • 테넌트: 마찬가지로 이전 섹션에서 본 Azure AD 테넌트의 디렉터리 ID를 입력합니다.
    • BaseUrl: Digital Twins 인스턴스의 관리 API URL은 https://yourDigitalTwinsName.yourLocation.azuresmartspaces.net/management/api/v1.0/ 형식입니다. 이 URL의 자리 표시자를 이전 섹션의 인스턴스 값으로 바꿉니다.

    업데이트된 파일을 저장합니다.

그래프 프로비전

이 단계에서는 Digital Twins 공간 그래프에 다음을 프로비전합니다.

  • 여러 공간
  • 디바이스 1개
  • 센서 2개
  • 사용자 지정 함수
  • 역할 할당 1개

공간 그래프는 provisionSample.yaml 파일을 사용하여 프로비전됩니다.

  1. dotnet run ProvisionSample을 실행합니다.

    참고

    디바이스 로그인 Azure CLI 도구는 사용자를 Azure AD에 인증하는 데 사용됩니다. 사용자는 Microsoft 로그인 페이지에서 제공된 코드를 입력하여 인증해야 합니다. 코드를 입력한 후 인증 단계를 따릅니다. 도구가 실행 중일 때 사용자는 인증해야 합니다.

    이 단계를 실행할 때 EXIT: Unexpected error: The input is not a valid Base-64 string ... 오류 메시지가 표시되면 변수가 올바르게 복사되었는지 확인합니다.

  2. 프로비전 단계는 몇 분 정도 걸릴 수 있습니다. Digital Twins 인스턴스 내에 IoT Hub도 프로비전합니다. IoT Hub가 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을 편집하여 DeviceConnectionString을 위의 ConnectionString으로 업데이트합니다. 업데이트된 파일을 저장합니다.

  5. dotnet run 명령을 실행하여 센서 데이터 전송을 시작합니다. 다음 이미지와 같이 Azure Digital Twins로 전송됩니다.

    디바이스 연결

  6. 다음 단계 작업을 통해 결과를 나란히 놓고 볼 수 있도록 이 시뮬레이터를 실행합니다. 이 창은 Digital Twins로 전성된 시뮬레이션된 센서 데이터를 보여줍니다. 다음 단계에서는 공기가 깨끗한 가용 회의실을 실시간으로 쿼리합니다.

    이 단계를 실행할 때 EXIT: Unexpected error: The input is not a valid Base-64 string ... 오류 메시지가 표시되면 DeviceConnectionString이 올바르게 복사되었는지 확인합니다.

공기가 깨끗한 가용 회의실 찾기

센서 샘플은 두 센서의 임의 데이터 값을 시뮬레이션합니다. 두 센서는 동작 및 이산화탄소 센서입니다. 이 샘플에서 말하는 공기가 깨끗한 가용 회의실이란 아무도 없고 이산화탄소 농도가 1,000ppm 미만인 회의실이라고 정의되어 있습니다. 조건이 충족되지 않으면 공간을 사용할 수 없거나 공기질이 좋지 않은 것입니다.

  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가 호출되는지 살펴봅니다. 관리 API에 대한 자세한 내용을 보려면 Digital Twins Swagger 페이지로 이동하세요.

https://YOUR_INSTANCE_NAME.YOUR_LOCATION.azuresmartspaces.net/management/swagger
Name 다음 항목으로 교체
YOUR_INSTANCE_NAME Digital Twins 인스턴스의 이름
YOUR_LOCATION 인스턴스를 호스트하는 서버 지역

또는 간편하게 Digital Twins Swagger로 이동합니다.

리소스 정리

이 자습서에서는 다음 작업 방법을 자세히 설명합니다.

  • 시설 관리자가 시설 사용자 생산성을 높일 수 있는 애플리케이션을 빌드합니다.
  • 건물을 보다 효율적으로 운영합니다.

자습서를 계속 진행하려면 이 빠른 시작에서 만든 리소스를 지우지 마세요. 자습서를 더 이상 진행할 계획이 없으면 이 빠른 시작에서 만든 모든 리소스를 삭제하세요.

  1. 샘플 리포지토리를 다운로드할 때 생성된 폴더를 삭제하세요.

  2. Azure Portal 왼쪽 메뉴에서 모든 리소스를 선택합니다. 그런 다음, Digital Twins 리소스를 선택합니다. 모든 리소스 창의 위쪽에서 삭제를 선택합니다.

    이전에 Digital Twins 인스턴스를 삭제하는 데 문제가 있을 경우 픽스가 포함된 서비스 업데이트가 배포된 것입니다. 인스턴스 삭제를 다시 시도해 보세요.

다음 단계

이 빠른 시작에서는 간단한 시나리오와 샘플 애플리케이션을 사용하여 Digital Twins로 좋은 작업 조건의 방을 찾는 방법을 보여 줍니다. 이 시나리오에 대한 심층 분석은 다음 자습서를 참조하세요.