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

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

В этом кратком руководстве используются два предварительно созданных приложения .NET:

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

  • Приложение-служба, вызывающее прямые методы на имитированном устройстве. Чтобы вызвать прямой метод в устройстве, это приложение подключается к конечной точке на стороне службы в Центре Интернета вещей.

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

  • Учетная запись Azure с активной подпиской. Создайте бесплатно.

  • Примеры приложений, запускаемые в рамках этого краткого руководства, написаны на языке C#. На компьютере для разработки необходимо установить .NET SDK версии 6.0 или более поздней.

    Пакет SDK для .NET Core, предназначенный для нескольких платформ, можно загрузить из .NET.

    Текущую версию C# на компьютере, на котором ведется разработка, можно проверить, используя следующую команду:

    dotnet --version
    
  • Клонируйте или скачайте пакет SDK для C# для Интернета вещей Azure из GitHub.

  • Убедитесь, что в брандмауэре открыт порт 8883. Пример устройства в этом кратком руководстве использует протокол MQTT, который передает данные через порт 8883. В некоторых корпоративных и академических сетях этот порт может быть заблокирован. Дополнительные сведения и способы устранения этой проблемы см. в разделе о подключении к Центру Интернета вещей по протоколу MQTT.

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье Краткое руководство по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в разделе Запуск Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, приведены в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

Примечание

В этой статье используется последняя версия расширения 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.

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

Если у вас уже есть центр Интернета вещей в подписке Azure, этот раздел можно пропустить.

Чтобы создать центр Интернета вещей и группу ресурсов, выполните следующие действия:

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

    • При использовании Cloud Shell нажмите кнопку Попробовать в командах интерфейса командной строки, чтобы запустить Cloud Shell в разделенном окне браузера. Или можно открыть Cloud Shell в отдельной вкладке браузера.
    • Если вы используете Azure CLI локально, запустите консольное приложение CLI и войдите в Azure CLI.
  2. Выполните команду az extension add, чтобы установить или обновить расширение azure-iot до текущей версии.

    az extension add --upgrade --name azure-iot
    
  3. В приложении CLI выполните команду az group create, чтобы создать группу ресурсов. В следующей команде создается группа ресурсов с именем MyResourceGroup в расположении eastus.

    Примечание

    При необходимости можно задать другое расположение. Чтобы отобразить доступные расположения, выполните команду az account list-locations. В рамках работы с этим кратким руководством используется eastus, как показано в примере команды.

    az group create --name MyResourceGroup --location eastus
    
  4. Создайте Центр Интернета вещей с помощью команды az iot hub create. Создание Центра Интернета вещей может занять несколько минут.

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

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

Получение строки подключения к службе

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

Следующая команда извлекает строку подключения службы для Центра Интернета вещей:

az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table

Запишите строку подключения к службе, которая выглядит так:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

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

Моделирование устройства

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

  1. В окне терминала на локальном компьютере перейдите в корневую папку примера проекта C#. Затем перейдите к папке iothub\device\samples\Getting Started\SimulatedDeviceWithCommand .

  2. Установите необходимые пакеты приложения имитированного устройства, выполнив следующую команду:

    dotnet restore
    
  3. Создайте и запустите приложение имитированного устройства, выполнив следующую команду.

    {DeviceConnectionString}: Замените заполнитель строкой подключения к устройству, которую вы записали ранее.

    dotnet run -- -c "{DeviceConnectionString}"
    

    На следующем снимке экрана показан пример выходных данных, когда приложение имитированного устройства отправляет данные телеметрии в Центр Интернета вещей:

    Запуск виртуального устройства

Вызов прямого метода

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

  1. В другом окне терминала на локальном компьютере перейдите в корневую папку примера проекта C#. Затем перейдите к папке iothub\service\samples\Getting Started\InvokeDeviceMethod .

  2. Установите необходимые библиотеки приложения-службы, выполнив в окне терминала на локальном компьютере следующие команды:

    dotnet build
    
  3. Создайте и запустите приложение службы, выполнив в окне терминала на локальном компьютере следующие команды.

    {ServiceConnectionString}: Замените заполнитель строкой подключения к Центру Интернета вещей, которую вы записали ранее.

    {DeviceName}: Замените этот заполнитель именем зарегистрированного устройства.

    dotnet run -- -c "{ServiceConnectionString}" -d {DeviceName}
    

    На следующем снимке экрана показан пример выходных данных, когда приложение выполняет вызов прямого метода к устройству и получает подтверждение:

    Запуск приложения-службы

    После запуска приложения-службы в окне консоли, в котором выполняется имитированное устройство, отобразится сообщение и изменится интервал, с которым это приложение отправляет сообщения:

    Изменения в имитированном клиенте

В этом кратком руководстве используется два приложения Java:

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

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

  • Учетная запись Azure с активной подпиской. Создайте бесплатно.

  • Пакет SDK для Java SE 8. В статье Долгосрочная поддержка Java для Azure и Azure Stack выберите пункт Java 8 в разделе Долгосрочная поддержка.

    Текущую версию Java на компьютере, на котором ведется разработка, можно проверить, используя следующую команду:

    java -version
    
  • Apache Maven 3.

    Текущую версию Maven на компьютере, на котором ведется разработка, можно проверить, используя следующую команду:

    mvn --version
    
  • Клонирование или скачивание Примеров Java для Azure IOT из GitHub.

  • Убедитесь, что в брандмауэре открыт порт 8883. Пример устройства в этом кратком руководстве использует протокол MQTT, который передает данные через порт 8883. В некоторых корпоративных и академических сетях этот порт может быть заблокирован. Дополнительные сведения и способы устранения этой проблемы см. в разделе о подключении к Центру Интернета вещей по протоколу MQTT.

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье Краткое руководство по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в разделе Запуск Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, приведены в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

Примечание

В этой статье используется последняя версия расширения 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.

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

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

Если у вас уже есть центр Интернета вещей в подписке Azure, этот раздел можно пропустить.

Чтобы создать центр Интернета вещей и группу ресурсов, выполните следующие действия:

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

    • При использовании Cloud Shell нажмите кнопку Попробовать в командах интерфейса командной строки, чтобы запустить Cloud Shell в разделенном окне браузера. Или можно открыть Cloud Shell в отдельной вкладке браузера.
    • Если вы используете Azure CLI локально, запустите консольное приложение CLI и войдите в Azure CLI.
  2. Выполните команду az extension add, чтобы установить или обновить расширение azure-iot до текущей версии.

    az extension add --upgrade --name azure-iot
    
  3. В приложении CLI выполните команду az group create, чтобы создать группу ресурсов. В следующей команде создается группа ресурсов с именем MyResourceGroup в расположении eastus.

    Примечание

    При необходимости можно задать другое расположение. Чтобы отобразить доступные расположения, выполните команду az account list-locations. В рамках работы с этим кратким руководством используется eastus, как показано в примере команды.

    az group create --name MyResourceGroup --location eastus
    
  4. Создайте Центр Интернета вещей с помощью команды az iot hub create. Создание Центра Интернета вещей может занять несколько минут.

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

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

Регистрация устройства

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

Если устройство уже зарегистрировано в центре Интернета вещей, этот раздел можно пропустить.

Создание удостоверения устройства:

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

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

    myDevice. Это имя можно использовать для идентификатора устройства в этой статье или указать другое имя устройства.

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  2. Выполните команду az iot hub device-identity connection-string show.

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {your_iot_hub_name}
    

    Выходные данные строки подключения имеют следующий формат:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Сохраните строку подключения в безопасном расположении.

Примечание

Оставьте приложения CLI открытым. Оно понадобится вам на последующих шагах.

Получение строки подключения к службе

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

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

az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table

Запишите строку подключения к службе, которая выглядит так:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

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

Моделирование устройства

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

  1. В окне терминала на локальном компьютере перейдите в корневую папку примера проекта Java. Затем перейдите в папку iot-hub\Quickstarts\simulated-device-2.

  2. Откройте файл src/main/java/com/microsoft/docs/iothub/samples/SimulatedDevice.java в любом текстовом редакторе.

    Замените значение переменной connString записанной ранее строкой подключения к устройству. Сохраните изменения в файле SimulatedDevice.java.

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

    mvn clean package
    
  4. Запустите приложение имитированного устройства, выполнив в окне терминала на локальном компьютере следующие команды:

    java -jar target/simulated-device-2-1.0.0-with-deps.jar
    

    На следующем снимке экрана показан пример выходных данных, когда приложение имитированного устройства отправляет данные телеметрии в Центр Интернета вещей:

    Данные телеметрии, переданные устройством в центр Интернета вещей

Вызов прямого метода

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

  1. В другом окне терминала на локальном компьютере перейдите в корневую папку примера проекта Java. Затем перейдите в папку iot-hub\Quickstarts\back-end-application.

  2. Откройте файл src/main/java/com/microsoft/docs/iothub/samples/BackEndApplication.java в любом текстовом редакторе.

    Замените значение переменной iotHubConnectionString записанной ранее строкой подключения к службе. Сохраните изменения в файле BackEndApplication.java.

  3. Установите необходимые библиотеки и создайте внутреннее приложение, выполнив в окне терминала на локальном компьютере следующие команды:

    mvn clean package
    
  4. Запустите внутреннее приложение, выполнив в окне терминала на локальном компьютере следующие команды:

    java -jar target/back-end-application-1.0.0-with-deps.jar
    

    На следующем снимке экрана показан пример выходных данных, когда приложение выполняет вызов прямого метода к устройству и получает подтверждение:

    Выходные данные при прямом вызове метода приложением через центр Интернета вещей

    После запуска внутреннего приложения в окне консоли, в котором выполняется имитированное устройство, отобразится сообщение и изменится интервал, с которым это приложение отправляет сообщения:

    Сообщение в консоли от устройства с отображением скорости изменения

В этом кратком руководстве используется два приложения Node.js:

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

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

  • Учетная запись Azure с активной подпиской. Создайте бесплатно.

  • Node.js 12 или более поздней версии.

    Текущую версию Node.js на компьютере, на котором ведется разработка, можно проверить, используя следующую команду:

    node --version
    
  • Клонирование или скачивание Примеров Node.js для Azure IOT из GitHub.

  • Убедитесь, что в брандмауэре открыт порт 8883. Пример устройства в этом кратком руководстве использует протокол MQTT, который передает данные через порт 8883. В некоторых корпоративных и академических сетях этот порт может быть заблокирован. Дополнительные сведения и способы устранения этой проблемы см. в разделе о подключении к Центру Интернета вещей по протоколу MQTT.

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье Краткое руководство по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в разделе Запуск Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, приведены в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

Примечание

В этой статье используется последняя версия расширения 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.

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

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

Если у вас уже есть центр Интернета вещей в подписке Azure, этот раздел можно пропустить.

Чтобы создать центр Интернета вещей и группу ресурсов, выполните следующие действия:

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

    • При использовании Cloud Shell нажмите кнопку Попробовать в командах интерфейса командной строки, чтобы запустить Cloud Shell в разделенном окне браузера. Или можно открыть Cloud Shell в отдельной вкладке браузера.
    • Если вы используете Azure CLI локально, запустите консольное приложение CLI и войдите в Azure CLI.
  2. Выполните команду az extension add, чтобы установить или обновить расширение azure-iot до текущей версии.

    az extension add --upgrade --name azure-iot
    
  3. В приложении CLI выполните команду az group create, чтобы создать группу ресурсов. В следующей команде создается группа ресурсов с именем MyResourceGroup в расположении eastus.

    Примечание

    При необходимости можно задать другое расположение. Чтобы отобразить доступные расположения, выполните команду az account list-locations. В рамках работы с этим кратким руководством используется eastus, как показано в примере команды.

    az group create --name MyResourceGroup --location eastus
    
  4. Создайте Центр Интернета вещей с помощью команды az iot hub create. Создание Центра Интернета вещей может занять несколько минут.

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

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

Регистрация устройства

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

Если устройство уже зарегистрировано в центре Интернета вещей, этот раздел можно пропустить.

Создание удостоверения устройства:

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

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

    myDevice. Это имя можно использовать для идентификатора устройства в этой статье или указать другое имя устройства.

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  2. Выполните команду az iot hub device-identity connection-string show.

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {your_iot_hub_name}
    

    Выходные данные строки подключения имеют следующий формат:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Сохраните строку подключения в безопасном расположении.

Примечание

Оставьте приложения CLI открытым. Оно понадобится вам на последующих шагах.

Получение строки подключения к службе

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

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

az iot hub connection-string show \
  --policy-name service --hub-name {YourIoTHubName} --output table

Запишите строку подключения к службе, которая выглядит так:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

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

Моделирование устройства

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

  1. В окне терминала на локальном компьютере перейдите в корневую папку примера проекта Node.js. Затем перейдите в папку iot-hub\Quickstarts\simulated-device-2.

  2. Откройте файл SimulatedDevice.js в любом текстовом редакторе.

    Замените значение переменной connectionString записанной ранее строкой подключения к устройству. Сохраните изменения в файле SimulatedDevice.js.

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

    npm install
    node SimulatedDevice.js
    

    На следующем снимке экрана показан пример выходных данных, когда приложение имитированного устройства отправляет данные телеметрии в Центр Интернета вещей:

    Запуск виртуального устройства

Вызов прямого метода

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

  1. В другом окне терминала на локальном компьютере перейдите в корневую папку примера проекта Node.js. Затем перейдите в папку iot-hub\Quickstarts\back-end-application.

  2. Откройте файл BackEndApplication.js в любом текстовом редакторе.

    Замените значение переменной connectionString записанной ранее строкой подключения к службе. Сохраните изменения в файле BackEndApplication.js.

  3. Установите необходимые библиотеки и запустите внутреннее приложение, выполнив в окне локального терминала следующие команды:

    npm install
    node BackEndApplication.js
    

    На следующем снимке экрана показан пример выходных данных, когда приложение выполняет вызов прямого метода к устройству и получает подтверждение:

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

    После запуска внутреннего приложения в окне консоли, в котором выполняется имитированное устройство, отобразится сообщение и изменится интервал, с которым это приложение отправляет сообщения:

    Выходные данные при изменении в имитируемом клиенте

В этом кратком руководстве используется два приложения Python:

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

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

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье Краткое руководство по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в разделе Запуск Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, приведены в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

Примечание

В этой статье используется последняя версия расширения 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.

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

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

Если у вас уже есть центр Интернета вещей в подписке Azure, этот раздел можно пропустить.

Чтобы создать центр Интернета вещей и группу ресурсов, выполните следующие действия:

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

    • При использовании Cloud Shell нажмите кнопку Попробовать в командах интерфейса командной строки, чтобы запустить Cloud Shell в разделенном окне браузера. Или можно открыть Cloud Shell в отдельной вкладке браузера.
    • Если вы используете Azure CLI локально, запустите консольное приложение CLI и войдите в Azure CLI.
  2. Выполните команду az extension add, чтобы установить или обновить расширение azure-iot до текущей версии.

    az extension add --upgrade --name azure-iot
    
  3. В приложении CLI выполните команду az group create, чтобы создать группу ресурсов. В следующей команде создается группа ресурсов с именем MyResourceGroup в расположении eastus.

    Примечание

    При необходимости можно задать другое расположение. Чтобы отобразить доступные расположения, выполните команду az account list-locations. В рамках работы с этим кратким руководством используется eastus, как показано в примере команды.

    az group create --name MyResourceGroup --location eastus
    
  4. Создайте Центр Интернета вещей с помощью команды az iot hub create. Создание Центра Интернета вещей может занять несколько минут.

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

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

Регистрация устройства

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

Если устройство уже зарегистрировано в центре Интернета вещей, этот раздел можно пропустить.

Создание удостоверения устройства:

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

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

    myDevice. Это имя можно использовать для идентификатора устройства в этой статье или указать другое имя устройства.

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  2. Выполните команду az iot hub device-identity connection-string show.

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {your_iot_hub_name}
    

    Выходные данные строки подключения имеют следующий формат:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Сохраните строку подключения в безопасном расположении.

Примечание

Оставьте приложения CLI открытым. Оно понадобится вам на последующих шагах.

Получение строки подключения к службе

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

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

az iot hub connection-string show \
  --policy-name service \
  --hub-name {YourIoTHubName} \
  --output table

Запишите строку подключения к службе, которая выглядит так:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

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

Моделирование устройства

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

  1. В окне терминала на локальном компьютере перейдите в корневую папку примера проекта Python. Затем перейдите в папку iot-hub\Quickstarts\simulated-device-2.

  2. Откройте файл SimulatedDeviceSync.py в любом текстовом редакторе.

    Замените значение переменной CONNECTION_STRING записанной ранее строкой подключения к устройству. Затем сохраните изменения в SimulatedDeviceSync.py.

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

    pip install azure-iot-device
    
  4. Запустите приложение имитированного устройства, выполнив в окне терминала на локальном компьютере следующие команды:

    python SimulatedDeviceSync.py
    

    На следующем снимке экрана показан пример выходных данных, когда приложение имитированного устройства отправляет данные телеметрии в Центр Интернета вещей:

    Запуск виртуального устройства

Вызов прямого метода

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

  1. В другом окне терминала на локальном компьютере перейдите в корневую папку примера проекта Python. Затем перейдите в папку iot-hub\Quickstarts\back-end-application.

  2. Откройте файл BackEndApplication.py в любом текстовом редакторе.

    Замените значение переменной CONNECTION_STRING записанной ранее строкой подключения к службе. Сохраните изменения в файле BackEndApplication.py.

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

    pip install azure-iot-hub
    
  4. Запустите внутреннее приложение, выполнив в окне терминала на локальном компьютере следующие команды:

    python BackEndApplication.py
    

    На следующем снимке экрана показан пример выходных данных, когда приложение выполняет вызов прямого метода к устройству и получает подтверждение:

    Запуск внутреннего приложения

    После запуска внутреннего приложения в окне консоли, в котором выполняется имитированное устройство, отобразится сообщение и изменится интервал, с которым это приложение отправляет сообщения:

    Изменения в имитированном клиенте

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

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

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

Важно!

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

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

  1. Войдите в портал Azure и выберитеГруппы ресурсов.

  2. В текстовое поле Фильтровать по имени введите имя группы ресурсов, содержащей Центр Интернета вещей.

  3. Справа от своей группы ресурсов в списке результатов щелкните ..., а затем выберите Удалить группу ресурсов.

    DELETE

  4. Подтвердите операцию удаления группы ресурсов. Снова введите имя группы ресурсов, которую необходимо удалить, и щелкните Удалить. Через некоторое время группа ресурсов и все ее ресурсы будут удалены.

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

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

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