Inicio rápido: enviar telemetría desde un dispositivo a IoT Hub y leer datos de telemetría procedentes de este con una aplicación back-end (Node.js)Quickstart: Send telemetry from a device to an IoT hub and read the telemetry from the hub with a back-end application (Node.js)

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 inicio rápido, enviará datos de telemetría desde una aplicación de dispositivo simulado, por IoT Hub, a una aplicación back-end para su procesamiento.In this quickstart, you send telemetry from a simulated device application, through IoT Hub, to a back-end application for processing.

El inicio rápido usa dos aplicaciones Node.js escritas previamente: una para enviar datos de telemetría y otra para leer datos de telemetría desde el centro.The quickstart uses two pre-written Node.js applications, one to send the telemetry and one to read the telemetry from the hub. Antes de ejecutar estas dos aplicaciones, creará un centro de IoT Hub y registrará un dispositivo con el centro.Before you run these two applications, you create an IoT hub and register a device with the 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

Las dos aplicaciones de ejemplo que se ejecutan en este inicio rápido se escriben con Node.js.The two sample applications you run in this quickstart are written using Node.js. Necesita Node.js 4.x.x o una versión posterior en el equipo de desarrollo.You need Node.js v4.x.x or later on your development machine.

Puede descargar Node.js para varias plataformas desde nodejs.org.You can download Node.js for multiple platforms from nodejs.org.

Puede verificar la versión actual de Node.js en el equipo de desarrollo con el comando siguiente:You can verify the current version of Node.js on your development machine using the following command:

node --version

Descargue el proyecto de muestra de Node.js desde https://github.com/Azure-Samples/azure-iot-samples-node/archive/master.zip y extraiga el archivo ZIP.Download the sample Node.js project from https://github.com/Azure-Samples/azure-iot-samples-node/archive/master.zip and extract the ZIP archive.

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.

    MyNodeDevice: es el nombre que se da al dispositivo registrado.MyNodeDevice : This is the name given for the registered device. Use MyNodeDevice como se muestra.Use MyNodeDevice 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 MyNodeDevice
    
  2. Ejecute los siguientes comandos en Azure Cloud Shell para obtener la cadena de conexión del dispositivo que acaba de registrar:Run the following commands in Azure Cloud Shell to get the device connection string for the device you just registered:

    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.

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

  3. También necesitará una cadena de conexión del servicio para permitir que la aplicación back-end se conecte al centro de IoT y recupere los mensajes.You also need a service connection string to enable the back-end application to connect to your IoT hub in order to retrieve the messages. El comando siguiente recupera la cadena de conexión del servicio de su instancia de IoT Hub:The following command retrieves the service connection string for your IoT hub:

    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.

    az iot hub show-connection-string --hub-name YourIoTHubName --output table
    

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

    HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey={YourSharedAccessKey}

    Usará este valor más adelante en este inicio rápido.You use this value later in the quickstart. La cadena de conexión de servicio es diferente de la cadena de conexión de dispositivo.The service connection string is different from the device connection string.

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

La aplicación de dispositivo simulado 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 simulated device application connects to a device-specific endpoint on your IoT hub and sends simulated temperature and humidity telemetry.

  1. Abra la ventana de terminal local y vaya a la carpeta raíz del proyecto de Node.js de ejemplo.Open your local terminal window, navigate to the root folder of the sample Node.js project. A continuación, vaya a la carpeta iot-hub\Quickstarts\simulated-device.Then navigate to the iot-hub\Quickstarts\simulated-device folder.

  2. Abra el archivo SimulatedDevice.js en el editor de texto de su elección.Open the SimulatedDevice.js file in a text editor of your choice.

    Reemplace el valor de la variable connectionString por la cadena de conexión de dispositivo que anotó anteriormente.Replace the value of the connectionString variable with the device connection string you made a note of previously. A continuación, guarde los cambios realizados en el archivo SimulatedDevice.js.Then save your changes to SimulatedDevice.js file.

  3. En la ventana de terminal local, ejecute los comandos siguientes para instalar las bibliotecas necesarias y ejecute la aplicación de dispositivo simulado:In the local terminal window, run the following commands to install the required libraries and run the simulated device application:

    npm install
    node SimulatedDevice.js
    

    La siguiente captura de pantalla muestra la salida en la que la aplicación de dispositivo simulado envía datos de telemetría a IoT Hub:The following screenshot shows the output as the simulated device application sends 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 back-end se conecta a un punto de conexión de Eventos de servicio en IoT Hub.The back-end application connects to the service-side Events endpoint on your IoT Hub. La aplicación recibe los mensajes del dispositivo a la nube enviados desde el dispositivo simulado.The application 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.

  1. En otra ventana de terminal local, vaya a la carpeta raíz del proyecto de Node.js de ejemplo.Open another local terminal window, navigate to the root folder of the sample Node.js project. A continuación, vaya a la carpeta iot-hub\Quickstarts\read-d2c-messages.Then navigate to the iot-hub\Quickstarts\read-d2c-messages folder.

  2. Abra el archivo ReadDeviceToCloudMessages.cs en el editor de texto de su elección.Open the ReadDeviceToCloudMessages.js file in a text editor of your choice.

    Reemplace el valor de la variable connectionString por la cadena de conexión de servicio que anotó anteriormente.Replace the value of the connectionString variable with the service connection string you made a note of previously. A continuación, guarde los cambios realizados en el archivo ReadDeviceToCloudMessages.js.Then save your changes to the ReadDeviceToCloudMessages.js file.

  3. En la ventana de terminal local, ejecute los comandos siguientes para instalar las bibliotecas necesarias y ejecute la aplicación back-end:In the local terminal window, run the following commands to install the required libraries and run the back-end application:

    npm install
    node ReadDeviceToCloudMessages.js
    

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

    Ejecutar la aplicación back-end

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 inicio rápido, ha configurado IoT Hub, registrado un dispositivo, enviado datos de telemetría simulados al centro con una aplicación Node.js y leído datos de telemetría desde el centro con una aplicación back-end básica.In this quickstart, you've setup an IoT hub, registered a device, sent simulated telemetry to the hub using a Node.js application, and read the telemetry from the hub using a simple back-end application.

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.