Поделиться через


Руководство. Создание имитированных данных устройства

Область применения: Значок IoT Edge 1.1

Внимание

Дата окончания поддержки IoT Edge 1.1 была 13 декабря 2022 г. Чтобы получить сведения о поддержке определенного продукта, службы, технологии или API, перейдите на страницу Политика жизненного цикла поддержки Майкрософт. Дополнительные сведения об обновлении до последней версии IoT Edge см. в разделе "Обновление IoT Edge".

В этой статье мы используем данные машинного обучения для имитации устройства, отправляющего данные телеметрии в Центр Интернета вещей Azure. Как уже указано во введении, в этом руководстве используется набор данных для моделирования ухудшения состояния турбореактивного двигателя, на основе которого имитируются данные от нескольких авиационных двигателей для обучения и тестирования.

В нашем экспериментальном сценарии мы учитываем, что:

  • данные принадлежат к нескольким временным рядам;
  • каждый набор данных разделен на подмножества для обучения и тестирования;
  • все временные ряды получены от разных двигателей;
  • каждый двигатель начинает работу с разной степенью начального износа и производственных допусков.

В этом руководстве мы используем подмножество обучающих данных из одного набора данных (FD003).

При реальной работе каждый двигатель представляет собой независимое устройство Интернета вещей. Если у вас нет под рукой набора турбореактивных двигателей, подключенных к Интернету, мы создадим их программную имитацию.

Программа симуляции на языке C# использует API Центра Интернета вещей для программной регистрации виртуальных устройств в Центре Интернета вещей. Затем мы считываем данные о каждом устройстве из предоставленного NASA подмножества данных и отправляем их в центр Интернета вещей через имитированное устройство Интернета вещей. Весь код из этого раздела руководства вы можете получить в каталоге репозитория DeviceHarness.

Проект DeviceHarness предназначен для платформы .NET Core и содержит следующие четыре класса C#.

  • Программа: точка входа для выполнения, ответственного за обработку входных данных пользователей и общую координацию.
  • TrainingFileManager: отвечает за чтение и анализ выбранного файла данных.
  • CycleData: представляет одну строку данных в файле, преобразованном в формат сообщения.
  • TurbofanDevice: отвечает за создание устройства Интернета вещей, соответствующего одному устройству (временным рядам), в данных и передаче данных в Центр Интернета вещей.

Выполнение задач, описанных в этой статье, занимает около 20 минут.

В реальной системе задачи этого этапа обычно выполняются разработчиками устройств и облачных систем.

Из этого раздела учебника, вы узнаете, как:

  • внедрить внешний проект в свою среду разработки;
  • использовать пример проекта DeviceHarness для создания данных имитированного устройства Интернета вещей;
  • просмотреть созданные данные в Центре Интернета вещей.

Необходимые компоненты

Эта статья входит в серию учебников по использованию Машинного обучения Azure в IoT Edge. Каждая статья в серии основана на инструкциях, выполненных при работе с предыдущей статьей. Если вы приступили сразу к этой статье, перейдите на первую статью серии.

Настройка Visual Studio Code и сборка проекта DeviceHarness

  1. Откройте сеанс удаленного рабочего стола для подключения к виртуальной машине разработки.

  2. Откройте папку C:\source\IoTEdgeAndMlSample\DeviceHarness в Visual Studio Code.

  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. Появится запрос для выбора задачи сборки. Выберите Build (Сборка).

  8. Будет выполнена сборка и вы получите сообщение об успешном выполнении.

    Сообщение об успешном выполнении сборки

  9. Вы можете назначить эту сборку задачей сборки по умолчанию, выбрав элемент Терминал>Configure Default Build Task... (Настройка задачи сборки по умолчанию...) и действие Сборка в предложенном запросе.

Подключение к Центру Интернета вещей и выполнение DeviceHarness

Теперь, пока наш проект компилируется, подключитесь к центру Интернета вещей, где вы сможете получить строку подключения и отслеживать ход создания данных.

Вход в Azure из Visual Studio Code

  1. Войдите в подписку Azure в Visual Studio Code, открыв палитру команд. Для этого нажмите клавиши Ctrl + Shift + P или выберите Вид>Палитра команд.

  2. Выполните поиск по команде Azure: вход .

    В открывшемся окне браузера появится запрос на ввод учетных данных. Когда откроется страница успешного завершения операции, окно браузера можно закрыть.

Подключение к центру Интернета вещей и получение строки подключения

  1. В нижней части обозревателя Visual Studio Code выберите фрейм Центр Интернета вещей Azure, чтобы развернуть его.

  2. В развернутом фрейме щелкните Select IoT Hub (Выбрать Центр Интернета вещей).

  3. В запросе выберите подписку Azure, а затем центр Интернета вещей.

  4. Щелкните ... справа от фрейма Центр Интернета вещей Azure, чтобы открыть другие действия. Выберите Copy IoT Hub connection string. (Копировать строку подключения к Центру Интернета вещей).

    Копирование строки подключения к Центру Интернета вещей

Запуск проекта DeviceHarness

  1. Выберите Вид>Терминал, чтобы открыть терминал Visual Studio Code.

    Если вы не увидите запрос, нажмите клавишу ВВОД.

  2. Введите в терминале dotnet run.

  3. В запросе на ввод строки подключения к Центру Интернета вещей вставьте значение строки подключения, которое вы скопировали в предыдущем разделе.

  4. Во фрейме Azure IoT Hub devices (Устройства Центра Интернета вещей Azure) нажмите кнопку обновления.

    Обновление списка устройств Центра Интернета вещей

  5. Обратите внимание на то, что устройства добавляются в Центр Интернета вещей и отображаются зеленым цветом, что подтверждает отправку данных через эти устройства. После того как устройства отправляют сообщения в центр Интернета вещей, они отключаются и отображаются синим цветом.

  6. Вы можете просмотреть сообщения, отправленные в центр, щелкнув любое из устройств правой кнопкой мыши и выбрав действие Запуск мониторинга встроенной конечной точки события. Теперь сообщения появятся в области вывода Visual Studio Code.

  7. Остановите мониторинг, щелкнув в любом месте области вывода Центр Интернета вещей Azure и выбрав действие Остановка мониторинга встроенной конечной точки события.

  8. Оставьте приложение выполняться до завершения, на что потребуется несколько минут.

Проверка активности Центра Интернета вещей

Данные, отправленные DeviceHarness, передаются в центр Интернета вещей, где их можно просмотреть на портале Azure.

  1. Откройте портал Azure и перейдите к центру Интернета вещей, созданному для этого руководства.

  2. В меню слева в разделе Мониторинг выберите Метрики.

  3. На странице определения диаграммы щелкните раскрывающийся список Метрика, прокрутите список вниз и выберите Routing: data delivered to storage (Маршрутизация: доставлено данных в хранилище). На диаграмме должен отображаться пик направления данных в хранилище.

    Диаграмме с пиком передачи данных в хранилище

Проверка данных в службе хранилища Azure

Данные, которые мы только что отправили в центр Интернета вещей, были переданы в контейнер хранения, созданный при работе с предыдущей статьей. Давайте рассмотрим данные в нашей учетной записи хранения.

  1. Войдите в свою учетную запись хранения на портале Azure.

  2. В навигаторе учетной записи хранения выберите Обозреватель хранилищ (предварительная версия).

  3. В обозревателе хранилищ щелкните Контейнеры BLOB-объектов, а затем devicedata.

  4. На панели содержимого щелкните папку, имя которой соответствует имени центра Интернета вещей, а затем папки для нужного года, месяца, дня и часа. Здесь вы увидите несколько папок, соответствующих минутам, в которые сохранялись данные.

    Просмотр папок в хранилище BLOB-объектов

  5. Щелкните любую из этих папок, в которой вы найдете файлы данных с именами 00 и 01, которые соответствуют разделам.

  6. Файлы записываются в формате Avro. Дважды щелкните один из этих файлов, чтобы открыть другую вкладку браузера и частично подготовить данные. Если вместо этого будет предложено открыть файл в программе, выберите VS Code для правильного отображения данных.

  7. Пока не тратьте время на чтение или анализ этих данных. Мы займемся этим в следующей статье.

Очистка ресурсов

Этот учебник является частью серии статей, каждая из которых продолжает предыдущую. Не очищайте ресурсы, пока не завершите работу с последним учебником.

Следующие шаги

В этой статье мы применили проект .NET Core для создания набора виртуальных устройств и отправки через них данных в центр Интернета вещей и далее в контейнер службы хранилища Azure. Этот проект имитирует реальную систему, в которой физические устройства отправляют данные в центр Интернета вещей и далее в подготовленное хранилище. Эти данные включают в себя показания датчиков, рабочие параметры, сигналы о сбоях, сведения о режимах и т. д. Когда будет собран достаточный объем данных, мы применим их для обучения моделей, прогнозирующих предельный срок эксплуатации устройства. Мы продемонстрируем машинное обучение этим данным в следующей статье.

Переходите к следующей статье, чтобы обучить модель машинного обучения по собранным данным.