Inicio rápido: enviar telemetría desde un dispositivo a IoT Hub (iOS)Quickstart: Send telemetry from a device to an IoT hub (iOS)

IoT Hub es un servicio de Azure que le permite ingerir grandes volúmenes de datos de telemetría desde los dispositivos IoT en la nube para su almacenamiento o procesamiento.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. En este artículo, va a enviar datos de telemetría desde una aplicación de dispositivo simulado a IoT Hub.In this article, you send telemetry from a simulated device application to IoT Hub. A continuación, podrá ver los datos desde una aplicación de back-end.Then you can view the data from a back-end application.

En este artículo se usa una aplicación Swift escrita previamente para enviar los datos de telemetría y una utilidad de la CLI para leer los datos procedentes de IoT Hub.This article uses a pre-written Swift application to send the telemetry and a CLI utility to read the telemetry from IoT Hub.

Apertura de Azure Cloud ShellOpen Azure Cloud Shell

Azure Cloud Shell es un shell interactivo gratuito que puede usar para ejecutar los pasos de este artículo.Azure Cloud Shell is a free, interactive shell that you can use to run the steps in this article. Cloud Shell incluye herramientas comunes de Azure preinstaladas y configuradas para que las use con su cuenta.Common Azure tools are preinstalled and configured in Cloud Shell for you to use with your account. Basta con seleccionar el botón Copiar para copiar el código, pegarlo en Cloud Shell y, luego, presionar Entrar para ejecutarlo.Just select the Copy button to copy the code, paste it in Cloud Shell, and then press Enter to run it. Existen varias maneras de abrir Cloud Shell:There are a few ways to open Cloud Shell:

Seleccione Probarlo en la esquina superior derecha de un bloque de código.Select Try It in the upper-right corner of a code block. Cloud Shell en este artículo
Abra Cloud Shell en el explorador.Open Cloud Shell in your browser. https://shell.azure.com/bash
Seleccione el botón Cloud Shell en el menú de la esquina superior derecha de Azure Portal.Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. Cloud Shell en el portal

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don’t have an Azure subscription, create a free account before you begin.

Requisitos previosPrerequisites

  • Descargue el código de ejemplo desde Ejemplos de AzureDownload the code sample from Azure samples
  • La versión más reciente de XCode que, a su vez, ejecute la última versión del SDK de iOS.The latest version of XCode, running the latest version of the iOS SDK. Esta guía de inicio rápido se probó con XCode 9.3 e iOS 11.3.This quickstart was tested with XCode 9.3 and iOS 11.3.
  • La versión más reciente de CocoaPods.The latest version of CocoaPods.

Crear un centro de IoTCreate an IoT hub

En esta sección se describe cómo crear un centro de IoT mediante Azure Portal.This section describes how to create an IoT hub using the Azure portal.

  1. Inicie sesión en Azure Portal.Log in to the Azure portal.

  2. Elija + Crear un recurso y, a continuación, Internet de las cosas.Choose +Create a resource, then choose Internet of Things.

  3. Haga clic en Centro de Iot en la lista de la derecha.Click Iot Hub from the list on the right. Verá la primera pantalla para crear un centro de IoT.You see the first screen for creating an IoT hub.

    Captura de pantalla donde se muestra cómo crear un hub en Azure Portal

    Rellene los campos.Fill in the fields.

    Subscription (Suscripción): seleccione la suscripción que se usará con su centro de IoT.Subscription: Select the subscription to use for your IoT hub.

    Resource Group (Grupo de recursos): puede crear un grupo de recursos o usar uno ya existente.Resource Group: You can create a new resource group or use an existing one. Para crear uno, haga clic en Create new (Crear) y escriba el nombre que quiere usar.To create a new one, click Create new and fill in the name you want to use. Para usar un grupo de recursos existente, haga clic en Use existing (Usar existente) y seleccione el grupo de recursos de la lista desplegable.To use an existing resource group, click Use existing and select the resource group from the dropdown list. Para más información, consulte Administración de los recursos de Azure a través del Portal.For more information, see Use resource groups to manage your Azure resources.

    Region (Región): es la región en la que quiere ubicar el centro.Region: This is the region in which you want your hub to be located. Seleccione la ubicación más cercana a usted en la lista desplegable.Select the location closest to you from the dropdown list.

    IoT Hub Name (Nombre del centro de IoT): escriba el nombre del centro de IoT.IoT Hub Name: Put in the name for your IoT Hub. Este nombre debe ser único globalmente.This name must be globally unique. Si el nombre que escribe está disponible, aparece una marca de verificación verde.If the name you enter is available, a green check mark appears.

    Importante

    IoT Hub puede detectarse públicamente como un punto de conexión DNS, por tanto, procure evitar cualquier información confidencial al darle el nombre.The IoT hub will be publicly discoverable as a DNS endpoint, so make sure to avoid any sensitive information while naming it.

  4. Haga clic en Next: Size and scale (Siguiente: tamaño y escala) para seguir con la creación del centro de IoT.Click Next: Size and scale to continue creating your IoT hub.

    Captura de pantalla que muestra la configuración de tamaño y escala de un nuevo centro de IoT mediante Azure Portal

    En esta pantalla, puede aceptar los valores predeterminados y hacer clic en Review + create (Revisar y crear) en la parte inferior.On this screen, you can take the defaults and just click Review + create at the bottom.

    Pricing and scale tier (Nivel de precios y de escala): puede elegir entre varios niveles, en función del número de características que quiera y el número de mensajes que envíe mediante su solución al día.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. El nivel gratis está pensado para la prueba y evaluación.The free tier is intended for testing and evaluation. Permite la conexión de 500 dispositivos con el centro de IoT y hasta 8000 mensajes al día.It allows 500 devices to be connected to the IoT hub and up to 8,000 messages per day. Cada suscripción a Azure puede crear una instancia de IoT Hub en el nivel gratis.Each Azure subscription can create one IoT Hub in the free tier.

    IoT Hub units (Unidades de IoT Hub): el número de mensajes que se permiten por unidad y por día depende del plan de tarifa del centro.IoT Hub units: The number of messages allowed per unit per day depends on your hub's pricing tier. Por ejemplo, si desea que el Centro de IoT admita la entrada de 700 000 mensajes, elija dos unidades del nivel de S1.For example, if you want the IoT hub to support ingress of 700,000 messages, you choose two S1 tier units.

    Para más información sobre las demás opciones del nivel, consulte la sección Elección del nivel correcto de IoT Hub.For details about the other tier options, see Choosing the right IoT Hub tier.

    Advanced / Device-to-cloud partitions (Particiones avanzadas/de dispositivo a nube): esta propiedad relaciona los mensajes del dispositivo a la nube con el número de lectores simultáneos de los mensajes.Advanced / Device-to-cloud partitions: This property relates the device-to-cloud messages to the number of simultaneous readers of the messages. La mayoría de los centros de IoT solo necesitan cuatro particiones.Most IoT hubs only need four partitions.

  5. Haga clic en Review + create (Revisar y crear) para revisar sus selecciones.Click Review + create to review your choices. Verá algo parecido a esta pantalla.You see something similar to this screen.

    Captura de pantalla de revisión de la información para crear el centro de IoT

  6. Haga clic en Create (Crear) para crear el centro de IoT.Click Create to create your new IoT hub. Esta operación tarda unos minutos.Creating the hub takes a few minutes.

Registrar un dispositivoRegister a device

Debe registrar un dispositivo con IoT Hub antes de poder conectarlo.A device must be registered with your IoT hub before it can connect. En esta guía de inicio rápido, usará Azure Cloud Shell para registrar un dispositivo simulado.In this quickstart, you use the Azure Cloud Shell to register a simulated device.

  1. Ejecute los siguientes comandos en Azure Cloud Shell para agregar la extensión de la CLI de IoT Hub y para crear la identidad del dispositivo.Run the following commands in Azure Cloud Shell to add the IoT Hub CLI extension and to create the device identity.

    YourIoTHubName: reemplace este marcador de posición por el nombre que eligió para su centro de IoT.YourIoTHubName : Replace this placeholder below with the name you choose for your IoT hub.

    myiOSdevice: es el nombre que se da al dispositivo registrado.myiOSdevice : This is the name given for the registered device. Use myiOSdevice tal como se muestra.Use myiOSdevice as shown. Si elige otro nombre para el dispositivo, tendrá que usarlo en todo el artículo y actualizar el nombre del dispositivo en las aplicaciones de ejemplo antes de ejecutarlas.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 extension add --name azure-cli-iot-ext
    az iot hub device-identity create --hub-name YourIoTHubName --device-id myiOSdevice
    
  2. Ejecute el siguiente comando para obtener la cadena de conexión del dispositivo que acaba de registrar: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
    

    Anote la cadena de conexión del dispositivo, que se parecerá a esta:Make a note of the device connection string, which looks like:

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

    Usará este valor más adelante en este inicio rápido.You use this value later in the quickstart.

Envío de datos de telemetría simuladosSend simulated telemetry

La aplicación de ejemplo se ejecuta en un dispositivo iOS, que se conecta a un punto de conexión específico del dispositivo en IoT Hub y envía datos de telemetría simulados sobre temperatura y humedad.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.

Instalación de CocoaPodsInstall CocoaPods

CocoaPods administra las dependencias de los proyectos de iOS que utilizan bibliotecas de terceros.CocoaPods manage dependencies for iOS projects that use third-party libraries.

En una ventana del terminal local, vaya a la carpeta Azure-IoT-Samples-iOS que descargó en los requisitos previos.In a local terminal window, navigate to the Azure-IoT-Samples-iOS folder that you downloaded in the prerequisites. Después, vaya a la carpeta del proyecto de ejemplo:Then, navigate to the sample project:

cd quickstart/sample-device

Asegúrese de que XCode está cerrado y ejecute el comando siguiente para instalar los pods de CocoaPods que se declararon en el archivo 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

Junto con la instalación de los pods necesarios para el proyecto, el comando de instalación también creó un archivo de área de trabajo de XCode que ya está configurado para usar los pods para las dependencias.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.

Ejecutar la aplicación de ejemploRun the sample application

  1. Abra el área de trabajo de ejemplo en XCode.Open the sample workspace in XCode.

    open "MQTT Client Sample.xcworkspace"
    
  2. Expanda el proyecto MQTT Client Sample (Ejemplo de cliente MQTT) y, a continuación, expanda la carpeta del mismo nombre.Expand the MQTT Client Sample project and then expand the folder of the same name.

  3. Abra ViewController.swift para editar en XCode.Open ViewController.swift for editing in XCode.
  4. Busque la variable connectionString y actualice el valor con la cadena de conexión del dispositivo que anotó anteriormente.Search for the connectionString variable and update the value with the device connection string that you made a note of previously.
  5. Guarde los cambios.Save your changes.
  6. Ejecute el proyecto en el emulador de dispositivos con el botón Build and run (Compilar y ejecutar) o la combinación de teclas comando + r.Run the project in the device emulator with the Build and run button or the key combo command + r.

    Ejecutar el proyecto

  7. Cuando se inicie el emulador, seleccione Start (Iniciar) en la aplicación de ejemplo.When the emulator opens, select Start in the sample app.

La siguiente captura de pantalla muestra una salida de ejemplo en la que la aplicación envía datos de telemetría simulados a IoT Hub:The following screenshot shows some example output as the application sends simulated telemetry to your IoT hub:

Ejecutar el dispositivo simulado

Lectura de los datos de telemetría procedentes de su instancia de IoT HubRead the telemetry from your hub

La aplicación de ejemplo que se ejecutó en el emulador de XCode muestra datos acerca de los mensajes enviados desde el dispositivo.The sample app that you ran on the XCode emulator shows data about messages sent from the device. También puede ver los datos a través de IoT Hub cuando estos se reciben.You can also view the data through your IoT hub as it is received. La extensión de la CLI de IoT Hub se puede conectar al punto de conexión Eventos del lado servicio en su instancia de IoT Hub.The IoT Hub CLI extension can connect to the service-side Events endpoint on your IoT Hub. La extensión recibe los mensajes del dispositivo a la nube enviados desde el dispositivo simulado.The extension receives the device-to-cloud messages sent from your simulated device. Normalmente, una aplicación back-end de IoT Hub se ejecuta en la nube para recibir y procesar los mensajes del dispositivo a la nube.An IoT Hub back-end application typically runs in the cloud to receive and process device-to-cloud messages.

Ejecute los siguientes comandos en Azure Cloud Shell y reemplace YourIoTHubName por el nombre del centro de IoT: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

En la siguiente captura de pantalla se muestra la salida en la que la extensión recibe los datos de telemetría que el dispositivo simulado ha enviado al centro:The following screenshot shows the output as the extension receives telemetry sent by the simulated device to the hub:

La captura de pantalla siguiente muestra el tipo de telemetría que se ve en la ventana del terminal local:The following screenshot shows the type of telemetry that you see in your local terminal window:

Ver datos de telemetría

Limpieza de recursosClean up resources

Si va a seguir con el siguiente artículo recomendado, puede mantener los recursos que ya ha creado y volverlos a utilizar.If you will be continuing to the next recommended article, you can keep the resources you've already created and reuse them.

En caso contrario, puede eliminar los recursos de Azure que creó en este artículo para evitar gastos.Otherwise, you can delete the Azure resources created in this article to avoid charges.

Importante

La eliminación de un grupo de recursos es irreversible.Deleting a resource group is irreversible. El grupo de recursos y todos los recursos contenidos en él se eliminan permanentemente.The resource group and all the resources contained in it are permanently deleted. Asegúrese de no eliminar por accidente el grupo de recursos o los recursos equivocados.Make sure that you do not accidentally delete the wrong resource group or resources. Si ha creado una instancia de IoT Hub en un grupo de recursos ya existente que contiene recursos que desea conservar, puede eliminar solo esa instancia en lugar de eliminar todo el grupo de recursos.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.

Para eliminar un grupo de recursos por el nombre:To delete a resource group by name:

  1. Inicie sesión en el Portal de Azure y haga clic en Grupos de recursos.Sign in to the Azure portal and click Resource groups.

  2. Escriba el nombre del grupo de recursos que contiene la instancia de IoT Hub en el cuadro de texto Filtrar por nombre....In the Filter by name... textbox, type the name of the resource group containing your IoT Hub.

  3. A la derecha del grupo de recursos de la lista de resultados, haga clic en ... y, a continuación, en Eliminar grupo de recursos.To the right of your resource group in the result list, click ... then Delete resource group.

    Eliminar

  4. Se le pedirá que confirme la eliminación del grupo de recursos.You will be asked to confirm the deletion of the resource group. Escriba otra vez el nombre del grupo de recursos para confirmar y haga clic en Eliminar.Type the name of your resource group again to confirm, and then click Delete. Transcurridos unos instantes, el grupo de recursos y todos los recursos que contiene se eliminan.After a few moments, the resource group and all of its contained resources are deleted.

Pasos siguientesNext steps

En este artículo, ha configurado una instancia de IoT Hub, registrado un dispositivo, enviado datos de telemetría simulados a esta instancia desde un dispositivo iOS y leído esos datos desde IoT Hub.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.

Para aprender a controlar el dispositivo simulado desde una aplicación back-end, vaya al siguiente inicio rápido.To learn how to control your simulated device from a back-end application, continue to the next quickstart.