Краткое руководство. Отправка данных телеметрии из устройства в Центр Интернета вещей и их отслеживание с помощью Azure CLI

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

Предварительные требования

  • Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
  • Azure CLI. Вы можете выполнить все команды в этом кратком руководстве, используя Azure Cloud Shell, интерактивную оболочку CLI, которая работает в браузере, либо в таком приложении, как Терминал Windows. При использовании Cloud Shell вам не нужно ничего устанавливать. Если вы решили использовать CLI локально, для выполнения инструкций, приведенных в этом руководстве вам потребуется Azure CLI версии 2.36 или более поздней. Чтобы узнать версию, выполните команду az --version. Чтобы выполнить установку или обновление, см. сведения в статье Установка Azure CLI.

Вход на портал Azure

Войдите на портал Azure.

Независимо от того, запускается интерфейс командной строки локально или в Cloud Shell, не закрывайте портал в браузере. Он понадобится позже при работе с кратким руководством.

Запуск Cloud Shell

В этом разделе вы запустите экземпляр Azure Cloud Shell. Если вы используете CLI локально, перейдите к разделу Подготовка двух сеансов CLI.

Чтобы запустить Cloud Shell:

  1. На портале Azure в правом верхнем углу в строке меню нажмите кнопку Cloud Shell.

    Azure portal Cloud Shell button

    Примечание

    Если вы используете Cloud Shell в первый раз, вам будет предложено создать хранилище, необходимое для использования Cloud Shell. Выберите подписку для создания учетной записи хранения и общей папки для службы файлов Microsoft Azure.

  2. Выберите предпочтительную среду CLI в раскрывающемся списке Выбор среды. В этом кратком руководстве используется среда Bash. Все приведенные ниже команды CLI работают и в PowerShell. Select CLI environment

Подготовка двух сеансов CLI

Далее вы подготовите два сеанса Azure CLI. Если вы используете Cloud Shell, эти сеансы будут выполняться на разных вкладках Cloud Shell. При использовании локального клиента CLI потребуется запустить отдельные экземпляры CLI. Используйте отдельные сеансы CLI для следующих задач:

  • Первый сеанс имитирует устройство Интернета вещей, которое взаимодействует с центром Интернета вещей.
  • Второй сеанс либо отслеживает устройство в первом сеансе, либо отправляет сообщения, команды и изменения свойств.

Чтобы выполнить команду, выберите Copy (Копировать), чтобы скопировать блок кода из этого краткого руководства, а затем вставьте его в сеанс и запустите.

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

  • В первом сеансе CLI выполните команду az extension add. Эта команда добавляет расширение Интернета вещей Microsoft Azure для Azure CLI в оболочку CLI. Расширение Интернета вещей добавляет в Azure CLI специальные команды Центра Интернета вещей, IoT Edge и службы подготовки устройств Интернета вещей (DPS).

    az extension add --name azure-iot
    

    После установки расширения Интернета вещей Azure его нужно будет устанавливать повторно для любого сеанса Cloud Shell.

    Примечание

    В этой статье используется последняя версия расширения Azure IoT под названием azure-iot. Прежняя версия называется azure-cli-iot-ext. В каждый момент времени должна быть установлена только одна версия. Проверить установленные расширения можно с помощью команды az extension list.

    Используйте az extension remove --name azure-cli-iot-ext, чтобы удалить устаревшую версию расширения.

    Используйте az extension add --name azure-iot, чтобы добавить новую версию расширения.

    Чтобы узнать, какие расширения установлены, используйте az extension list.

  • Откройте второй сеанс CLI. Если вы используете Cloud Shell в браузере, нажмите кнопку Открыть новый сеанс. Если вы используете CLI локально, откройте второй экземпляр CLI.

    Open new Cloud Shell session

Создание Центра Интернета вещей

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

Совет

При необходимости с помощью портала Azure, Visual Studio Code или других программных методов можно создать группу ресурсов Azure, центр Интернета вещей и другие ресурсы.

  1. В первом сеансе CLI выполните команду az group create, чтобы создать группу ресурсов. В следующей команде создается группа ресурсов с именем MyResourceGroup в расположении eastus.

    az group create --name MyResourceGroup --location eastus
    
  2. В первом сеансе CLI выполните команду Az PowerShell module iot hub create, чтобы создать центр Интернета вещей. Создание центра Интернета вещей занимает несколько минут.

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

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
    

Создание и мониторинг устройства

В этом разделе вы создадите имитированное устройство в первом сеансе CLI. Имитированное устройство отправляет данные телеметрии устройства в центр Интернета вещей. Во втором сеансе CLI вы отслеживаете события и телеметрию.

Чтобы создать и запустить имитированное устройство, выполните указанные ниже действия.

  1. В первом сеансе CLI выполните команду az iot hub device-identity create. Она создает удостоверение имитированного устройства.

    YourIotHubName Замените этот заполнитель именем вашего центра Интернета вещей.

    simDevice. Это имя можно использовать непосредственно для имитированного устройства в оставшейся части этого краткого руководства. При необходимости можете использовать другое имя.

    az iot hub device-identity create -d simDevice -n {YourIoTHubName} 
    
  2. В первом сеансе CLI выполните команду az iot device simulate. Она запускает имитированное устройство. Устройство отправляет данные телеметрии в центр Интернета вещей и получает от него сообщения.

    YourIotHubName Замените этот заполнитель именем вашего центра Интернета вещей.

    az iot device simulate -d simDevice -n {YourIoTHubName}
    

Для мониторинга устройства выполните указанные ниже действия.

  1. Во втором сеансе CLI выполните команду az iot hub monitor-events. Она обеспечивает непрерывное отслеживание имитированного устройства. В выходных данных отображаются сведения телеметрии, такие как события и изменения состояния свойств, которые имитированное устройство отправляет в центр Интернета вещей.

    YourIotHubName Замените этот заполнитель именем вашего центра Интернета вещей.

    az iot hub monitor-events --output table -p all -n {YourIoTHubName}
    

    Screenshot of monitoring events on a simulated device.

  2. После мониторинга имитированного устройства во втором сеансе CLI нажмите клавиши CTRL+C, чтобы прервать мониторинг. Не закрывайте второй сеанс CLI, чтобы использовать его в последующих шагах.

Отправка сообщения с помощью CLI

В этом разделе вы отправляете сообщение на имитированное устройство.

  1. Убедитесь, что имитированное устройство в первом сеансе CLI по-прежнему запущено. Если устройство остановлено, выполните следующую команду, чтобы перезапустить его:

    YourIotHubName Замените этот заполнитель именем вашего центра Интернета вещей.

    az iot device simulate -d simDevice -n {YourIoTHubName}
    
  2. Во втором сеансе CLI выполните команду az iot device c2d-message send. Она отправляет сообщение из центра Интернета вещей на виртуальное устройство. Сообщение содержит строку и две пары "ключ-значение".

    YourIotHubName Замените этот заполнитель именем вашего центра Интернета вещей.

    az iot device c2d-message send -d simDevice --data "Hello World" --props "key0=value0;key1=value1" -n {YourIoTHubName}
    

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

  3. В первом сеансе CLI убедитесь, что имитированное устройство получило сообщение.

    Screenshot of a simulated device receiving a message.

Вызов метода устройства с помощью интерфейса командной строки

В этом разделе вы вызываете прямой метод на имитированном устройстве.

  1. Как и раньше, убедитесь, что имитированное устройство в первом сеансе CLI выполняется. Если это не так, перезапустите его.

  2. Во втором сеансе CLI выполните команду az iot hub invoke-device-method. В этом примере для устройства нет уже существующего метода. Команда вызывает имя примера метода на имитированном устройстве и возвращает полезные данные.

    YourIotHubName Замените этот заполнитель именем вашего центра Интернета вещей.

    az iot hub invoke-device-method --mn MySampleMethod -d simDevice -n {YourIoTHubName}
    
  3. В первом сеансе CLI убедитесь, что выходные данные показывают вызов метода.

    Screenshot of a simulated device displaying output after a method was invoked.

Изменение свойств устройства с помощью интерфейса командной строки

В этом разделе вы обновляете состояние имитированного устройства, задавая значения свойств.

  1. Как и раньше, убедитесь, что имитированное устройство в первом сеансе CLI выполняется. Если это не так, перезапустите его.

  2. Во втором сеансе CLI выполните команду az iot hub device-twin update. Эта команда изменяет свойства в требуемое состояние на двойнике устройства центра Интернета вещей, соответствующем имитированному устройству. В данном случае команда задает примеры свойств для температурного режима.

    YourIotHubName Замените этот заполнитель именем вашего центра Интернета вещей.

    az iot hub device-twin update -d simDevice --desired '{"conditions":{"temperature":{"warning":98, "critical":107}}}' -n {YourIoTHubName}
    
  3. Убедитесь, что имитированное устройство выводит изменение свойства.

    Screenshot that shows how to update properties on a device.

  4. Во втором сеансе CLI выполните команду az iot hub device-twin show. Эта команда сообщает об изменениях свойств устройства.

    YourIotHubName Замените этот заполнитель именем вашего центра Интернета вещей.

    az iot hub device-twin show -d simDevice --query properties.reported -n {YourIoTHubName}
    

    Screenshot that shows the updated properties on a device twin.

Просмотр метрик обмена сообщениями на портале

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

Чтобы визуализировать метрики обмена сообщениями на портале Azure:

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

  2. Выберите ссылку на созданный центр Интернета вещей. На портале отобразится страница обзора для центра.

  3. Выберите Метрики в левой панели центра Интернета вещей.

    IoT Hub messaging metrics

  4. В поле Область введите имя центра Интернета вещей.

  5. В поле Пространство имен метрики выберите стандартные метрики центра Интернета вещей.

  6. В поле Метрика выберите Total number of messages used (Общее количество используемых сообщений).

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

    View Azure IoT Hub metrics

  8. Кроме того, используйте раскрывающийся список Метрика, чтобы отобразить на имитированном устройстве другие метрики. Например, Доставка сообщений C2d завершена или Всего устройств (предварительная версия) .

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

Если вам больше не нужны ресурсы Azure, созданные в этом кратком руководстве, используйте Azure CLI, чтобы удалить их.

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

Важно!

Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не ту группу ресурсов или не те ресурсы.

Удаление группы ресурсов по имени:

  1. Выполните команду az group delete. При этом будут удалены созданные группа ресурсов, центр Интернета вещей и регистрация устройства.

    az group delete --name MyResourceGroup
    
  2. Выполните команду az group list, чтобы подтвердить удаление группы ресурсов.

    az group list
    

Дальнейшие действия

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

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

Чтобы узнать, как управлять имитированным устройством из внутреннего приложения, перейдите к следующему краткому руководству.