Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этом кратком руководстве вы используете прямой метод для управления имитируемым устройством, подключенным к Центру Интернета вещей. Центр Интернета вещей — это служба Azure, которая позволяет управлять устройствами Интернета вещей из облака и приема больших объемов данных телеметрии устройств в облако для хранения или обработки. Вы можете использовать прямые методы для удаленного изменения поведения устройств, подключенных к Центру Интернета вещей.
В кратком руководстве используются два предварительно написанных приложения .NET:
Имитированное приложение устройства, которое реагирует на прямые методы, вызываемые из приложения-службы. Чтобы получать прямые обращения к методам, это приложение подключается к конечной точке, специфичной для устройства, на вашем узле IoT.
Служебное приложение, выполняющее вызов прямых методов на имитированном устройстве. Чтобы вызвать прямой метод на устройстве, это приложение подключается к конечной точке на стороне службы в IoT-хабе.
Предпосылки
Учетная запись Azure с активной подпиской. Создайте ее бесплатно.
Два примера приложений, которые вы запускаете в этом кратком руководстве, написаны с помощью C#. Вам нужен пакет SDK для .NET версии 6.0 или более поздней версии на компьютере разработки.
Пакет SDK для .NET Core, предназначенный для нескольких платформ, можно скачать из раздела, посвященного .NET.
Текущую версию C# на компьютере, на котором ведется разработка, можно проверить, используя следующую команду:
dotnet --versionКлонируйте или скачайте Microsoft Azure IoT SDK для .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. Используйте имя центра Интернета вещей в остальной части этого краткого руководства везде, где видите замещающий текст.
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}"На следующем снимке экрана показан пример выходных данных, когда приложение имитированного устройства отправляет данные телеметрии в Центр Интернета вещей:
Вызовите прямой метод
Служебное приложение подключается к конечной точке со стороны службы в вашем Центре Интернета вещей. Приложение выполняет прямые вызовы методов к устройству через узел IoT и прослушивает подтверждения. Приложение службы Центра Интернета вещей обычно выполняется в облаке.
В другом окне локального терминала перейдите в корневую папку пакета 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. Используйте имя центра Интернета вещей в остальной части этого краткого руководства везде, где видите замещающий текст.
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-хабе, отправляет симулированные данные телеметрии и ожидает прямые вызовы методов от вашего концентратора 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:
- Имитированное приложение устройства, которое реагирует на прямые методы, вызываемые из серверного приложения. Чтобы получать прямые обращения к методам, это приложение подключается к конечной точке, специфичной для устройства, на вашем узле IoT.
- Серверное приложение, которое вызывает прямые методы на имитированном устройстве. Чтобы вызвать прямой метод на устройстве, это приложение подключается к конечной точке для конкретной службы в Центре Интернета вещей.
Предпосылки
Учетная запись 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. Используйте имя центра Интернета вещей в остальной части этого краткого руководства везде, где видите замещающий текст.
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}
Вы используете это значение позже в инструкции по быстрому запуску. Эта строка подключения службы отличается от строки подключения устройства, указанной на предыдущем шаге.
Имитация устройства
Приложение симулированного устройства подключается к конечной точке для конкретного устройства на вашем IoT-хабе, отправляет симулированные данные телеметрии и ожидает прямые вызовы методов от вашего концентратора IoT. В этом кратком руководстве концентратор с помощью прямого метода уведомляет устройство об изменении интервала для отправки телеметрии. Имитированное устройство отправляет подтверждение обратно в центр после выполнения прямого метода.
В окне локального терминала перейдите в корневую папку примера проекта 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. Используйте имя центра Интернета вещей в остальной части этого краткого руководства везде, где видите замещающий текст.
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-хабе, отправляет симулированные данные телеметрии и ожидает прямые вызовы методов от вашего концентратора IoT. В этом кратком руководстве концентратор с помощью прямого метода уведомляет устройство об изменении интервала для отправки телеметрии. Имитированное устройство отправляет подтверждение обратно в центр после выполнения прямого метода.
В окне локального терминала перейдите в корневую папку примера проекта Python. Затем перейдите в папку iot-hub\Quickstarts\simulated-device-2 .
Откройте файл SimulatedDeviceSync.py в текстовом редакторе.
Замените значение переменной
CONNECTION_STRINGстрокой подключения устройства, указанной ранее. Затем сохраните изменения в SimulatedDeviceSync.py.В окне локального терминала выполните следующие команды, чтобы установить необходимые библиотеки для имитированного приложения устройства:
pip install azure-iot-deviceВ окне локального терминала выполните следующие команды, чтобы запустить имитированное приложение устройства:
python SimulatedDeviceSync.pyНа следующем снимке экрана показан пример выходных данных, когда приложение имитированного устройства отправляет данные телеметрии в Центр Интернета вещей:
Вызовите прямой метод
Серверное приложение подключается к конечной точке на стороне службы в Центре Интернета вещей. Приложение выполняет прямые вызовы методов к устройству через узел IoT и прослушивает подтверждения. Серверное приложение Центра Интернета вещей обычно выполняется в облаке.
В другом окне локального терминала перейдите в корневую папку примера проекта Python. Затем перейдите в папку iot-hub\Quickstarts\back-end-application .
Откройте файл BackEndApplication.py в текстовом редакторе.
Замените значение переменной
CONNECTION_STRINGстрокой подключения службы, которую вы записали ранее. Затем сохраните изменения в BackEndApplication.py.В окне локального терминала выполните следующие команды, чтобы установить необходимые библиотеки для имитированного приложения устройства:
pip install azure-iot-hubВ окне локального терминала выполните следующие команды, чтобы запустить серверное приложение:
python BackEndApplication.pyНа следующем снимке экрана показано, как приложение выполняет прямой вызов метода на устройство и получает подтверждение:
После запуска серверного приложения появится сообщение в консольном окне, в котором отображается работа имитированного устройства, и изменяется скорость отправки сообщений.
Очистка ресурсов
Если вы продолжаете работу со следующей рекомендуемой статьей, вы можете сохранить уже созданные ресурсы и повторно использовать их.
В противном случае можно удалить ресурсы Azure, созданные в этой статье, чтобы избежать расходов.
Это важно
Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не ту группу ресурсов или не те ресурсы. Если вы создали Центр Интернета вещей в существующей группе ресурсов, содержащей ресурсы, которые нужно сохранить, удалите только сам ресурс Центра Интернета вещей вместо удаления группы ресурсов.
Удаление группы ресурсов по имени:
Войдите в портал Azure и выберитеГруппы ресурсов.
В текстовом поле "Фильтр" введите имя группы ресурсов, содержащей центр Интернета вещей.
В списке результатов выберите группу ресурсов, содержащую центр Интернета вещей.
В рабочей области группы ресурсов выберите "Удалить группу ресурсов " на панели команд.
Вам предлагается подтвердить удаление группы ресурсов. Снова введите имя группы ресурсов, которую необходимо удалить, и щелкните Удалить. Через некоторое время группа ресурсов и все ее ресурсы будут удалены.
Дальнейшие действия
В этом кратком руководстве вы вызвали прямой метод на устройстве с помощью служебного приложения и ответили на вызов прямого метода в приложении, имитирующем устройство.
Чтобы узнать, как направлять сообщения от устройства к разным местам назначения в облаке, перейдите к следующему руководству.