Руководство. Создание имитированных данных устройства
Область применения: 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
Откройте сеанс удаленного рабочего стола для подключения к виртуальной машине разработки.
Откройте папку
C:\source\IoTEdgeAndMlSample\DeviceHarness
в Visual Studio Code.Вы впервые используете расширения на этом компьютере, поэтому некоторые расширения обновятся и (или) установят зависимости. Возможно, вам будет предложено обновить расширение. В этом случае выберите действие Перезагрузить окно.
Если ошибки OmniSharp отображаются в окне вывода, необходимо удалить расширение C#.
Вам будет предложено добавить необходимые ресурсы для DeviceHarness. Щелкните Да, чтобы добавить их.
- Уведомление может отобразиться через несколько секунд.
- Если вы пропустили это уведомление, проверьте значок с изображением колокольчика в правом нижнем углу.
Выберите Восстановить, чтобы восстановить зависимости пакета.
Если вы не получили эти уведомления, закройте Visual Studio Code, удалите каталоги bin и obj в
C:\source\IoTEdgeAndMlSample\DeviceHarness
, откройте Visual Studio Code и снова откройте папку DeviceHarness.Проверьте правильность настройки среды, запустив сборку. Для этого нажмите клавиши CTRL + SHIFT + B или выберите Терминал>Выполнить задачу сборки.
Появится запрос для выбора задачи сборки. Выберите Build (Сборка).
Будет выполнена сборка и вы получите сообщение об успешном выполнении.
Вы можете назначить эту сборку задачей сборки по умолчанию, выбрав элемент Терминал>Configure Default Build Task... (Настройка задачи сборки по умолчанию...) и действие Сборка в предложенном запросе.
Подключение к Центру Интернета вещей и выполнение DeviceHarness
Теперь, пока наш проект компилируется, подключитесь к центру Интернета вещей, где вы сможете получить строку подключения и отслеживать ход создания данных.
Вход в Azure из Visual Studio Code
Войдите в подписку Azure в Visual Studio Code, открыв палитру команд. Для этого нажмите клавиши
Ctrl + Shift + P
или выберите Вид>Палитра команд.Выполните поиск по команде Azure: вход .
В открывшемся окне браузера появится запрос на ввод учетных данных. Когда откроется страница успешного завершения операции, окно браузера можно закрыть.
Подключение к центру Интернета вещей и получение строки подключения
В нижней части обозревателя Visual Studio Code выберите фрейм Центр Интернета вещей Azure, чтобы развернуть его.
В развернутом фрейме щелкните Select IoT Hub (Выбрать Центр Интернета вещей).
В запросе выберите подписку Azure, а затем центр Интернета вещей.
Щелкните ... справа от фрейма Центр Интернета вещей Azure, чтобы открыть другие действия. Выберите Copy IoT Hub connection string. (Копировать строку подключения к Центру Интернета вещей).
Запуск проекта DeviceHarness
Выберите Вид>Терминал, чтобы открыть терминал Visual Studio Code.
Если вы не увидите запрос, нажмите клавишу ВВОД.
Введите в терминале
dotnet run
.В запросе на ввод строки подключения к Центру Интернета вещей вставьте значение строки подключения, которое вы скопировали в предыдущем разделе.
Во фрейме Azure IoT Hub devices (Устройства Центра Интернета вещей Azure) нажмите кнопку обновления.
Обратите внимание на то, что устройства добавляются в Центр Интернета вещей и отображаются зеленым цветом, что подтверждает отправку данных через эти устройства. После того как устройства отправляют сообщения в центр Интернета вещей, они отключаются и отображаются синим цветом.
Вы можете просмотреть сообщения, отправленные в центр, щелкнув любое из устройств правой кнопкой мыши и выбрав действие Запуск мониторинга встроенной конечной точки события. Теперь сообщения появятся в области вывода Visual Studio Code.
Остановите мониторинг, щелкнув в любом месте области вывода Центр Интернета вещей Azure и выбрав действие Остановка мониторинга встроенной конечной точки события.
Оставьте приложение выполняться до завершения, на что потребуется несколько минут.
Проверка активности Центра Интернета вещей
Данные, отправленные DeviceHarness, передаются в центр Интернета вещей, где их можно просмотреть на портале Azure.
Откройте портал Azure и перейдите к центру Интернета вещей, созданному для этого руководства.
В меню слева в разделе Мониторинг выберите Метрики.
На странице определения диаграммы щелкните раскрывающийся список Метрика, прокрутите список вниз и выберите Routing: data delivered to storage (Маршрутизация: доставлено данных в хранилище). На диаграмме должен отображаться пик направления данных в хранилище.
Проверка данных в службе хранилища Azure
Данные, которые мы только что отправили в центр Интернета вещей, были переданы в контейнер хранения, созданный при работе с предыдущей статьей. Давайте рассмотрим данные в нашей учетной записи хранения.
Войдите в свою учетную запись хранения на портале Azure.
В навигаторе учетной записи хранения выберите Обозреватель хранилищ (предварительная версия).
В обозревателе хранилищ щелкните Контейнеры BLOB-объектов, а затем
devicedata
.На панели содержимого щелкните папку, имя которой соответствует имени центра Интернета вещей, а затем папки для нужного года, месяца, дня и часа. Здесь вы увидите несколько папок, соответствующих минутам, в которые сохранялись данные.
Щелкните любую из этих папок, в которой вы найдете файлы данных с именами 00 и 01, которые соответствуют разделам.
Файлы записываются в формате Avro. Дважды щелкните один из этих файлов, чтобы открыть другую вкладку браузера и частично подготовить данные. Если вместо этого будет предложено открыть файл в программе, выберите VS Code для правильного отображения данных.
Пока не тратьте время на чтение или анализ этих данных. Мы займемся этим в следующей статье.
Очистка ресурсов
Этот учебник является частью серии статей, каждая из которых продолжает предыдущую. Не очищайте ресурсы, пока не завершите работу с последним учебником.
Следующие шаги
В этой статье мы применили проект .NET Core для создания набора виртуальных устройств и отправки через них данных в центр Интернета вещей и далее в контейнер службы хранилища Azure. Этот проект имитирует реальную систему, в которой физические устройства отправляют данные в центр Интернета вещей и далее в подготовленное хранилище. Эти данные включают в себя показания датчиков, рабочие параметры, сигналы о сбоях, сведения о режимах и т. д. Когда будет собран достаточный объем данных, мы применим их для обучения моделей, прогнозирующих предельный срок эксплуатации устройства. Мы продемонстрируем машинное обучение этим данным в следующей статье.
Переходите к следующей статье, чтобы обучить модель машинного обучения по собранным данным.