Inicio rápido: Enviar telemetría desde un dispositivo a IoT Hub y supervisarlo con la CLI de Azure

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. En esta guía de inicio rápido sin código, usará la CLI de Azure para crear una instancia de IoT Hub y un dispositivo simulado. Enviará datos de telemetría del dispositivo al centro y enviará mensajes, llamará a los métodos y actualizará las propiedades del dispositivo. También usará Azure Portal para visualizar las métricas del dispositivo. En este artículo se muestra un flujo de trabajo básico para desarrolladores que usan la CLI para interactuar con una aplicación IoT Hub.

Prerrequisitos

  • Si no tiene una suscripción de Azure, cree una gratuita antes de comenzar.
  • CLI de Azure. Puede ejecutar todos los comandos de esta guía de inicio rápido mediante Azure Cloud Shell, un shell interactivo de la CLI que se ejecuta en el explorador o en una aplicación como el terminal de Windows. Si usa el Cloud Shell, no necesita instalar nada. Si prefiere usar la CLI de forma local, esta guía de inicio rápido requiere la versión 2.36 o una posterior de la CLI de Azure. Ejecute az --version para encontrar la versión. Para la instalación o la actualización, consulte Instalación de la CLI de Azure.

Inicio de sesión en Azure Portal

Inicie sesión en Azure Portal.

Independientemente de si ejecuta la CLI localmente o en el Cloud Shell, mantenga el portal abierto en el explorador. Lo usará más adelante en esta guía de inicio rápido.

Inicie el Cloud Shell

En esta sección, se inicia una instancia de la Azure Cloud Shell. Si usa la CLI localmente, vaya a la sección Preparar dos sesiones de la CLI.

Para iniciar el Cloud Shell:

  1. Seleccione el botón Cloud Shell en la barra de menú de la parte superior derecha del Azure Portal.

    Azure Portal botón Cloud Shell

    Nota

    Si es la primera vez que usa el Cloud Shell, le pedirá que cree el almacenamiento, que es necesario para usar el Cloud Shell. Seleccione una suscripción para crear una cuenta de almacenamiento y un recurso compartido de Microsoft Azure Files.

  2. Seleccione el entorno de CLI preferido en la lista desplegable Seleccionar entorno. Esta guía de inicio rápido usa el entorno de Bash. También puede usar el entorno de PowerShell.

    Nota:

    Algunos comandos requieren una sintaxis o formato diferentes en los entornos de Bash y PowerShell. Para obtener más información, consulte Sugerencias para usar correctamente la CLI de Azure.

    Seleccionar el entorno de CLI

Preparación de dos sesiones de la CLI

A continuación, va a preparar dos sesiones de la CLI de Azure. Si utiliza Cloud Shell, ejecutará estas sesiones en pestañas independientes de Cloud Shell. Si usa un cliente de la CLI local, ejecutará instancias independientes de la CLI. Use las sesiones independientes de la CLI para las siguientes tareas:

  • La primera sesión simula un dispositivo IoT que se comunica con su centro de IoT.
  • La segunda sesión supervisa el dispositivo de la primera sesión o envía mensajes, comandos y actualizaciones de propiedades.

Para ejecutar un comando, seleccione Copiar para copiar un bloque de código en esta guía de inicio rápido, péguelo en la sesión de shell y ejecútelo.

CLI de Azure requiere que haya iniciado sesión en su cuenta de Azure. Todas las comunicaciones entre la sesión de Shell de CLI de Azure y el centro de IoT se autentican y cifran. Como resultado, esta guía de inicio rápido no necesita autenticación adicional que se usaría con un dispositivo real, como una cadena de conexión.

  • En la primera sesión de la CLI, ejecute el comando az extension add. El comando agrega la extensión de Microsoft Azure IoT para la CLI de Azure al shell de la CLI. La extensión IOT agrega comandos específicos de IoT Hub, IoT Edge e IoT Device Provisioning Service (DPS) a la CLI de Azure.

    az extension add --name azure-iot
    

    Después de instalar la extensión de Azure IOT, no es necesario volver a instalarla en ninguna sesión Cloud Shell.

    Nota

    En este artículo se usa la versión más reciente de la extensión de Azure IoT, denominada azure-iot. La versión heredada se denomina azure-cli-iot-ext. Solo debe tener instalada una versión a la vez. Puede usar el comando az extension list para validar las extensiones instaladas actualmente.

    Use az extension remove --name azure-cli-iot-ext para eliminar la versión heredada de la extensión.

    Use az extension add --name azure-iot para agregar la nueva versión de la extensión.

    Para ver las extensiones que ha instalado, use az extension list.

  • Abra la segunda sesión de la CLI. Si usa Cloud Shell en un explorador, use el botón Abrir nueva sesión. Si usa la CLI localmente, abra una segunda instancia de la CLI.

    Abrir nueva sesión de Cloud Shell

Crear un centro de IoT

En esta sección, usará la CLI de Azure para crear un grupo de recursos y un IoT Hub. Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure. Un centro de IoT funciona como centro de mensajes unificado para la comunicación bidireccional entre la aplicación de IoT y los dispositivos.

Sugerencia

Si lo desea, puede crear un grupo de recursos de Azure, un centro de IoT y otros recursos mediante el Azure Portal, Visual Studio Code u otros métodos de programación.

  1. En la primera sesión de la CLI, ejecute el comando az group create para crear un grupo de recursos. El siguiente comando crea un grupo de recursos denominado MyResourceGroup en la ubicación eastus.

    az group create --name MyResourceGroup --location eastus
    
  2. En la primera sesión de la CLI, ejecute el comando Az PowerShell module iot hub create para crear un centro de IoT. La operación de creación de un centro de IoT tarda unos minutos.

    YourIotHubName. Reemplace este marcador de posición y las llaves circundantes en el siguiente comando, con el nombre que eligió para el centro de IoT. Un nombre de centro de IoT debe ser único globalmente en Azure. Use el nombre del centro de IoT a lo largo de este inicio rápido cuando vea el marcador de posición.

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
    

Crear y supervisar un dispositivo

En esta sección, creará un dispositivo simulado en la primera sesión de la CLI. El dispositivo simulado envía la telemetría del dispositivo a su centro de IoT. En la segunda sesión de la CLI, supervisa los eventos y los datos de telemetría.

Para crear e iniciar un dispositivo simulado:

  1. En la primera sesión de la CLI, ejecute el comando az iot hub device-identity create. Este comando crea la identidad del dispositivo simulado.

    YourIotHubName. reemplace este marcador de posición por el nombre elegido para el centro de IoT.

    simDevice. Puede usar este nombre directamente para el dispositivo simulado en el resto de esta guía de inicio rápido. Si lo desea, use otro nombre.

    az iot hub device-identity create -d simDevice -n {YourIoTHubName} 
    
  2. En la primera sesión de la CLI, ejecute el comando az iot device simulate. Este comando inicia el dispositivo simulado. El dispositivo envía la telemetría a IoT Hub y recibe mensajes de ella.

    YourIotHubName. reemplace este marcador de posición por el nombre elegido para el centro de IoT.

    az iot device simulate -d simDevice -n {YourIoTHubName}
    

Para supervisar un dispositivo:

  1. En la segunda sesión de la CLI, ejecute el comando az iot hub monitor-events. Este comando supervisa continuamente el dispositivo simulado. En la salida se muestran datos de telemetría, como eventos y cambios de estado de las propiedades, que el dispositivo simulado envía al centro de IoT.

    YourIotHubName. reemplace este marcador de posición por el nombre elegido para el centro de IoT.

    az iot hub monitor-events --output table -p all -n {YourIoTHubName}
    

    Captura de pantalla de los eventos de supervisión en un dispositivo simulado.

  2. Después de supervisar el dispositivo simulado en la segunda sesión de la CLI, presione Ctrl + C para detener la supervisión. Mantenga abierta la segunda sesión de la CLI para usarla en pasos posteriores.

Uso de la CLI para enviar un mensaje

En esta sección, enviará un mensaje al dispositivo simulado.

  1. En la primera sesión de la CLI, confirme que el dispositivo simulado todavía se esté ejecutando. Si el dispositivo se ha detenido, ejecute el siguiente comando para reiniciarlo:

    YourIotHubName. reemplace este marcador de posición por el nombre elegido para el centro de IoT.

    az iot device simulate -d simDevice -n {YourIoTHubName}
    
  2. En la segunda sesión de la CLI, ejecute el comando az iot device c2d-message send. Este comando envía un mensaje de la nube al dispositivo desde su centro de IoT al dispositivo simulado. El mensaje incluye una cadena y dos pares clave-valor.

    YourIotHubName. reemplace este marcador de posición por el nombre elegido para el centro de IoT.

    az iot device c2d-message send -d simDevice --data "Hello World" --props "key0=value0;key1=value1" -n {YourIoTHubName}
    

    Opcionalmente, puede enviar mensajes de nube a dispositivo mediante el Azure Portal. Para ello, navegue a la página de información general de la IoT Hub, seleccione Dispositivo IoT, seleccione el dispositivo simulado y seleccione Mensaje al dispositivo.

  3. En la primera sesión de la CLI, confirme que el dispositivo simulado ha recibido el mensaje.

    Captura de pantalla de un dispositivo simulado que recibe un mensaje.

Uso de la CLI para llamar a un método del dispositivo

En esta sección, llamará a un método directo en el dispositivo simulado.

  1. Como en los pasos anteriores, confirme que el dispositivo simulado de la primera sesión de la CLI se está ejecutando. Si no es así, reinícielo.

  2. En la segunda sesión de la CLI, ejecute el comando az iot hub invoke-device-method. En este ejemplo, no hay ningún método preexistente para el dispositivo. El comando llama a un nombre de método de ejemplo en el dispositivo simulado y devuelve una carga.

    YourIotHubName. reemplace este marcador de posición por el nombre elegido para el centro de IoT.

    az iot hub invoke-device-method --mn MySampleMethod -d simDevice -n {YourIoTHubName}
    
  3. En la primera sesión de la CLI, confirme que en la salida se muestra la llamada del método.

    Captura de pantalla de un dispositivo simulado que muestra la salida después de invocar un método.

Uso de la CLI para actualizar las propiedades del dispositivo

En esta sección, definirá valores de propiedad para actualizar el estado del dispositivo simulado.

  1. Como en los pasos anteriores, confirme que el dispositivo simulado de la primera sesión de la CLI se está ejecutando. Si no es así, reinícielo.

  2. En la segunda sesión de la CLI, ejecute el comando az iot hub device-twin update. Este comando actualiza las propiedades al estado deseado en el dispositivo gemelo del centro de IoT que se corresponde con el dispositivo simulado. En este caso, el comando establece propiedades de condición de temperatura de ejemplo.

    Importante

    Si usa PowerShell en el shell de la CLI, use la versión de PowerShell del comando siguiente. PowerShell requiere que escape los caracteres de la carga JSON.

    YourIotHubName. reemplace este marcador de posición por el nombre elegido para el centro de IoT.

    az iot hub device-twin update -d simDevice --desired '{"conditions":{"temperature":{"warning":98, "critical":107}}}' -n {YourIoTHubName}
    
    az iot hub device-twin update -d simDevice --desired '{\"conditions\":{\"temperature\":{\"warning\":98, \"critical\":107}}}' -n {YourIoTHubName}
    
  3. En la primera sesión de la CLI, confirme que el dispositivo simulado devuelve como salida la actualización de las propiedades.

    Captura de pantalla que muestra cómo actualizar propiedades en un dispositivo.

  4. En la segunda sesión de la CLI, ejecute el comando az iot hub device-twin show. Este comando informa de los cambios realizados en las propiedades del dispositivo.

    YourIotHubName. reemplace este marcador de posición por el nombre elegido para el centro de IoT.

    az iot hub device-twin show -d simDevice --query properties.reported -n {YourIoTHubName}
    

    Captura de pantalla que muestra las propiedades actualizadas en un dispositivo gemelo.

Visualización de las métricas de mensajería en el portal

Azure Portal le permite administrar todos los aspectos de los centros de IoT y los dispositivos. En una aplicación IoT Hub típica que ingiere la telemetría de los dispositivos, es posible que quiera supervisar los dispositivos o ver las métricas en la telemetría del dispositivo.

Para visualizar las métricas de mensajería en el Azure Portal:

  1. En el menú de navegación izquierdo del portal, seleccione Todos los recursos. En esta pestaña se enumeran todos los recursos de la suscripción, incluido el centro de IoT que ha creado.

  2. Seleccione el vínculo en el centro de IoT que ha creado. El portal muestra la página de información general del centro.

  3. Seleccione Métricas en el panel izquierdo de la IoT Hub.

    Métricas de mensajería de IoT Hub

  4. En el campo Ámbito, escriba el nombre del centro de IoT.

  5. Seleccione Métricas estándar de IOT Hub en el campo Espacio de nombres de métricas.

  6. En el campo Métrica, seleccione Número total de mensajes usados.

  7. Mantenga el puntero del mouse sobre el área de la escala de tiempo en la que el dispositivo envió los mensajes. El número total de mensajes en un momento dado aparece en la esquina inferior izquierda de la escala de tiempo.

    Ver métricas de Azure IoT Hub

  8. Opcionalmente, use la lista desplegable Métrica para mostrar otras métricas en el dispositivo simulado. Por ejemplo, entregas de mensajes C2d completadas o Dispositivos totales (versión preliminar) .

Limpieza de recursos

Si ya no necesita los recursos de Azure creados en esta guía de inicio rápido, puede usar la CLI de Azure para eliminarlos.

Si continúa con el siguiente artículo recomendado, puede mantener los recursos que ya ha creado y volver a usarlos.

Importante

La eliminación de un grupo de recursos es irreversible. El grupo de recursos y todos los recursos contenidos en él se eliminan permanentemente. Asegúrese de no eliminar por accidente el grupo de recursos o los recursos equivocados.

Para eliminar un grupo de recursos por el nombre:

  1. Ejecute el comando az group delete. Este comando quita el grupo de recursos, el centro de IoT y el registro del dispositivo que ha creado.

    az group delete --name MyResourceGroup
    
  2. Ejecute el comando az group list para confirmar que se ha eliminado el grupo de recursos.

    az group list
    

Pasos siguientes

En esta guía de inicio rápido, ha usado la CLI de Azure para crear un centro de IoT, crear un dispositivo simulado, enviar y supervisar datos de telemetría, llamar a un método, definir las propiedades deseadas y limpiar los recursos. Usó el Azure Portal para visualizar las métricas de mensajería en el dispositivo.

Si es un desarrollador de dispositivos, el siguiente paso que sugerimos es consultar el inicio rápido de telemetría que usa el SDK de dispositivo IoT de Azure para C. Si lo desea, consulte uno de los artículos de inicio rápido de telemetría de Azure IoT Hub disponibles en su lenguaje o SDK preferidos.

Para aprender a controlar el dispositivo simulado desde una aplicación back-end, vaya al siguiente inicio rápido.