다음을 통해 공유


자습서: 시뮬레이션된 디바이스 데이터 생성

적용 대상:예 아이콘 IoT Edge 1.1

중요합니다

IoT Edge 1.1 지원 종료 날짜는 2022년 12월 13일이었습니다. 이 제품, 서비스, 기술 또는 API의 지원 여부에 대해 자세한 내용을 보려면 Microsoft 제품 수명 주기를 확인하세요. 최신 버전의 IoT Edge로 업데이트하는 방법에 대한 자세한 내용은 업데이트 IoT Edge를 참조하세요.

이 문서에서는 기계 학습 학습 데이터를 사용하여 Azure IoT Hub에 원격 분석을 보내는 디바이스를 시뮬레이션합니다. 소개에서 설명한 대로 이 자습서에서는 Turbofan 엔진 성능 저하 시뮬레이션 데이터 집합 을 사용하여 학습 및 테스트를 위해 비행기 엔진 집합의 데이터를 시뮬레이션합니다.

실험적 시나리오에서는 다음을 알고 있습니다.

  • 데이터는 여러 다변량 시계열로 구성됩니다.
  • 각 데이터 집합은 학습 및 테스트 하위 집합으로 나뉩니다.
  • 각 시계열은 각기 다른 엔진에서 생성됩니다.
  • 각 엔진은 초기 마모 및 제조상의 차이를 가진 다양한 수준에서 시작합니다.

이 자습서에서는 단일 데이터 집합(FD003)의 학습 데이터 하위 집합을 사용합니다.

실제로 각 엔진은 독립적인 IoT 디바이스가 됩니다. 인터넷에 연결된 터보팬 엔진 컬렉션을 사용할 수 없다고 가정하면 이러한 디바이스에 대한 소프트웨어 스탠드인을 빌드합니다.

시뮬레이터는 IoT Hub API를 사용하여 IoT Hub에 가상 디바이스를 프로그래밍 방식으로 등록하는 C# 프로그램입니다. 그런 다음 NASA에서 제공하는 데이터 하위 집합에서 각 디바이스에 대한 데이터를 읽고 시뮬레이션된 IoT 디바이스를 사용하여 IoT Hub로 보냅니다. 자습서의 이 부분에 대한 모든 코드는 리포지토리의 DeviceHarness 디렉터리에서 찾을 수 있습니다.

DeviceHarness 프로젝트는 다음 네 가지 클래스로 구성된 C#으로 작성된 .NET Core 프로젝트입니다.

  • 프로그램: 사용자 입력 및 전반적인 조정을 처리하는 실행을 위한 진입점입니다.
  • TrainingFileManager: 선택한 데이터 파일을 읽고 구문 분석하는 역할을 담당합니다.
  • CycleData: 메시지 형식으로 변환된 파일의 단일 데이터 행을 나타냅니다.
  • TurbofanDevice: 데이터에서 단일 디바이스(시계열)에 해당하는 IoT 디바이스를 만들고 데이터를 IoT Hub로 전송하는 작업을 담당합니다.

이 문서에 설명된 작업은 완료하는 데 약 20분이 소요됩니다.

이 단계의 작업에 해당하는 실제 작업은 디바이스 개발자 및 클라우드 개발자가 수행할 가능성이 높습니다.

자습서의 이 섹션에서는 다음 방법을 알아봅니다.

  • 외부 프로젝트를 개발 환경에 통합합니다.
  • 샘플 DeviceHarness 프로젝트를 사용하여 시뮬레이션된 IoT 디바이스 데이터를 생성합니다.
  • IoT Hub에서 생성된 데이터를 봅니다.

필수 조건

이 문서는 IoT Edge에서 Azure Machine Learning을 사용하는 방법에 대한 자습서 시리즈의 일부입니다. 시리즈의 각 문서는 이전 문서의 작업을 기반으로 합니다. 이 문서에 직접 도착한 경우 시리즈의 첫 번째 문서를 방문하세요.

Visual Studio Code 구성 및 DeviceHarness 프로젝트 빌드

  1. 개발 VM에 대한 원격 데스크톱 세션을 엽니다.

  2. Visual Studio 코드에서 폴더를 C:\source\IoTEdgeAndMlSample\DeviceHarness 엽니다.

  3. 이 컴퓨터에서 처음으로 확장을 사용하므로 일부 확장은 해당 종속성을 업데이트하고 설치합니다. 확장을 업데이트하라는 메시지가 표시될 수 있습니다. 그렇다면 창 다시 로드를 선택합니다.

    출력 창에 OmniSharp 오류가 표시되면 C# 확장을 제거해야 합니다.

  4. DeviceHarness에 필요한 자산을 추가하라는 메시지가 표시됩니다. 예를 선택하여 추가합니다.

    • 알림이 표시되는 데 몇 초 정도 걸릴 수 있습니다.
    • 이 알림을 놓친 경우 오른쪽 아래 모서리에 있는 벨 아이콘을 확인합니다.

    VS Code 확장 팝업

  5. 복원을 선택하여 패키지 종속성을 복원합니다.

    VS Code 복원 프롬프트

    이러한 알림을 받지 못하면 Visual Studio Code를 닫고, bin 및 obj 디렉터리를 C:\source\IoTEdgeAndMlSample\DeviceHarness삭제하고, Visual Studio Code를 열고, DeviceHarness 폴더를 다시 엽니다.

  6. 환경이 제대로 설정되어 있는지 검증하려면, 빌드를 트리거하거나 Ctrl + Shift + B, 또는 터미널에서 실행 빌드 작업을 실행하세요.

  7. 실행할 빌드 작업을 선택하라는 메시지가 표시됩니다. 빌드를 선택합니다.

  8. 빌드가 실행되고 성공 메시지가 출력됩니다.

    빌드 성공 출력 메시지

  9. 터미널>에서 기본 빌드 작업 구성하기...를 선택하고 프롬프트에서 빌드를 선택하여 이 빌드를 기본 빌드 태스크로 만들 수 있습니다.

IoT Hub에 연결하고 DeviceHarness 실행

이제 프로젝트 빌드가 있으므로 IoT Hub에 연결하여 연결 문자열에 액세스하고 데이터 생성 진행률을 모니터링합니다.

Visual Studio Code에서 Azure에 로그인

  1. Visual Studio Code에서 명령 팔레트를 열어 Ctrl + Shift + P 또는 보기>명령 팔레트로 Azure 구독에 로그인합니다.

  2. Azure: 로그인 명령을 검색합니다.

    브라우저 창이 열리고 자격 증명을 묻는 메시지가 표시됩니다. 성공 페이지로 리디렉션되면 브라우저를 닫을 수 있습니다.

IoT Hub에 연결하고 허브 연결 문자열 가져오기

  1. Visual Studio Code 탐색기의 아래쪽 섹션에서 Azure IoT Hub 프레임을 선택하여 확장합니다.

  2. 확장된 프레임에서 IoT Hub 선택을 클릭합니다.

  3. 메시지가 표시되면 Azure 구독을 선택한 다음, IoT Hub를 선택합니다.

  4. 더 많은 작업을 수행하려면 Azure IoT Hub 오른쪽에 있는 ...를 클릭합니다. IoT Hub 연결 문자열 복사를 선택합니다.

    IoT Hub 연결 문자열 복사

DeviceHarness 프로젝트 실행

  1. 터미널 보기를> 선택하여 Visual Studio Code 터미널을 엽니다.

    프롬프트가 표시되지 않으면 Enter 키를 누릅니다.

  2. 터미널에 dotnet run 입력합니다.

  3. IoT Hub 연결 문자열에 대한 메시지가 표시되면 이전 섹션에서 복사한 연결 문자열을 붙여넣습니다.

  4. Azure IoT Hub 디바이스 프레임에서 새로 고침 단추를 클릭합니다.

    IoT Hub 디바이스 목록 새로 고침

  5. 디바이스가 IoT Hub에 추가되고 디바이스가 녹색으로 표시되어 해당 디바이스를 통해 데이터가 전송되고 있음을 나타냅니다. 디바이스가 IoT Hub로 메시지를 보낸 후 연결을 끊고 파란색으로 표시됩니다.

  6. 모든 디바이스를 마우스 오른쪽 단추로 클릭하고 기본 제공 이벤트 엔드포인트 모니터링 시작을 선택하여 허브로 전송된 메시지를 볼 수 있습니다. 메시지는 Visual Studio Code의 출력 창에 표시됩니다.

  7. Azure IoT Hub 출력 창을 클릭하여 모니터링을 중지하고 기본 제공 이벤트 엔드포인트 모니터링 중지를 선택합니다.

  8. 애플리케이션이 완료될 때까지 실행하도록 두세요. 이 과정에는 몇 분 정도 걸립니다.

IoT Hub에서 작업 확인

DeviceHarness에서 보낸 데이터는 IoT Hub로 이동하여 Azure Portal에서 확인할 수 있습니다.

  1. Azure Portal을 열고 이 자습서에 대해 만든 IoT Hub로 이동합니다.

  2. 왼쪽 창 메뉴의 모니터링에서 메트릭을 선택합니다.

  3. 차트 정의 페이지에서 메트릭 드롭다운을 클릭한 다음, 목록을 아래로 스크롤하여 라우팅: 스토리지에 전달된 데이터를 선택합니다. 차트는 데이터가 스토리지로 라우팅된 시점의 급증을 보여 줍니다.

    스토리지에 데이터가 배달될 때의 급증을 보여 줍니다.

Azure Storage에서 데이터 유효성 검사

방금 IoT Hub로 보낸 데이터는 이전 문서에서 만든 스토리지 컨테이너로 라우팅되었습니다. 스토리지 계정의 데이터를 살펴보겠습니다.

  1. Azure Portal에서 스토리지 계정으로 이동합니다.

  2. 스토리지 계정 탐색기에서 Storage Explorer(미리 보기)를 선택합니다.

  3. 스토리지 탐색기에서 Blob 컨테이너를 선택한 다음 devicedata.

  4. 콘텐츠 창에서 IoT Hub 이름에 대한 폴더를 클릭한 다음 연도, 월, 일 및 시간을 클릭합니다. 데이터가 기록된 시간(분)을 나타내는 여러 폴더가 표시됩니다.

    Blob Storage에서 폴더 보기

  5. 해당 폴더 중 하나를 클릭하여 파티션에 해당하는 0001 레이블이 지정된 데이터 파일을 찾습니다.

  6. 파일은 Avro 형식으로 작성됩니다. 이러한 파일 중 하나를 두 번 클릭하여 다른 브라우저 탭을 열고 데이터를 부분적으로 렌더링합니다. 프로그램에서 파일을 열라는 메시지가 표시되면 VS Code를 선택하면 올바르게 렌더링됩니다.

  7. 지금 데이터를 읽거나 해석할 필요가 없습니다. 우리는 다음 문서에서 그것을 할 것입니다.

리소스 정리

이 자습서는 각 문서가 이전 문서에서 수행한 작업을 기반으로 빌드되는 집합의 일부입니다. 최종 자습서를 완료할 때까지 리소스를 정리해 주세요.

다음 단계

이 문서에서는 .NET Core 프로젝트를 사용하여 가상 IoT 디바이스 집합을 만들고 이를 통해 IoT Hub 및 Azure Storage 컨테이너로 데이터를 보냈습니다. 이 프로젝트는 실제 IoT 디바이스가 데이터를 IoT Hub로 보내고 이후 큐레이팅된 스토리지로 전송하는 실제 시나리오를 시뮬레이션합니다. 이 데이터에는 센서 판독값, 작동 설정, 오류 신호 및 모드 등이 포함됩니다. 충분한 데이터가 수집되면 이 데이터를 사용하여 디바이스의 남은 RUL(유용한 수명)을 예측하는 모델을 학습시킵니다. 이 기계 학습은 다음 문서에서 설명합니다.

다음 문서를 계속 진행하여 데이터를 사용하여 기계 학습 모델을 학습시킵니다.