Краткое руководство. Отправка данных телеметрии из устройства в Центр Интернета вещей и их чтение с помощью внутреннего приложения (C)Quickstart: Send telemetry from a device to an IoT hub and read it with a back-end application (C)

Центр Интернета вещей — это служба 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.

В этом кратком руководстве используется пример приложения C из пакета SDK для устройств Azure IoT для C для отправки данных телеметрии в центр Интернета вещей.The quickstart uses a C sample application from the Azure IoT device SDK for C to send telemetry to an IoT hub. Пакеты SDK для устройств Azure IoT написаны в соответствии со стандартом ANSI C (C99) для обеспечения переносимости и совместимости с широким диапазоном платформ.The Azure IoT device SDKs are written in ANSI C (C99) for portability and broad platform compatibility. Прежде чем запустить пример кода, вы создадите центр Интернета вещей и зарегистрируете в нем имитированное устройство.Before running the sample code, you will create an IoT hub and register the simulated device with that hub.

Данная статья написана для Windows, но вы можете выполнить шаги этого краткого руководства и на платформе Linux.This article written for Windows but you can complete this quickstart on Linux as well.

Открытие Azure Cloud ShellOpen Azure Cloud Shell

Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье.Azure Cloud Shell is a free, interactive shell that you can use to run the steps in this article. В Cloud Shell предварительно установлены и настроены общие инструменты Azure для использования с вашей учетной записью.Common Azure tools are preinstalled and configured in Cloud Shell for you to use with your account. Нажмите кнопку Копировать, чтобы скопировать код. Вставьте его в Cloud Shell и нажмите клавишу "ВВОД", чтобы выполнить код.Select Copy to copy the code, paste it in Cloud Shell, and then press Enter to run it. Cloud Shell можно открыть разными способами:There are a few ways to open Cloud Shell:

Нажмите кнопку Попробовать в правом верхнем углу блока с кодом.Select Try It in the upper-right corner of a code block. Открытие Azure Cloud Shell с помощью кнопки "Попробовать"
Откройте Cloud Shell в браузере.Open Cloud Shell in your browser. Запуск кнопки Azure Cloud ShellLaunch Azure Cloud Shell button
Нажмите кнопку меню Cloud Shell в правом верхнем углу окна портала Azure.Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. Кнопка "Cloud Shell" на портале Azure

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

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

  • Установите Visual Studio 2017 с включенной рабочей нагрузкой Разработка классических приложений на C++.Install Visual Studio 2017 with the 'Desktop development with C++' workload enabled.

  • Установите последнюю версию Git.Install the latest version of Git.

  • Выполните следующую команду, чтобы добавить расширение Интернета вещей 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
    

Подготовка среды разработкиPrepare the development environment

В этом кратком руководстве вы будете использовать пакет SDK для устройств Azure IoT для C.For this quickstart, you will be using the Azure IoT device SDK for C.

Этот пакет SDK можно использовать, установив пакеты и библиотеки для следующих сред:You can use the SDK by installing the packages and libraries for the following environments:

  • Linux: доступны пакеты apt-get для Ubuntu 16.04 и 18.04 на основе следующих процессорных архитектур: amd64, arm64, armhf и i386.Linux: apt-get packages are available for Ubuntu 16.04 and 18.04 using the following CPU architectures: amd64, arm64, armhf and i386. Дополнительные сведения см. в разделе Using apt-get to create a C device client project on Ubuntu (Создание проекта клиента для устройств на C в Ubuntu с помощью apt-get).For more information, see Using apt-get to create a C device client project on Ubuntu.

  • mbed: для разработчиков, создающих приложения для устройств на платформе mbed, мы опубликовали библиотеку и примеры, которые помогут всего за несколько минут приступить к работе с Центром Интернета вещей Azure.mbed: For developers creating device applications on the mbed platform, we have published a library and samples that will get you started in minutes witH Azure IoT Hub. Дополнительные сведения см. в разделе Use the mbed library (Использование библиотеки mbed).For more information, see Use the mbed library.

  • Arduino: если вы разрабатываете приложения на платформе Arduino, то вы можете использовать библиотеку Azure IoT, доступную в диспетчере библиотек интегрированной среды разработки Arduino.Arduino: If you are developing on Arduino, you can leverage the Azure IoT library available in the Arduino IDE library manager. Дополнительные сведения см. в разделе The Azure IoT Hub library for Arduino (Библиотека Центра Интернета вещей Azure для Arduino).For more information, see The Azure IoT Hub library for Arduino.

  • iOS: пакет SDK для устройств Центра Интернета вещей доступен в CocoaPods для разработки для устройств Mac и iOS.iOS: The IoT Hub Device SDK is available as CocoaPods for Mac and iOS device development. Дополнительные сведения можно найти в разделе iOS Samples for Microsoft Azure IoT (Примеры iOS для Центра Интернета вещей Microsoft Azure).For more information, see iOS Samples for Microsoft Azure IoT.

Тем не менее в этом кратком руководстве вы подготовите среду разработки, которая используется для клонирования и сборки пакета SDK Azure IoT для C с сайта GitHub.However, in this quickstart, you will prepare a development environment used to clone and build the Azure IoT C SDK from GitHub. Пакет SDK на сайте GitHub содержит пример кода, используемый в этом кратком руководстве.The SDK on GitHub includes the sample code used in this quickstart.

  1. Скачайте систему сборки CMake.Download the CMake build system.

    Перед установкой CMake очень важно установить на компьютер необходимые компоненты Visual Studio (Visual Studio с рабочей нагрузкой "Разработка классических приложений на C++").It is important that the Visual Studio prerequisites (Visual Studio and the 'Desktop development with C++' workload) are installed on your machine, before starting the CMake installation. После установки компонентов и проверки загрузки установите систему сборки CMake.Once the prerequisites are in place, and the download is verified, install the CMake build system.

  2. Откройте командную строку или оболочку Git Bash.Open a command prompt or Git Bash shell. Выполните следующую команду для клонирования репозитория GitHub пакета SDK для устройства C Интернета вещей Azure:Execute the following command to clone the Azure IoT C SDK GitHub repository:

    git clone https://github.com/Azure/azure-iot-sdk-c.git --recursive
    

    Выполнение этой операции может занять несколько минут.You should expect this operation to take several minutes to complete.

  3. Создайте подкаталог cmake в корневом каталоге репозитория Git и перейдите в эту папку.Create a cmake subdirectory in the root directory of the git repository, and navigate to that folder.

    cd azure-iot-sdk-c
    mkdir cmake
    cd cmake
    
  4. Выполните приведенную ниже команду, чтобы создать версию пакета SDK для используемой клиентской платформы разработки.Run the following command that builds a version of the SDK specific to your development client platform. Эта команда также создает решение Visual Studio для имитированного устройства в каталоге cmake.A Visual Studio solution for the simulated device will be generated in the cmake directory.

    cmake ..
    

    Если cmake не удастся найти компилятор C++, могут возникнуть ошибки сборки во время выполнения предыдущей команды.If cmake does not find your C++ compiler, you might get build errors while running the above command. В этом случае попробуйте, выполнить эту команду в командной строке Visual Studio.If that happens, try running this command in the Visual Studio command prompt.

    После успешного создания последние несколько строк выходных данных будут выглядеть следующим образом:Once the build succeeds, the last few output lines will look similar to the following output:

    $ cmake ..
    -- Building for: Visual Studio 15 2017
    -- Selecting Windows SDK version 10.0.16299.0 to target Windows 10.0.17134.
    -- The C compiler identification is MSVC 19.12.25835.0
    -- The CXX compiler identification is MSVC 19.12.25835.0
    
    ...
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: E:/IoT Testing/azure-iot-sdk-c/cmake
    

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

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

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

  2. Выберите + Создать ресурс, а затем — Интернет вещей.Choose +Create a resource, then choose Internet of Things.

  3. Нажмите кнопку Центр Интернета вещей в списке справа.Click Iot Hub from the list on the right. Появится первый экран для создания Центра Интернета вещей.You see the first screen for creating an IoT hub.

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

    Заполните поля.Fill in the fields.

    Подписка: Выберите нужную подписку для Центра Интернета вещей.Subscription: Select the subscription to use for your IoT hub.

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

    Регион. Выберите регион, в котором будет расположен Центр Интернета вещей.Region: This is the region in which you want your hub to be located. Выберите ближайшее к вам расположение из раскрывающегося списка.Select the location closest to you from the dropdown list.

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

    Важно!

    Центр Интернета вещей будет общедоступным в качестве конечной точки DNS, поэтому не используйте конфиденциальную информацию, когда присваиваете ему имя.The IoT hub will be publicly discoverable as a DNS endpoint, so make sure to avoid any sensitive information while naming it.

  4. Щелкните Далее: Size and scale (Далее: размер и масштаб), чтобы продолжить создание Центра Интернета вещей.Click Next: Size and scale to continue creating your IoT hub.

    Настройка параметров размера и масштаба Центра Интернета вещей на портале Azure

    На этом экране можно оставить значения по умолчанию и просто выбрать Review + create (Просмотреть и создать) внизу.On this screen, you can take the defaults and just click Review + create at the bottom.

    Ценовая категория и категория масштабирования. В зависимости от количества необходимых функций и ежедневно отправляемых сообщений с помощью решения, можно выбрать несколько уровней.Pricing and scale 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 IoT 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 IoT 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.

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

  5. Нажмите кнопку Review + create (Просмотреть и создать), чтобы просмотреть выбранные параметры.Click Review + create to review your choices. Отобразится примерно следующий экран.You see something similar to this screen.

    Просмотр сведений при создании Центра Интернета вещей

  6. Нажмите кнопку Создать, чтобы создать центр Интернета вещей.Click Create to create your new IoT 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 section, you will use the Azure Cloud Shell with the IoT extension 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 choose for your IoT hub.

    MyCDevice. Это имя, присвоенное зарегистрированному устройству.MyCDevice : This is the name given for the registered device. Используйте имя MyCDevice, как показано в примере.Use MyCDevice as shown. Если вы выбрали другое имя для устройства, используйте его при работе с этим руководством и обновите имя устройства в примерах приложений перед их запуском.If you choose a different name for your device, you will 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 MyCDevice
    
  2. Выполните следующую команду в Azure Cloud Shell, чтобы получить строку подключения зарегистрированного устройства.Run the following commands 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 choose for your IoT hub.

    az iot hub device-identity show-connection-string --hub-name YourIoTHubName --device-id MyCDevice --output table
    

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

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

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

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

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

  1. В текстовом редакторе откройте исходный файл iothub_convenience_sample.c и просмотрите пример кода для отправки данных телеметрии.Using a text editor, open the iothub_convenience_sample.c source file and review the sample code for sending telemetry. Этот файл расположен в приведенной ниже папке.The file is located in the following location:

    \azure-iot-sdk-c\iothub_client\samples\iothub_convenience_sample\iothub_convenience_sample.c
    
  2. Найдите объявление константы connectionString.Find the declaration of the connectionString constant:

    /* Paste in your device connection string  */
    static const char* connectionString = "[device connection string]";
    

    Замените значение константы connectionString записанной ранее строкой подключения к устройству.Replace the value of the connectionString constant with the device connection string you made a note of previously. Затем сохраните изменения, внесенные в файл iothub_convenience_sample.c.Then save your changes to iothub_convenience_sample.c.

  3. В окне терминала на локальном компьютере перейдите в каталог проекта iothub_convenience_sample в каталоге CMake, созданном в пакете SDK Интернета вещей Azure для C.In a local terminal window, navigate to the iothub_convenience_sample project directory in the CMake directory that you created in the Azure IoT C SDK.

    cd /azure-iot-sdk-c/cmake/iothub_client/samples/iothub_convenience_sample
    
  4. Запустите CMake в окне терминала на локальном компьютере, чтобы выполнить сборку примера с обновленным значением connectionString:Run CMake in your local terminal window to build the sample with your updated connectionString value:

    cmake --build . --target iothub_convenience_sample --config Debug
    
  5. Запустите приложение имитированного устройства, выполнив в окне терминала на локальном компьютере следующие команды:In a local terminal window, run the following command to run the simulated device application:

    Debug\iothub_convenience_sample.exe
    

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

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

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

В этом разделе описано, как использовать Azure Cloud Shell с расширением Интернета вещей для мониторинга сообщений, отправляемых имитированным устройством.In this section, you will use the Azure Cloud Shell with the IoT extension to monitor the device messages that are sent by the simulated device.

  1. С помощью Azure Cloud Shell выполните следующую команду для установки подключения к центру Интернета вещей и чтения поступающих из него сообщений:Using the Azure Cloud Shell, run the following command to connect and read messages from your IoT hub:

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

    az iot hub monitor-events --hub-name YourIoTHubName --output table
    

    Чтение сообщений устройства с помощью Azure CLI

Очистка ресурсов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 click 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, click ... then Delete resource group.

    Delete

  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 click Delete. Через некоторое время группа ресурсов и все ее ресурсы будут удалены.After a few moments, the resource group and all of its contained resources are deleted.

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

При работе с этим кратким руководством вы настроили центр Интернета вещей, зарегистрировали устройство, отправили имитированные данные телеметрии в центр с помощью приложения C, а также считали данные телеметрии из центра, используя Azure Cloud Shell.In this quickstart, you've setup an IoT hub, registered a device, sent simulated telemetry to the hub using a C application, and read the telemetry from the hub using the Azure Cloud Shell.

Чтобы узнать больше о разработке с помощью пакета SDK Центра Интернета вещей Azure для C, перейдите к следующему практическому руководству:To learn more about developing with the Azure IoT Hub C SDK, continue to the following How-to guide: