Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве вы используете прямой метод для управления имитируемым устройством, подключенным к Центру Интернета вещей. Центр Интернета вещей — это служба Azure, которая позволяет управлять устройствами Интернета вещей из облака и приема больших объемов данных телеметрии устройств в облако для хранения или обработки. Вы можете использовать прямые методы для удаленного изменения поведения устройств, подключенных к Центру Интернета вещей.
В кратком руководстве используются два предварительно написанных приложения .NET:
Имитированное приложение устройства, которое реагирует на прямые методы, вызываемые из приложения-службы. Чтобы получать прямые обращения к методам, это приложение подключается к конечной точке, специфичной для устройства, на вашем узле IoT.
Служебное приложение, выполняющее вызов прямых методов на имитированном устройстве. Чтобы вызвать прямой метод на устройстве, это приложение подключается к конечной точке на стороне службы в IoT-хабе.
Предпосылки
Учетная запись Azure с активной подпиской. Создайте ее бесплатно.
Два примера приложений, которые вы запускаете в этом кратком руководстве, написаны с помощью C#. Вам нужен пакет SDK для .NET версии 6.0 или более поздней версии на компьютере разработки.
Пакет SDK для .NET Core, предназначенный для нескольких платформ, можно скачать из раздела, посвященного .NET.
Текущую версию C# на компьютере, на котором ведется разработка, можно проверить, используя следующую команду:
dotnet --version
Клонируйте или скачайте SDK Microsoft Azure IoT для .NET из репозитория на GitHub. Примеры приложений, используемых этим кратким руководством, включены в пакет SDK.
Убедитесь, что в брандмауэре открыт порт 8883. В примере устройства в этом кратком руководстве используется протокол MQTT, который взаимодействует через порт 8883. Этот порт может быть заблокирован в некоторых корпоративных и образовательных сетевых средах. Дополнительные сведения и способы решения этой проблемы см. в разделе "Подключение к Центру Интернета вещей " в разделе "Обмен данными с центром Интернета вещей" с помощью протокола MQTT.
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье "Начало работы с Azure Cloud Shell".
Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, попробуйте запустить Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы завершить процесс проверки подлинности, выполните действия, отображаемые в терминале. Сведения о других параметрах входа см. в статье "Проверка подлинности в Azure с помощью Azure CLI".
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений и управление ими с помощью Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Примечание.
В этой статье используется последняя версия расширения Интернета вещей Azure, называемая 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. Используйте имя вашего IoT-центра в дальнейшей части этого краткого руководства, где указано место для этого.
az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
Получение строки подключения службы
Кроме того, вам потребуется строка подключения к службе Центра Интернета вещей, чтобы разрешить приложению-службе подключаться к центру и получать сообщения. Строка подключения службы для центра Интернета вещей в целом отличается от строки подключения устройства, полученной в предыдущем разделе.
Следующая команда извлекает строку подключения службы для центра Интернета вещей:
az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table
Запишите строку подключения службы, которая выглядит следующим образом:
HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}
Вы будете использовать это значение позже в кратком руководстве.
Имитация устройства
Приложение симулированного устройства подключается к конечной точке для конкретного устройства на вашем IoT-хабе, отправляет симулированные данные телеметрии и ожидает прямые вызовы методов от вашего концентратора IoT. В этом кратком руководстве вызов прямого метода из концентратора сообщает устройству изменить интервал, с помощью которого он отправляет данные телеметрии. Имитированное устройство отправляет подтверждение обратно в центр после выполнения прямого метода.
В окне локального терминала перейдите в корневую папку пакета SDK. Затем перейдите к папке iothub\device\samples\get started\SimulatedDeviceWithCommand .
Выполните следующую команду, чтобы установить необходимые пакеты для имитированного приложения устройства:
dotnet restore
Выполните следующую команду, чтобы создать и запустить имитированное приложение устройства.
{DeviceConnectionString}
: замените этот заполнитель строкой подключения устройства, указанной ранее.dotnet run -- -c "{DeviceConnectionString}"
На следующем снимке экрана показан пример выходных данных, когда приложение имитированного устройства отправляет данные телеметрии в Центр Интернета вещей:
Вызов прямого метода
Приложение-служба подключается к конечной точке на стороне службы в Центре Интернета вещей. Приложение выполняет вызовы методов напрямую к устройству через ваш Центр Интернета вещей и прослушивает подтверждения. Приложение службы Центра Интернета вещей обычно выполняется в облаке.
В другом окне локального терминала перейдите в корневую папку пакета SDK. Затем перейдите к папке iothub\service\samples\get started\InvokeDeviceMethod .
В окне локального терминала выполните следующие команды, чтобы установить необходимые библиотеки для приложения-службы:
dotnet build
В окне локального терминала выполните следующие команды, чтобы создать и запустить приложение-службу.
{ServiceConnectionString}
: замените этот заполнитель строкой подключения службы Центра Интернета вещей, отмеченной ранее.{DeviceName}
: замените этот заполнитель именем зарегистрированного устройства.dotnet run -- -c "{ServiceConnectionString}" -d {DeviceName}
На следующем снимке экрана показано, как приложение выполняет прямой вызов метода на устройство и получает подтверждение:
После запуска приложения службы вы увидите сообщение в окне локального терминала, на котором выполняется имитированное устройство, и скорость отправки сообщений изменяется:
В этом кратком руководстве используются два приложения Java:
- Имитированное приложение устройства, которое реагирует на прямые методы, вызываемые из серверного приложения.
- Служебное приложение, которое вызывает прямой метод на имитированном устройстве.
Предпосылки
Учетная запись Azure с активной подпиской. Создайте ее бесплатно.
Пакет разработки Java SE 8. В долгосрочной поддержке Java для Azure и Azure Stack в рамках долгосрочной поддержки выберите Java 8.
Текущую версию Java можно проверить на компьютере разработки с помощью следующей команды:
java -version
-
Текущую версию Maven можно проверить на компьютере разработки с помощью следующей команды:
mvn --version
Клонируйте или скачайте примеры Интернета вещей Azure для Java из GitHub.
Убедитесь, что в брандмауэре открыт порт 8883. В примере устройства в этом кратком руководстве используется протокол MQTT, который взаимодействует через порт 8883. Этот порт может быть заблокирован в некоторых корпоративных и образовательных сетевых средах. Дополнительные сведения и способы решения этой проблемы см. в разделе "Подключение к Центру Интернета вещей " в разделе "Обмен данными с центром Интернета вещей" с помощью протокола MQTT.
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье "Начало работы с Azure Cloud Shell".
Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, попробуйте запустить Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы завершить процесс проверки подлинности, выполните действия, отображаемые в терминале. Сведения о других параметрах входа см. в статье "Проверка подлинности в Azure с помощью Azure CLI".
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений и управление ими с помощью Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Примечание.
В этой статье используется последняя версия расширения Интернета вещей Azure, называемая 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. Используйте имя вашего IoT-центра в дальнейшей части этого краткого руководства, где указано место для этого.
az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
Регистрация устройства
Устройство должно быть зарегистрировано в центре Интернета вещей, прежде чем оно сможет подключиться. В этом разделе вы используете Azure CLI для создания удостоверения устройства.
Если устройство уже зарегистрировано в центре Интернета вещей, этот раздел можно пропустить.
Чтобы создать удостоверение устройства:
В оболочке CLI выполните команду az iot hub device-identity create. Эта команда создает идентификатор устройства.
YourIoTHubName. Замените этот заполнитель и окружающие фигурные скобки в указанной ниже команде именем своего центра Интернета вещей. Имя центра Интернета вещей должно быть уникальным по всему Azure.
myDevice. Это имя можно использовать для идентификатора устройства в этой статье или указать другое имя устройства.
az iot hub device-identity create --device-id myDevice --hub-name {YourIoTHubName}
Выполните команду az iot hub device-identity connection-string show.
az iot hub device-identity connection-string show --device-id myDevice --hub-name {YourIoTHubName}
Выходные данные строки подключения имеют следующий формат:
HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
Сохраните строку подключения в безопасном расположении.
Примечание.
Оставьте приложение CLI открытым. Вы используете его в последующих шагах.
Получение строки подключения службы
Для того чтобы серверное приложение могло подключиться к вашему IoT-хабу и получить сообщения, вам также требуется строка подключения к службе. Следующая команда извлекает строку подключения службы для центра Интернета вещей:
YourIoTHubName: замените этот заполнитель в следующей команде именем, выбранным для центра Интернета вещей.
az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table
Запишите строку подключения службы, которая выглядит следующим образом:
HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}
Вы используете это значение позже в кратком руководстве. Эта строка подключения службы отличается от строки подключения устройства, указанной на предыдущем шаге.
Имитация устройства
Приложение имитированного устройства подключается к конечной точке для конкретного устройства в вашем IoT-хабе, отправляет симулированную телеметрию и прослушивает прямые вызовы методов из хаба. В этом кратком руководстве вызов прямого метода из концентратора сообщает устройству изменить интервал, с помощью которого он отправляет данные телеметрии. Имитированное устройство отправляет подтверждение обратно в центр после выполнения прямого метода.
В окне локального терминала перейдите в корневую папку примера проекта 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
На следующем снимке экрана показан пример выходных данных, когда приложение имитированного устройства отправляет данные телеметрии в Центр Интернета вещей:
Вызовите прямой метод
Серверное приложение подключается к конечной точке на стороне службы в Центре Интернета вещей. Приложение выполняет прямые вызовы методов к устройству через IoT-хаб и прослушивает подтверждения. Серверное приложение Центра Интернета вещей обычно выполняется в облаке.
В другом окне локального терминала перейдите в корневую папку примера проекта 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 на компьютере, на котором ведется разработка, можно проверить, используя следующую команду:
node --version
Клонируйте или скачайте примеры Node.js Интернета вещей Azure из GitHub.
Убедитесь, что в брандмауэре открыт порт 8883. В примере устройства в этом кратком руководстве используется протокол MQTT, который взаимодействует через порт 8883. Этот порт может быть заблокирован в некоторых корпоративных и образовательных сетевых средах. Дополнительные сведения и способы решения этой проблемы см. в разделе "Подключение к Центру Интернета вещей " в разделе "Обмен данными с центром Интернета вещей" с помощью протокола MQTT.
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье "Начало работы с Azure Cloud Shell".
Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, попробуйте запустить Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы завершить процесс проверки подлинности, выполните действия, отображаемые в терминале. Сведения о других параметрах входа см. в статье "Проверка подлинности в Azure с помощью Azure CLI".
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений и управление ими с помощью Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Примечание.
В этой статье используется последняя версия расширения Интернета вещей Azure, называемая 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. Используйте имя вашего IoT-центра в дальнейшей части этого краткого руководства, где указано место для этого.
az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
Регистрация устройства
Устройство должно быть зарегистрировано в центре Интернета вещей, прежде чем оно сможет подключиться. В этом разделе вы используете Azure CLI для создания удостоверения устройства.
Если устройство уже зарегистрировано в центре Интернета вещей, этот раздел можно пропустить.
Создание удостоверения устройства:
В оболочке CLI выполните команду az iot hub device-identity create. Эта команда создает идентификатор устройства.
YourIoTHubName. Замените этот заполнитель и окружающие фигурные скобки в указанной ниже команде именем своего центра Интернета вещей. Имя центра Интернета вещей должно быть уникальным по всему Azure.
myDevice. Это имя можно использовать для идентификатора устройства в этой статье или указать другое имя устройства.
az iot hub device-identity create --device-id myDevice --hub-name {YourIoTHubName}
Выполните команду az iot hub device-identity connection-string show.
az iot hub device-identity connection-string show --device-id myDevice --hub-name {YourIoTHubName}
Выходные данные строки подключения имеют следующий формат:
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
На следующем снимке экрана показан пример выходных данных, когда приложение имитированного устройства отправляет данные телеметрии в Центр Интернета вещей:
Вызов прямого метода
Серверное приложение подключается к конечной точке на стороне службы в Центре Интернета вещей. Приложение осуществляет прямые вызовы функций к устройству через ваш IoT-хаб и ожидает подтверждения. Серверное приложение Центра Интернета вещей обычно выполняется в облаке.
В другом окне локального терминала перейдите в корневую папку примера проекта 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".
Клонируйте или скачайте примеры Python Azure IoT из GitHub.
Убедитесь, что в брандмауэре открыт порт 8883. В примере устройства в этом кратком руководстве используется протокол MQTT, который взаимодействует через порт 8883. Этот порт может быть заблокирован в некоторых корпоративных и образовательных сетевых средах. Дополнительные сведения и способы решения этой проблемы см. в разделе "Подключение к Центру Интернета вещей " в разделе "Обмен данными с центром Интернета вещей" с помощью протокола MQTT.
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье "Начало работы с Azure Cloud Shell".
Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, попробуйте запустить Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы завершить процесс проверки подлинности, выполните действия, отображаемые в терминале. Сведения о других параметрах входа см. в статье "Проверка подлинности в Azure с помощью Azure CLI".
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений и управление ими с помощью Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Примечание.
В этой статье используется последняя версия расширения Интернета вещей Azure, называемая 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. Используйте имя вашего IoT-центра в дальнейшей части этого краткого руководства, где указано место для этого.
az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
Регистрация устройства
Устройство должно быть зарегистрировано в центре Интернета вещей, прежде чем оно сможет подключиться. В этом разделе вы используете Azure CLI для создания удостоверения устройства.
Если устройство уже зарегистрировано в центре Интернета вещей, этот раздел можно пропустить.
Чтобы создать удостоверение устройства:
В оболочке CLI выполните команду az iot hub device-identity create. Эта команда создает идентификатор устройства.
YourIoTHubName. Замените этот заполнитель и окружающие фигурные скобки в указанной ниже команде именем своего центра Интернета вещей. Имя центра Интернета вещей должно быть уникальным по всему Azure.
myDevice. Это имя можно использовать для идентификатора устройства в этой статье или указать другое имя устройства.
az iot hub device-identity create --device-id myDevice --hub-name {YourIoTHubName}
Выполните команду az iot hub device-identity connection-string show.
az iot hub device-identity connection-string show --device-id myDevice --hub-name {YourIoTHubName}
Выходные данные строки подключения имеют следующий формат:
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 и выберитеГруппы ресурсов.
В текстовом поле "Фильтр" введите имя группы ресурсов, содержащей центр Интернета вещей.
В списке результатов выберите группу ресурсов, содержащую центр Интернета вещей.
В рабочей области группы ресурсов выберите "Удалить группу ресурсов " на панели команд.
Подтвердите операцию удаления группы ресурсов. Снова введите имя группы ресурсов, которую необходимо удалить, и щелкните Удалить. Через некоторое время группа ресурсов и все ее ресурсы будут удалены.
Дальнейшие действия
В этом кратком руководстве вы вызвали прямой метод на устройстве с помощью серверного приложения и ответили на вызов этого метода в имитированном приложении устройства.
Чтобы узнать, как направлять сообщения от устройства к разным местам назначения в облаке, перейдите к следующему руководству.