Краткое руководство. Управление подключенным к Центру Интернета вещей устройством
В этом кратком руководстве управление имитированным устройством, подключенным к Центру Интернета вещей, осуществляется с помощью прямого метода. Центр Интернета вещей — это служба 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, этот раздел можно пропустить.
Чтобы создать центр Интернета вещей и группу ресурсов, выполните следующие действия:
Запустите приложение CLI. Чтобы выполнить команды CLI, приведенные в оставшейся части этой статьи, скопируйте синтаксис команды, вставьте его в приложение CLI, измените значения переменных и нажмите клавишу
Enter
.- При использовании Cloud Shell нажмите кнопку Попробовать в командах интерфейса командной строки, чтобы запустить Cloud Shell в разделенном окне браузера. Или можно открыть Cloud Shell в отдельной вкладке браузера.
- Если вы используете Azure CLI локально, запустите консольное приложение CLI и войдите в Azure CLI.
Выполните команду az extension add, чтобы установить или обновить расширение azure-iot до текущей версии.
az extension add --upgrade --name azure-iot
В приложении CLI выполните команду az group create, чтобы создать группу ресурсов. В следующей команде создается группа ресурсов с именем MyResourceGroup в расположении eastus.
Примечание
При необходимости можно задать другое расположение. Чтобы отобразить доступные расположения, выполните команду
az account list-locations
. В рамках работы с этим кратким руководством используется eastus, как показано в примере команды.az group create --name MyResourceGroup --location eastus
Создайте Центр Интернета вещей с помощью команды 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}
Это значение понадобится позже в рамках этого краткого руководства.
Моделирование устройства
Приложение имитированного устройства подключается к конечной точке конкретного устройства в Центре Интернета вещей, отправляет имитированные данные телеметрии и ожидает передачи данных при вызове прямого метода из центра. В рамках этого краткого руководства вызов прямого метода из центра инициирует изменение интервала, с которым устройство отправляет данные телеметрии. После выполнения прямого метода имитированное устройство отправляет подтверждение в центр.
В окне терминала на локальном компьютере перейдите в корневую папку примера проекта C#. Затем перейдите к папке iothub\device\samples\Getting Started\SimulatedDeviceWithCommand .
Установите необходимые пакеты приложения имитированного устройства, выполнив следующую команду:
dotnet restore
Создайте и запустите приложение имитированного устройства, выполнив следующую команду.
{DeviceConnectionString}
: Замените заполнитель строкой подключения к устройству, которую вы записали ранее.dotnet run -- -c "{DeviceConnectionString}"
На следующем снимке экрана показан пример выходных данных, когда приложение имитированного устройства отправляет данные телеметрии в Центр Интернета вещей:
Вызов прямого метода
Приложение-служба подключается к конечной точке на стороне службы в Центре Интернета вещей. Приложение выполняет вызовы прямых методов к устройству через Центр Интернета вещей и ожидает подтверждений. Приложение-служба Центра Интернета вещей обычно работает в облаке.
В другом окне терминала на локальном компьютере перейдите в корневую папку примера проекта C#. Затем перейдите к папке iothub\service\samples\Getting Started\InvokeDeviceMethod .
Установите необходимые библиотеки приложения-службы, выполнив в окне терминала на локальном компьютере следующие команды:
dotnet build
Создайте и запустите приложение службы, выполнив в окне терминала на локальном компьютере следующие команды.
{ServiceConnectionString}
: Замените заполнитель строкой подключения к Центру Интернета вещей, которую вы записали ранее.{DeviceName}
: Замените этот заполнитель именем зарегистрированного устройства.dotnet run -- -c "{ServiceConnectionString}" -d {DeviceName}
На следующем снимке экрана показан пример выходных данных, когда приложение выполняет вызов прямого метода к устройству и получает подтверждение:
После запуска приложения-службы в окне консоли, в котором выполняется имитированное устройство, отобразится сообщение и изменится интервал, с которым это приложение отправляет сообщения:
В этом кратком руководстве используется два приложения Java:
- Приложение имитированного устройства, реагирующее на прямые методы, вызванные из внутреннего приложения.
- Приложение-служба, вызывающее прямой метод на имитированном устройстве.
Предварительные требования
Учетная запись Azure с активной подпиской. Создайте бесплатно.
Пакет SDK для Java SE 8. В статье Долгосрочная поддержка Java для Azure и Azure Stack выберите пункт Java 8 в разделе Долгосрочная поддержка.
Текущую версию Java на компьютере, на котором ведется разработка, можно проверить, используя следующую команду:
java -version
-
Текущую версию 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, этот раздел можно пропустить.
Чтобы создать центр Интернета вещей и группу ресурсов, выполните следующие действия:
Запустите приложение CLI. Чтобы выполнить команды CLI, приведенные в оставшейся части этой статьи, скопируйте синтаксис команды, вставьте его в приложение CLI, измените значения переменных и нажмите клавишу
Enter
.- При использовании Cloud Shell нажмите кнопку Попробовать в командах интерфейса командной строки, чтобы запустить Cloud Shell в разделенном окне браузера. Или можно открыть Cloud Shell в отдельной вкладке браузера.
- Если вы используете Azure CLI локально, запустите консольное приложение CLI и войдите в Azure CLI.
Выполните команду az extension add, чтобы установить или обновить расширение azure-iot до текущей версии.
az extension add --upgrade --name azure-iot
В приложении CLI выполните команду az group create, чтобы создать группу ресурсов. В следующей команде создается группа ресурсов с именем MyResourceGroup в расположении eastus.
Примечание
При необходимости можно задать другое расположение. Чтобы отобразить доступные расположения, выполните команду
az account list-locations
. В рамках работы с этим кратким руководством используется eastus, как показано в примере команды.az group create --name MyResourceGroup --location eastus
Создайте Центр Интернета вещей с помощью команды az iot hub create. Создание Центра Интернета вещей может занять несколько минут.
YourIotHubName Замените этот заполнитель и окружающие фигурные скобки в указанной ниже команде именем своего центра Интернета вещей. Имя центра Интернета вещей должно быть уникальным по всему Azure. Используйте имя центра Интернета вещей при работе с оставшейся частью этого краткого руководства везде вместо заполнителя.
az iot hub create --resource-group MyResourceGroup --name {your_iot_hub_name}
Регистрация устройства
Устройство должно быть зарегистрировано в Центре Интернета вещей, прежде чем оно сможет подключиться. В этом разделе рассматривается создание удостоверения устройства с помощью Azure CLI.
Если устройство уже зарегистрировано в центре Интернета вещей, этот раздел можно пропустить.
Создание удостоверения устройства:
В оболочке 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}
Выполните команду 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>
Сохраните строку подключения в безопасном расположении.
Примечание
Оставьте приложения 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}
Это значение понадобится позже в рамках этого краткого руководства. Строка подключения к службе отличается от строки подключения к устройству из предыдущего шага.
Моделирование устройства
Приложение имитированного устройства подключается к конечной точке конкретного устройства в Центре Интернета вещей, отправляет имитированные данные телеметрии и ожидает передачи данных при вызове прямого метода из центра. В рамках этого краткого руководства вызов прямого метода из центра инициирует изменение интервала, с которым устройство отправляет данные телеметрии. После выполнения прямого метода имитированное устройство отправляет подтверждение в центр.
В окне терминала на локальном компьютере перейдите в корневую папку примера проекта Java. Затем перейдите в папку iot-hub\Quickstarts\simulated-device-2.
Откройте файл src/main/java/com/microsoft/docs/iothub/samples/SimulatedDevice.java в любом текстовом редакторе.
Замените значение переменной
connString
записанной ранее строкой подключения к устройству. Сохраните изменения в файле SimulatedDevice.java.Установите необходимые библиотеки и создайте приложение имитированного устройства, выполнив в окне локального терминала следующие команды:
mvn clean package
Запустите приложение имитированного устройства, выполнив в окне терминала на локальном компьютере следующие команды:
java -jar target/simulated-device-2-1.0.0-with-deps.jar
На следующем снимке экрана показан пример выходных данных, когда приложение имитированного устройства отправляет данные телеметрии в Центр Интернета вещей:
Вызов прямого метода
Внутреннее приложение подключается к конечной точке на стороне службы в Центре Интернета вещей. Приложение выполняет вызовы прямых методов к устройству через Центр Интернета вещей и ожидает подтверждений. Внутреннее приложение Центра Интернета вещей обычно работает в облаке.
В другом окне терминала на локальном компьютере перейдите в корневую папку примера проекта Java. Затем перейдите в папку iot-hub\Quickstarts\back-end-application.
Откройте файл src/main/java/com/microsoft/docs/iothub/samples/BackEndApplication.java в любом текстовом редакторе.
Замените значение переменной
iotHubConnectionString
записанной ранее строкой подключения к службе. Сохраните изменения в файле BackEndApplication.java.Установите необходимые библиотеки и создайте внутреннее приложение, выполнив в окне терминала на локальном компьютере следующие команды:
mvn clean package
Запустите внутреннее приложение, выполнив в окне терминала на локальном компьютере следующие команды:
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, этот раздел можно пропустить.
Чтобы создать центр Интернета вещей и группу ресурсов, выполните следующие действия:
Запустите приложение CLI. Чтобы выполнить команды CLI, приведенные в оставшейся части этой статьи, скопируйте синтаксис команды, вставьте его в приложение CLI, измените значения переменных и нажмите клавишу
Enter
.- При использовании Cloud Shell нажмите кнопку Попробовать в командах интерфейса командной строки, чтобы запустить Cloud Shell в разделенном окне браузера. Или можно открыть Cloud Shell в отдельной вкладке браузера.
- Если вы используете Azure CLI локально, запустите консольное приложение CLI и войдите в Azure CLI.
Выполните команду az extension add, чтобы установить или обновить расширение azure-iot до текущей версии.
az extension add --upgrade --name azure-iot
В приложении CLI выполните команду az group create, чтобы создать группу ресурсов. В следующей команде создается группа ресурсов с именем MyResourceGroup в расположении eastus.
Примечание
При необходимости можно задать другое расположение. Чтобы отобразить доступные расположения, выполните команду
az account list-locations
. В рамках работы с этим кратким руководством используется eastus, как показано в примере команды.az group create --name MyResourceGroup --location eastus
Создайте Центр Интернета вещей с помощью команды az iot hub create. Создание Центра Интернета вещей может занять несколько минут.
YourIotHubName Замените этот заполнитель и окружающие фигурные скобки в указанной ниже команде именем своего центра Интернета вещей. Имя центра Интернета вещей должно быть уникальным по всему Azure. Используйте имя центра Интернета вещей при работе с оставшейся частью этого краткого руководства везде вместо заполнителя.
az iot hub create --resource-group MyResourceGroup --name {your_iot_hub_name}
Регистрация устройства
Устройство должно быть зарегистрировано в Центре Интернета вещей, прежде чем оно сможет подключиться. В этом разделе рассматривается создание удостоверения устройства с помощью Azure CLI.
Если устройство уже зарегистрировано в центре Интернета вещей, этот раздел можно пропустить.
Создание удостоверения устройства:
В оболочке 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}
Выполните команду 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>
Сохраните строку подключения в безопасном расположении.
Примечание
Оставьте приложения 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}
Это значение понадобится позже в рамках этого краткого руководства. Строка подключения к службе отличается от строки подключения к устройству из предыдущего шага.
Моделирование устройства
Приложение имитированного устройства подключается к конечной точке конкретного устройства в Центре Интернета вещей, отправляет имитированные данные телеметрии и ожидает передачи данных при вызове прямого метода из центра. В рамках этого краткого руководства вызов прямого метода из центра инициирует изменение интервала, с которым устройство отправляет данные телеметрии. После выполнения прямого метода имитированное устройство отправляет подтверждение в центр.
В окне терминала на локальном компьютере перейдите в корневую папку примера проекта Node.js. Затем перейдите в папку iot-hub\Quickstarts\simulated-device-2.
Откройте файл SimulatedDevice.js в любом текстовом редакторе.
Замените значение переменной
connectionString
записанной ранее строкой подключения к устройству. Сохраните изменения в файле SimulatedDevice.js.Установите необходимые библиотеки и запустите приложение имитированного устройства, выполнив в окне локального терминала следующие команды:
npm install node SimulatedDevice.js
На следующем снимке экрана показан пример выходных данных, когда приложение имитированного устройства отправляет данные телеметрии в Центр Интернета вещей:
Вызов прямого метода
Внутреннее приложение подключается к конечной точке на стороне службы в Центре Интернета вещей. Приложение выполняет вызовы прямых методов к устройству через Центр Интернета вещей и ожидает подтверждений. Внутреннее приложение Центра Интернета вещей обычно работает в облаке.
В другом окне терминала на локальном компьютере перейдите в корневую папку примера проекта Node.js. Затем перейдите в папку iot-hub\Quickstarts\back-end-application.
Откройте файл BackEndApplication.js в любом текстовом редакторе.
Замените значение переменной
connectionString
записанной ранее строкой подключения к службе. Сохраните изменения в файле BackEndApplication.js.Установите необходимые библиотеки и запустите внутреннее приложение, выполнив в окне локального терминала следующие команды:
npm install node BackEndApplication.js
На следующем снимке экрана показан пример выходных данных, когда приложение выполняет вызов прямого метода к устройству и получает подтверждение:
После запуска внутреннего приложения в окне консоли, в котором выполняется имитированное устройство, отобразится сообщение и изменится интервал, с которым это приложение отправляет сообщения:
В этом кратком руководстве используется два приложения Python:
- Приложение имитированного устройства, реагирующее на прямые методы, вызванные из внутреннего приложения.
- Внутреннее приложение, вызывающее прямые методы в имитированном устройстве.
Предварительные требования
Учетная запись Azure с активной подпиской. Создайте бесплатно.
Python версии 3.7 и выше. Сведения о других поддерживаемых версиях Python см. в разделе о возможностях устройств Azure IoT.
Клонирование или скачивание Примеров Python для 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, этот раздел можно пропустить.
Чтобы создать центр Интернета вещей и группу ресурсов, выполните следующие действия:
Запустите приложение CLI. Чтобы выполнить команды CLI, приведенные в оставшейся части этой статьи, скопируйте синтаксис команды, вставьте ее в приложение CLI, измените значения переменных и нажмите клавишу
Enter
.- При использовании Cloud Shell нажмите кнопку Попробовать в командах интерфейса командной строки, чтобы запустить Cloud Shell в разделенном окне браузера. Или можно открыть Cloud Shell в отдельной вкладке браузера.
- Если вы используете Azure CLI локально, запустите консольное приложение CLI и войдите в Azure CLI.
Выполните команду az extension add, чтобы установить или обновить расширение azure-iot до текущей версии.
az extension add --upgrade --name azure-iot
В приложении CLI выполните команду az group create, чтобы создать группу ресурсов. В следующей команде создается группа ресурсов с именем MyResourceGroup в расположении eastus.
Примечание
При необходимости можно задать другое расположение. Чтобы отобразить доступные расположения, выполните команду
az account list-locations
. В рамках работы с этим кратким руководством используется eastus, как показано в примере команды.az group create --name MyResourceGroup --location eastus
Создайте Центр Интернета вещей с помощью команды az iot hub create. Создание Центра Интернета вещей может занять несколько минут.
YourIotHubName Замените этот заполнитель и окружающие фигурные скобки в указанной ниже команде именем своего центра Интернета вещей. Имя центра Интернета вещей должно быть уникальным по всему Azure. Используйте имя центра Интернета вещей при работе с оставшейся частью этого краткого руководства везде вместо заполнителя.
az iot hub create --resource-group MyResourceGroup --name {your_iot_hub_name}
Регистрация устройства
Устройство должно быть зарегистрировано в Центре Интернета вещей, прежде чем оно сможет подключиться. В этом разделе рассматривается создание удостоверения устройства с помощью Azure CLI.
Если устройство уже зарегистрировано в центре Интернета вещей, этот раздел можно пропустить.
Создание удостоверения устройства:
В оболочке 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}
Выполните команду 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>
Сохраните строку подключения в безопасном расположении.
Примечание
Оставьте приложения 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}
Это значение понадобится позже в рамках этого краткого руководства. Строка подключения к службе отличается от строки подключения к устройству из предыдущего шага.
Моделирование устройства
Приложение имитированного устройства подключается к конечной точке конкретного устройства в Центре Интернета вещей, отправляет имитированные данные телеметрии и ожидает передачи данных при вызове прямого метода из центра. В рамках этого краткого руководства вызов прямого метода из центра инициирует изменение интервала, с которым устройство отправляет данные телеметрии. После выполнения прямого метода имитированное устройство отправляет подтверждение в центр.
В окне терминала на локальном компьютере перейдите в корневую папку примера проекта Python. Затем перейдите в папку iot-hub\Quickstarts\simulated-device-2.
Откройте файл SimulatedDeviceSync.py в любом текстовом редакторе.
Замените значение переменной
CONNECTION_STRING
записанной ранее строкой подключения к устройству. Затем сохраните изменения в SimulatedDeviceSync.py.Установите необходимые библиотеки для приложения имитированного устройства, выполнив в окне терминала на локальном компьютере следующие команды:
pip install azure-iot-device
Запустите приложение имитированного устройства, выполнив в окне терминала на локальном компьютере следующие команды:
python SimulatedDeviceSync.py
На следующем снимке экрана показан пример выходных данных, когда приложение имитированного устройства отправляет данные телеметрии в Центр Интернета вещей:
Вызов прямого метода
Внутреннее приложение подключается к конечной точке на стороне службы в Центре Интернета вещей. Приложение выполняет вызовы прямых методов к устройству через Центр Интернета вещей и ожидает подтверждений. Внутреннее приложение Центра Интернета вещей обычно работает в облаке.
В другом окне терминала на локальном компьютере перейдите в корневую папку примера проекта Python. Затем перейдите в папку iot-hub\Quickstarts\back-end-application.
Откройте файл BackEndApplication.py в любом текстовом редакторе.
Замените значение переменной
CONNECTION_STRING
записанной ранее строкой подключения к службе. Сохраните изменения в файле BackEndApplication.py.Установите необходимые библиотеки для приложения имитированного устройства, выполнив в окне терминала на локальном компьютере следующие команды:
pip install azure-iot-hub
Запустите внутреннее приложение, выполнив в окне терминала на локальном компьютере следующие команды:
python BackEndApplication.py
На следующем снимке экрана показан пример выходных данных, когда приложение выполняет вызов прямого метода к устройству и получает подтверждение:
После запуска внутреннего приложения в окне консоли, в котором выполняется имитированное устройство, отобразится сообщение и изменится интервал, с которым это приложение отправляет сообщения:
Очистка ресурсов
Можно сохранить созданные ресурсы и повторно использовать их при выполнении задач в следующей рекомендуемой статье, если вы планируете перейти к ней.
Если нет, вы можете удалить ресурсы Azure, созданные в рамках этой статьи, чтобы избежать расходов.
Важно!
Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не ту группу ресурсов или не те ресурсы. Если вы создали Центр Интернета вещей в группе ресурсов, содержащей ресурсы, которые нужно сохранить, удалите только ресурс Центра Интернета вещей, не удаляя всю группу ресурсов.
Удаление группы ресурсов по имени:
Войдите в портал Azure и выберитеГруппы ресурсов.
В текстовое поле Фильтровать по имени введите имя группы ресурсов, содержащей Центр Интернета вещей.
Справа от своей группы ресурсов в списке результатов щелкните ..., а затем выберите Удалить группу ресурсов.
Подтвердите операцию удаления группы ресурсов. Снова введите имя группы ресурсов, которую необходимо удалить, и щелкните Удалить. Через некоторое время группа ресурсов и все ее ресурсы будут удалены.
Дальнейшие действия
С помощью этого краткого руководства вы вызвали прямой метод на устройстве из приложения-службы, а также ответили на этот вызов в приложении имитированного устройства.
Чтобы узнать, как маршрутизировать сообщения с устройства в облако в разные расположения в облаке, перейдите к следующему руководству.