Краткое руководство. Отправка данных телеметрии в Центр Интернета вещей и их чтение с помощью приложения JavaQuickstart: Send telemetry to an Azure IoT hub and read it with a Java application

В этом руководстве описано, как отправлять данные телеметрии в Центр Интернета вещей и читать их с помощью приложения Java.The quickstart shows how to send telemetry to an Azure IoT hub and read it with a Java application. Центр Интернета вещей — это служба Azure, которая позволяет получать большие объемы телеметрии с ваших устройств Центра Интернета вещей в облаке на хранение или обработку.IoT Hub is an Azure service that enables you to ingest high volumes of telemetry from your IoT devices into the cloud for storage or processing. В рамках этого краткого руководства вы отправите данные телеметрии из приложения имитированного устройства через Центр Интернета вещей во внутреннее приложение для обработки.In this quickstart, you send telemetry from a simulated device application, through IoT Hub, to a back-end application for processing.

В этом кратком руководстве используется два предварительно созданных приложения Java (одно для отправки данных телеметрии, а другое для чтения телеметрии из центра).The quickstart uses two pre-written Java applications, one to send the telemetry and one to read the telemetry from the hub. Прежде чем запускать эти приложения, создайте Центр Интернета вещей и зарегистрируйте устройство в центре.Before you run these two applications, you create an IoT hub and register a device with the hub.

Использование Azure Cloud ShellUse Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Начало работы с Azure Cloud ShellTo start Azure Cloud Shell:

ПараметрOption Пример и ссылкаExample/Link
Нажмите кнопку Попробовать в правом верхнем углу блока с кодом.Select Try It in the upper-right corner of a code block. При нажатии кнопки Попробовать код не копируется в Cloud Shell автоматически.Selecting Try It doesn't automatically copy the code to Cloud Shell. Открытие Azure Cloud Shell с помощью кнопки "Попробовать"
Перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell, чтобы открыть Cloud Shell в браузере.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. Запуск Cloud Shell в новом окнеLaunch Cloud Shell in a new window
На портале Azure в правом верхнем углу в строке меню нажмите кнопку Cloud Shell.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Кнопка "Cloud Shell" на портале Azure

Чтобы выполнить код из этой статьи в Azure Cloud Shell, выполните следующие действия:To run the code in this article in Azure Cloud Shell:

  1. Запустите Cloud Shell.Start Cloud Shell.

  2. В блоке кода нажмите кнопку Копировать, чтобы скопировать код.Select the Copy button on a code block to copy the code.

  3. Вставьте код в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Нажмите клавишу ВВОД, чтобы выполнить код.Select Enter to run the code.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.If you don’t have an Azure subscription, create a free account before you begin.

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

Примеры приложений, запускаемые в рамках этого краткого руководства, написаны на языке Java.The two sample applications you run in this quickstart are written using Java. Вам потребуется Java SE 8 на компьютере для разработки.You need Java SE 8 on your development machine.

Ссылки на скачивание пакета SDK для Java SE 8 для разных платформ доступны на странице долгосрочной поддержки Java для Azure и Azure Stack.You can download Java SE Development Kit 8 for multiple platforms from Java long-term support for Azure and Azure Stack. Щелкните ссылку Java 8 в разделе Долгосрочная поддержка, чтобы скачать все необходимое для работы с JDK 8.Make sure you select Java 8 under Long-term support to get to downloads for JDK 8.

Текущую версию Java на компьютере, на котором ведется разработка, можно проверить, используя следующую команду:You can verify the current version of Java on your development machine using the following command:

java -version

Для создания примеров необходимо установить Maven версии 3.To build the samples, you need to install Maven 3. Maven, предназначенный для нескольких платформ, можно скачать в Apache Maven.You can download Maven for multiple platforms from Apache Maven.

Текущую версию Maven на компьютере, на котором ведется разработка, можно проверить, используя следующую команду:You can verify the current version of Maven on your development machine using the following command:

mvn --version

Выполните следующую команду, чтобы добавить расширение Интернета вещей Microsoft Azure для Azure CLI в экземпляр Cloud Shell.Run the following command to add the Microsoft Azure IoT Extension for Azure CLI to your Cloud Shell instance. Расширение Интернета вещей добавляет в Azure CLI специальные команды Центра Интернета вещей, IoT Edge и службы подготовки устройств Интернета вещей (DPS).The IOT Extension adds IoT Hub, IoT Edge, and IoT Device Provisioning Service (DPS) specific commands to Azure CLI.

az extension add --name azure-cli-iot-ext

Скачайте пример проекта Java по ссылке https://github.com/Azure-Samples/azure-iot-samples-java/archive/master.zip и извлеките ZIP-архив.Download the sample Java project from https://github.com/Azure-Samples/azure-iot-samples-java/archive/master.zip and extract the ZIP archive.

Создание Центра Интернета вещейCreate an IoT hub

В этом разделе описывается создание центра Интернета вещей с помощью портала Azure.This section describes how to create an IoT hub using the Azure portal.

  1. Войдите на портале Azure.Sign in to the Azure portal.

  2. На начальной странице портала Azure нажмите кнопку +Создать ресурс и введите текст Центр Интернета вещей в поле поиска в Marketplace.From the Azure homepage, select the + Create a resource button, and then enter IoT Hub in the Search the Marketplace field.

  3. В результатах поиска выберите Центр Интернета вещей и щелкните Создать.Select IoT Hub from the search results, and then select Create.

  4. Заполните следующие поля на вкладке Основные сведения.On the Basics tab, complete the fields as follows:

    • Подписка: Выберите нужную подписку для концентратора.Subscription: Select the subscription to use for your hub.

    • Группа ресурсов. Выберите группу ресурсов или создайте новую.Resource Group: Select a resource group or create a new one. Чтобы создать новую, щелкните Создать и введите нужное имя.To create a new one, select Create new and fill in the name you want to use. Чтобы выбрать существующую группу ресурсов, щелкните ее.To use an existing resource group, select that resource group. Дополнительные сведения о группах ресурсов см. в статье об управлении группами ресурсов в Azure Resource Manager.For more information, see Manage Azure Resource Manager resource groups.

    • Регион. Выберите регион, в котором будет расположен концентратор.Region: Select the region in which you want your hub to be located. Выберите ближайшее к вам расположение.Select the location closest to you.

    • Имя Центра Интернета вещей. Введите имя для концентратора.IoT Hub Name: Enter a name for your hub. Оно должно быть глобально уникальным.This name must be globally unique. Если введенное имя доступно, появится зеленая галочка.If the name you enter is available, a green check mark appears.

    Важно!

    Так как центр Интернета вещей будет общедоступен в качестве конечной точки DNS, убедитесь, что в его имени не фигурируют конфиденциальные или персональные сведения.Because the IoT hub will be publicly discoverable as a DNS endpoint, be sure to avoid entering any sensitive or personally identifiable information when you name it.

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

  5. По завершении выберите Next: Size and scale (Далее: размер и масштаб), чтобы продолжить создание концентратора.Select Next: Size and scale to continue creating your hub.

    Настройка параметров размера и масштаба для концентратора на портале Azure

    Этот экран позволяет задать следующие значения:This screen allows you to set the following values:

    • Ценовая категория и категория масштабирования. Выбранный уровень решения.Pricing and scale tier: Your selected tier. В зависимости от количества необходимых компонентов и ежедневно отправляемых сообщений с помощью решения, можно выбрать несколько уровней.You can choose from several tiers, depending on how many features you want and how many messages you send through your solution per day. Для тестирования и оценки можно использовать уровень "Бесплатный".The free tier is intended for testing and evaluation. Он позволяет подключить к концентратору 500 устройств и отправлять до 8000 сообщений в день.It allows 500 devices to be connected to the hub and up to 8,000 messages per day. Для каждой подписки Azure можно создать один центр Интернета вещей на уровне "Бесплатный".Each Azure subscription can create one IoT hub in the free tier.

    • Единицы центра Интернета вещей. Допустимое число сообщений за единицу в сутки зависит от ценовой категории концентратора.IoT Hub units: The number of messages allowed per unit per day depends on your hub's pricing tier. Например, если концентратор должен поддерживать 700 000 входящих сообщений, следует выбрать две единицы уровня S1.For example, if you want the hub to support ingress of 700,000 messages, you choose two S1 tier units. Дополнительные сведения о других параметрах уровня см. в статье Масштабирование решения для Центра Интернета вещей.For details about the other tier options, see Choosing the right IoT Hub tier.

    • Дополнительные параметры Settings > С устройства в облако: Это свойство привязывает сообщения, отправляемые с устройства в облако, к числу одновременно работающих модулей чтения этих сообщений.Advanced Settings > Device-to-cloud partitions: This property relates the device-to-cloud messages to the number of simultaneous readers of the messages. Для большинства концентраторов достаточно четырех разделов.Most hubs need only four partitions.

  6. Для работы с этим руководством подтвердите значения по умолчанию, а затем выберите Проверить и создать, чтобы просмотреть настройки.For this article, accept the default choices, and then select Review + create to review your choices. Отобразится примерно следующий экран.You see something similar to this screen.

    Просмотр сведений при создании концентратора

  7. Щелкните Создать, чтобы создать концентратор.Select Create to create your new hub. Создание центра занимает несколько минут.Creating the hub takes a few minutes.

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

Устройство должно быть зарегистрировано в Центре Интернета вещей, прежде чем оно сможет подключиться.A device must be registered with your IoT hub before it can connect. В этом кратком руководстве для регистрации имитируемого устройства используется Azure Cloud Shell.In this quickstart, you use the Azure Cloud Shell to register a simulated device.

  1. Выполните приведенные ниже команды в Azure Cloud Shell, чтобы создать удостоверение устройства.Run the following command in Azure Cloud Shell to create the device identity.

    YourIoTHubName. Замените этот заполнитель именем вашего центра Интернета вещей.YourIoTHubName: Replace this placeholder below with the name you chose for your IoT hub.

    MyJavaDevice. Это имя регистрируемого устройства.MyJavaDevice: This is the name of the device you're registering. Рекомендуется использовать MyJavaDevice, как показано ниже.It's recommended to use MyJavaDevice as shown. Если вы выбрали другое имя для устройства, используйте его при работе с этим руководством и обновите имя устройства в примерах приложений перед их запуском.If you choose a different name for your device, you'll also need to use that name throughout this article, and update the device name in the sample applications before you run them.

    az iot hub device-identity create --hub-name {YourIoTHubName} --device-id MyJavaDevice
    
  2. Выполните следующую команду в Azure Cloud Shell, чтобы получить строку подключения зарегистрированного устройства:Run the following command in Azure Cloud Shell to get the device connection string for the device you just registered:

    YourIoTHubName. Замените этот заполнитель именем вашего центра Интернета вещей.YourIoTHubName: Replace this placeholder below with the name you chose for your IoT hub.

    az iot hub device-identity show-connection-string --hub-name {YourIoTHubName} --device-id MyJavaDevice --output table
    

    Запишите строку подключения устройства, которая выглядит так:Make a note of the device connection string, which looks like:

    HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyJavaDevice;SharedAccessKey={YourSharedAccessKey}

    Это значение понадобится позже при работе с этим кратким руководством.You'll use this value later in the quickstart.

  3. Вам также понадобится конечная точка, совместимая с Центрами событий, путь, совместимый с Центрами событий, и первичный ключ службы из Центра Интернета вещей, чтобы подключить внутреннее приложение к Центру Интернета вещей и получить сообщения.You also need the Event Hubs-compatible endpoint, Event Hubs-compatible path, and service primary key from your IoT hub to enable the back-end application to connect to your IoT hub and retrieve the messages. Следующие команды позволяют получить эти значения для Центра Интернета вещей:The following commands retrieve these values for your IoT hub:

    YourIoTHubName. Замените этот заполнитель именем вашего центра Интернета вещей.YourIoTHubName: Replace this placeholder below with the name you chose for your IoT hub.

    az iot hub show --query properties.eventHubEndpoints.events.endpoint --name {YourIoTHubName}
    
    az iot hub show --query properties.eventHubEndpoints.events.path --name {YourIoTHubName}
    
    az iot hub policy show --name service --query primaryKey --hub-name {YourIoTHubName}
    

    Запишите эти три значения, они понадобятся позже при работе с этим кратким руководством.Make a note of these three values, which you'll use later in the quickstart.

Отправка имитированной телеметрииSend simulated telemetry

Приложение имитированного устройства подключается к конечной точке конкретного устройства Центра Интернета вещей и отправляет имитированную телеметрию температуры и влажности.The simulated device application connects to a device-specific endpoint on your IoT hub and sends simulated temperature and humidity telemetry.

  1. В окне терминала на локальном компьютере перейдите в корневую папку примера проекта Java.In a local terminal window, navigate to the root folder of the sample Java project. Затем перейдите в папку iot-hub\Quickstarts\simulated-device.Then navigate to the iot-hub\Quickstarts\simulated-device folder.

  2. Откройте файл src/main/java/com/microsoft/docs/iothub/samples/SimulatedDevice.java в любом текстовом редакторе.Open the src/main/java/com/microsoft/docs/iothub/samples/SimulatedDevice.java file in a text editor of your choice.

    Замените значение переменной connString записанной ранее строкой подключения к устройству.Replace the value of the connString variable with the device connection string you made a note of earlier. Сохраните изменения в файле SimulatedDevice.java.Then save your changes to SimulatedDevice.java.

  3. Установите необходимые библиотеки и создайте приложение имитированного устройства, выполнив в окне локального терминала следующие команды:In the local terminal window, run the following commands to install the required libraries and build the simulated device application:

    mvn clean package
    
  4. Запустите приложение имитированного устройства, выполнив в окне терминала на локальном компьютере следующие команды:In the local terminal window, run the following commands to run the simulated device application:

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

    На следующем снимке экрана показан пример выходных данных, когда приложение имитированного устройства отправляет данные телеметрии в Центр Интернета вещей:The following screenshot shows the output as the simulated device application sends telemetry to your IoT hub:

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

Чтение данных телеметрии из концентратораRead the telemetry from your hub

Внутреннее приложение подключается к конечной точке на стороне службы События в Центре Интернета вещей.The back-end application connects to the service-side Events endpoint on your IoT Hub. Приложение получает сообщения с устройства в облако, отправленные с имитированного устройства.The application receives the device-to-cloud messages sent from your simulated device. Внутреннее приложение Центра Интернета вещей обычно запускается в облаке, чтобы получать сообщения с устройства в облако и обрабатывать их.An IoT Hub back-end application typically runs in the cloud to receive and process device-to-cloud messages.

  1. В другом окне терминала на локальном компьютере перейдите в корневую папку примера проекта Java.In another local terminal window, navigate to the root folder of the sample Java project. Затем перейдите в папку iot-hub\Quickstarts\read-d2c-messages.Then navigate to the iot-hub\Quickstarts\read-d2c-messages folder.

  2. Откройте файл src/main/java/com/microsoft/docs/iothub/samples/ReadDeviceToCloudMessages.java в любом текстовом редакторе.Open the src/main/java/com/microsoft/docs/iothub/samples/ReadDeviceToCloudMessages.java file in a text editor of your choice. Обновите указанные ниже переменные и сохраните изменения в файле.Update the following variables and save your changes to the file.

    ПеременнаяVariable ЗначениеValue
    eventHubsCompatibleEndpoint Замените значение переменной записанной ранее конечной точкой, совместимой с Центрами событий.Replace the value of the variable with the Event Hubs-compatible endpoint you made a note of earlier.
    eventHubsCompatiblePath Замените значение переменной записанным ранее путем, совместимым с Центрами событий.Replace the value of the variable with the Event Hubs-compatible path you made a note of earlier.
    iotHubSasKey Замените значение переменной записанным ранее первичным ключом службы.Replace the value of the variable with the service primary key you made a note of earlier.
  3. Установите необходимые библиотеки и создайте внутреннее приложение, выполнив в окне терминала на локальном компьютере следующие команды:In the local terminal window, run the following commands to install the required libraries and build the back-end application:

    mvn clean package
    
  4. Запустите внутреннее приложение, выполнив в окне терминала на локальном компьютере следующие команды:In the local terminal window, run the following commands to run the back-end application:

    java -jar target/read-d2c-messages-1.0.0-with-deps.jar
    

    На следующем снимке экрана показан пример выходных данных, когда внутреннее приложение получает данные телеметрии, отправленные в концентратор имитированным устройством:The following screenshot shows the output as the back-end application receives telemetry sent by the simulated device to the hub:

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

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

Можно сохранить созданные ресурсы и повторно использовать их при выполнении задач в следующей рекомендуемой статье, если вы планируете перейти к ней.If you will be continuing to the next recommended article, you can keep the resources you've already created and reuse them.

Если нет, вы можете удалить ресурсы Azure, созданные в рамках этой статьи, чтобы избежать расходов.Otherwise, you can delete the Azure resources created in this article to avoid charges.

Важно!

Удаление группы ресурсов — процесс необратимый.Deleting a resource group is irreversible. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления.The resource group and all the resources contained in it are permanently deleted. Будьте внимательны, чтобы случайно не удалить не ту группу ресурсов или не те ресурсы.Make sure that you do not accidentally delete the wrong resource group or resources. Если вы создали Центр Интернета вещей в группе ресурсов, содержащей ресурсы, которые нужно сохранить, удалите только ресурс Центра Интернета вещей, не удаляя всю группу ресурсов.If you created the IoT Hub inside an existing resource group that contains resources you want to keep, only delete the IoT Hub resource itself instead of deleting the resource group.

Удаление группы ресурсов по имени:To delete a resource group by name:

  1. Войдите в портал Azure и выберитеГруппы ресурсов.Sign in to the Azure portal and select Resource groups.

  2. В текстовое поле Фильтровать по имени введите имя группы ресурсов, содержащей Центр Интернета вещей.In the Filter by name textbox, type the name of the resource group containing your IoT Hub.

  3. Справа от своей группы ресурсов в списке результатов щелкните ... , а затем выберите Удалить группу ресурсов.To the right of your resource group in the result list, select ... then Delete resource group.

    Удаление

  4. Подтвердите операцию удаления группы ресурсов.You will be asked to confirm the deletion of the resource group. Снова введите имя группы ресурсов, которую необходимо удалить, и щелкните Удалить.Type the name of your resource group again to confirm, and then select Delete. Через некоторое время группа ресурсов и все ее ресурсы будут удалены.After a few moments, the resource group and all of its contained resources are deleted.

Дополнительная информацияNext steps

В этом кратком руководстве вы настроили Центр Интернета вещей, зарегистрировали устройство, отправили имитированные данные телеметрии в центр с помощью приложения Java, а также считали данные телеметрии из центра, используя простое внутреннее приложение.In this quickstart, you set up an IoT hub, registered a device, sent simulated telemetry to the hub using a Java application, and read the telemetry from the hub using a simple back-end application.

Чтобы узнать, как управлять имитированным устройством из внутреннего приложения, перейдите к следующему краткому руководству.To learn how to control your simulated device from a back-end application, continue to the next quickstart.