Краткое руководство. Отправка данных телеметрии из устройства в центр Интернета вещей (iOS)Quickstart: Send telemetry from a device to an IoT hub (iOS)

Центр Интернета вещей — это служба 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 article, you send telemetry from a simulated device application to IoT Hub. Затем можно просмотреть данные из серверной части приложения.Then you can view the data from a back-end application.

В этой статье используется предварительно написанное приложение Swift для отправки телеметрии и служебная программа CLI для чтения телеметрии из Центра Интернета вещей.This article uses a pre-written Swift application to send the telemetry and a CLI utility to read the telemetry from IoT Hub.

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

Azure Cloud Shell — это интерактивная оболочка среды, размещенная в Azure и работающая в браузере.Azure Cloud Shell is an interactive shell environment hosted in Azure and used through your browse. Azure Cloud Shell позволяет использовать оболочку bash или PowerShell, чтобы запускать разнообразные инструменты для работы со службами Azure.Azure Cloud Shell allows you to use either bash or PowerShell shells to run a variety of tools to work with Azure services. Azure Cloud Shell поставляется со встроенными командами, с помощью которых можно запускать код в данной статье, не устанавливая дополнительные компоненты в локальной среде.Azure Cloud Shell comes pre-installed with the commands to allow you to run the content of this article without having to install anything on your local environment.

Для выполнения кода из этой статьи в Azure Cloud Shell откройте сеанс Cloud Shell, скопируйте блок кода с помощью кнопки Копировать и вставьте его в сеанс Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.To run any code contained in this article on Azure Cloud Shell, open a Cloud Shell session, use the Copy button on a code block to copy the code, and paste it into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS. Вставленный текст не выполняется автоматически, поэтому нажмите клавишу ВВОД для выполнения кода.Pasted text is not automatically executed, so press Enter to run code.

Запустить Azure Cloud Shell можно следующим образом.You can launch Azure Cloud Shell with:

ПараметрOption Пример и ссылкаExample/Link
Нажмите кнопку Попробовать в правом верхнем углу блока с кодом.Select Try It in the upper-right corner of a code block. При этом не выполняется автоматическое копирование текста в Cloud Shell.This doesn't automatically copy text to Cloud Shell. Открытие Azure Cloud Shell с помощью кнопки "Попробовать"
Откройте Azure Cloud Shell в браузере.Open Azure Cloud Shell in your browser. <a href="https://shell.azure.com" title="Запуск Azure Cloud Shell
Нажмите кнопку меню 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

  • Скачать пример кода из примеров Azure.Download the code sample from Azure samples

  • Последняя версия XCode, выполняющая последнюю версию пакета SDK для iOS.The latest version of XCode, running the latest version of the iOS SDK. Примеры из этого краткого руководства протестированы в XCode 10.2 и iOS 12.2.This quickstart was tested with XCode 10.2 and iOS 12.2.

  • Последняя версия CocoaPods.The latest version of CocoaPods.

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

Создание Центра Интернета вещей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. Выберите +Создать ресурс и в поле Поиск в Marketplace введите Центр Интернета вещей.Choose +Create a resource, then Search the Marketplace for the IoT Hub.

  3. Выберите Центр Интернета вещей и нажмите кнопку Создать.Select IoT Hub and click the Create button. Появится первый экран для создания Центра Интернета вещей.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, убедитесь, что в его имени не фигурируют конфиденциальные или персональные сведения.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.

  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 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 choose for your IoT hub.

    myiOSdevice. Это имя, присвоенное зарегистрированному устройству.myiOSdevice : This is the name given for the registered device. Используйте myiOSdevice, как показано ниже.Use myiOSdevice 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 myiOSdevice
    
  2. Выполните следующую команду, чтобы получить строку подключения устройства для зарегистрированного устройства:Run the following command to get the device connection string for the device you just registered:

    az iot hub device-identity show-connection-string --hub-name YourIoTHubName --device-id myiOSdevice --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

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

Установка CocoaPodsInstall CocoaPods

CocoaPods управляет зависимостями проектов iOS, которые используют сторонние библиотеки.CocoaPods manage dependencies for iOS projects that use third-party libraries.

В окне локального терминала перейдите в папку Azure-IoT-Samples-iOS, скачанную на этапе подготовки.In a local terminal window, navigate to the Azure-IoT-Samples-iOS folder that you downloaded in the prerequisites. Перейдите к примеру проекта:Then, navigate to the sample project:

cd quickstart/sample-device

Убедитесь, что XCode закрыт, а затем выполните следующую команду, чтобы установить CocoaPods, объявленный в файле podfile:Make sure that XCode is closed, then run the following command to install the CocoaPods that are declared in the podfile file:

pod install

Вместе с установкой модулей, необходимых для проекта, команда установки также создает файл рабочей области XCode, который уже настроен для использования pod с зависимостями.Along with installing the pods required for your project, the installation command also created an XCode workspace file that is already configured to use the pods for dependencies.

Запуск примера приложенияRun the sample application

  1. Откройте пример рабочей области в XCode.Open the sample workspace in XCode.

    open "MQTT Client Sample.xcworkspace"
    
  2. Разверните проект Пример клиента MQTT, а затем разверните папку с тем же именем.Expand the MQTT Client Sample project and then expand the folder of the same name.

  3. Откройте ViewController.swift для редактирования в XCode.Open ViewController.swift for editing in XCode.

  4. Найдите переменную connectionString и обновите значение с помощью строки подключения устройства, записанной ранее.Search for the connectionString variable and update the value with the device connection string that you made a note of previously.

  5. Сохраните изменения.Save your changes.

  6. Выполните проект в эмуляторе устройства, нажав кнопку Сборка и запуск или клавиши COMMAND+R.Run the project in the device emulator with the Build and run button or the key combo command + r.

    Запуск проекта

  7. В открывшемся эмуляторе в примере приложения выберите Запустить.When the emulator opens, select Start in the sample app.

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

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

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

Пример приложения, выполняемого в эмуляторе XCode, показывает данные о сообщениях, отправленных с устройства.The sample app that you ran on the XCode emulator shows data about messages sent from the device. Вы также можете просматривать данные в Центре Интернета вещей по мере их получения.You can also view the data through your IoT hub as it is received. Расширение CLI для Центра Интернета вещей позволяет подключить конечную точку сервера События к Центру Интернета вещей.The IoT Hub CLI extension can connect to the service-side Events endpoint on your IoT Hub. Расширение получает сообщения с устройства в облако, отправленные с имитированного устройства.The extension 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.

Выполните следующие команды в Azure Cloud Shell, заменив YourIoTHubName на имя вашего центра Интернета вещей:Run the following commands in Azure Cloud Shell, replacing YourIoTHubName with the name of your IoT hub:

az iot hub monitor-events --device-id myiOSdevice --hub-name YourIoTHubName

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

На следующем снимке экрана показан тип телеметрии, используемый в окне терминала на локальном компьютере:The following screenshot shows the type of telemetry that you see in your local terminal window:

Просмотр телеметрии

Очистка ресурсов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.

    Удаление

  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

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

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