Compartir a través de


Inicio rápido: Control de un dispositivo conectado a un centro de IoT

En este inicio rápido, usará un método directo para controlar un dispositivo simulado conectado al centro de IoT. IoT Hub es un servicio de Azure que le permite administrar los dispositivos IoT desde la nube e ingerir grandes volúmenes de telemetría de dispositivos en la nube para el almacenamiento o el procesamiento. Puede usar métodos directos para cambiar de forma remota el comportamiento de los dispositivos conectados a IoT Hub.

En el inicio rápido se usan dos aplicaciones .NET preescritas:

  • Una aplicación de dispositivo simulada que responde a métodos directos llamados desde una aplicación de servicio. Para recibir las llamadas de método directo, esta aplicación se conecta a un punto de conexión específico del dispositivo en IoT Hub.

  • Una aplicación de servicio que interactúa con los métodos directos del dispositivo simulado. Para llamar a un método directo en un dispositivo, esta aplicación se conecta a un punto de conexión de servicio en IoT Hub.

Prerrequisitos

  • Una cuenta de Azure con una suscripción activa. cree una de forma gratuita.

  • Las dos aplicaciones de ejemplo que se ejecutan en este inicio rápido se escriben mediante C#. Necesita el SDK de .NET 6.0 o posterior en su máquina de desarrollo.

    Puede descargar el SDK de .NET Core para varias plataformas desde .NET.

    Puede verificar la versión actual de C# en el equipo de desarrollo con el comando siguiente:

    dotnet --version
    
  • Clone o descargue el SDK de Microsoft Azure IoT para .NET desde GitHub. Las aplicaciones de ejemplo que usa este inicio rápido se incluyen en el SDK.

  • Asegúrese de que está abierto el puerto 8883 del firewall. El ejemplo de dispositivo de esta guía de inicio rápido usa el protocolo MQTT, que se comunica a través del puerto 8883. Este puerto puede estar bloqueado en algunos entornos de red corporativos y educativos. Para obtener más información y formas de solucionar este problema, consulte la sección Conexión a IoT Hub de Comunicación con un centro de IoT mediante el protocolo MQTT.

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 qué extensiones están instaladas actualmente, use az extension list.

En esta sección, usará la CLI de Azure para crear un centro de IoT y un grupo de recursos. 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.

Si ya tiene un centro de IoT en su suscripción de Azure, puede omitir esta sección.

Para crear un centro de IoT y un grupo de recursos:

  1. Abre tu aplicación CLI. Para ejecutar los comandos de la CLI en el resto de este artículo, copie la sintaxis de comando, péguela en la aplicación de la CLI, edite los valores de las variables y presione Enter.

    • Si usa Cloud Shell, seleccione el botón Probar en los comandos de la CLI para iniciar Cloud Shell en una ventana dividida del explorador. O bien, puede abrir Cloud Shell en una pestaña del explorador independiente.
    • Si usa la CLI de Azure localmente, inicie la aplicación de consola de la CLI e inicie sesión en la CLI de Azure.
  2. Ejecute az extension add para instalar o actualizar la extensión azure-iot a la versión actual.

    az extension add --upgrade --name azure-iot
    
  3. En la aplicació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.

    Nota:

    Opcionalmente, puede establecer otra ubicación. Para ver las ubicaciones disponibles, ejecute az account list-locations. En este inicio rápido se usa eastus, como se muestra en el comando de ejemplo.

    az group create --name MyResourceGroup --___location eastus
    
  4. Ejecute el comando az iot hub create para crear una instancia de IoT Hub. La creación de una instancia de IoT Hub puede tardar unos minutos.

    YourIoTHubName. Reemplace este marcador de posición y los corchetes circundantes en el siguiente comando, con el nombre que eligió para el hub 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}
    

Recuperación de la cadena de conexión del servicio

También necesita una cadena de conexión de servicio del centro de IoT para permitir que la aplicación de servicio se conecte al centro y recupere los mensajes. La cadena de conexión de servicio es para el centro de IoT en su conjunto y no es la cadena de conexión del dispositivo que recuperó en la sección anterior.

El comando siguiente recupera la cadena de conexión del servicio de su instancia de IoT Hub:

az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table

Anote la cadena de conexión de servicio, que tiene el siguiente aspecto:

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

Este valor se usa más adelante en el inicio rápido.

Simular un dispositivo

La aplicación del dispositivo simulado se conecta a un punto de conexión específico del dispositivo en IoT Hub, envía los datos de telemetría simulados y escucha llamadas de método directo desde el centro. En este inicio rápido, la llamada al método directo desde el centro indica al dispositivo que cambie el intervalo en el que envía telemetría. El dispositivo simulado devuelve una confirmación al centro después de ejecutar el método directo.

  1. En una ventana de terminal local, vaya a la carpeta raíz del SDK. A continuación, vaya a la carpeta iothub\device\samples\getting started\SimulatedDeviceWithCommand .

  2. Ejecute el siguiente comando para instalar los paquetes necesarios para la aplicación de dispositivo simulado:

    dotnet restore
    
  3. Ejecute el comando siguiente para compilar y ejecutar la aplicación de dispositivo simulado.

    {DeviceConnectionString}: sustituya este marcador de posición por la cadena de conexión del dispositivo que anotó anteriormente.

    dotnet run -- -c "{DeviceConnectionString}"
    

    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:

    Captura de pantalla de una ventana de terminal que muestra la salida de la aplicación de dispositivo simulado.

Llamar al método directo

La aplicación de servicio se conecta a un punto de conexión de servicio en IoT Hub. La aplicación realiza llamadas de método directo a un dispositivo con IoT Hub y escucha las confirmaciones. Normalmente, una aplicación de servicio de IoT Hub se ejecuta en la nube.

  1. En otra ventana de terminal local, vaya a la carpeta raíz del SDK. A continuación, vaya a la carpeta iothub\service\samples\getting started\InvokeDeviceMethod .

  2. En la ventana del terminal local, ejecute los comandos siguientes para instalar las bibliotecas necesarias para la aplicación de servicio:

    dotnet build
    
  3. En la ventana del terminal local, ejecute los siguientes comandos para compilar y ejecutar la aplicación de servicio.

    {ServiceConnectionString}: reemplace este marcador de posición por la cadena de conexión del servicio IoT Hub que anotó anteriormente.

    {DeviceName}: Reemplace este espacio reservado por el nombre del dispositivo que ha registrado.

    dotnet run -- -c "{ServiceConnectionString}" -d {DeviceName}
    

    En la captura de pantalla siguiente se muestra la salida cuando la aplicación realiza una llamada de método directo al dispositivo y recibe una confirmación:

    Captura de pantalla de una ventana de terminal que muestra el resultado de la llamada de método directo desde la aplicación de servicio.

    Después de ejecutar la aplicación de servicio, verá un mensaje en la ventana del terminal local que ejecuta el dispositivo simulado y la velocidad a la que envía los mensajes cambia:

    Captura de pantalla de una ventana de terminal que muestra el resultado directo del mensaje y la salida actualizada de la aplicación de dispositivo simulado.

En este inicio rápido se usan dos aplicaciones Java:

  • Una aplicación de dispositivo simulado que responde a métodos directos llamados desde una aplicación back-end.
  • Una aplicación de servicio que ejecuta el método directo en el dispositivo simulado.

Prerrequisitos

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 qué extensiones están instaladas actualmente, use az extension list.

Creación de un centro de IoT

En esta sección, usará la CLI de Azure para crear un centro de IoT y un grupo de recursos. 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.

Si ya tiene un centro de IoT en su suscripción de Azure, puede omitir esta sección.

Para crear un centro de IoT y un grupo de recursos:

  1. Inicie la aplicación de la CLI. Para ejecutar los comandos de la CLI en el resto de este artículo, copie la sintaxis de comando, péguela en la aplicación de la CLI, edite los valores de las variables y presione Enter.

    • Si usa Cloud Shell, seleccione el botón Probar en los comandos de la CLI para iniciar Cloud Shell en una ventana dividida del explorador. O bien, puede abrir Cloud Shell en una pestaña del explorador independiente.
    • Si usa la CLI de Azure localmente, inicie la aplicación de consola de la CLI e inicie sesión en la CLI de Azure.
  2. Ejecute az extension add para instalar o actualizar la extensión azure-iot a la versión actual.

    az extension add --upgrade --name azure-iot
    
  3. En la aplicació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.

    Nota:

    Opcionalmente, puede establecer otra ubicación. Para ver las ubicaciones disponibles, ejecute az account list-locations. En este inicio rápido se usa eastus, como se muestra en el comando de ejemplo.

    az group create --name MyResourceGroup --___location eastus
    
  4. Ejecute el comando az iot hub create para crear una instancia de IoT Hub. La creación de una instancia de IoT Hub puede tardar 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}
    

Registrar un dispositivo

Debe registrar un dispositivo con IoT Hub antes de poder conectarlo. En esta sección, se usa la CLI de Azure para crear una identidad del dispositivo.

Si ya tiene un dispositivo registrado en el centro de IoT, puede omitir esta sección.

Para crear una identidad de dispositivo:

  1. Ejecute el comando az iot hub device-identity create en el shell de la CLI. Este comando crea la identidad del dispositivo.

    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.

    myDevice. Puede usar este nombre para el id. de dispositivo en este artículo o proporcionar un nombre de dispositivo diferente.

    az iot hub device-identity create --device-id myDevice --hub-name {YourIoTHubName}
    
  2. Ejecute el comando az iot hub device-identity connection-string show.

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {YourIoTHubName}
    

    La cadena de conexión tiene el formato siguiente:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Guarde la cadena de conexión en una ubicación segura.

Nota:

Mantenga abierta la aplicación de la CLI. Lo usará en pasos posteriores.

Recuperación de la cadena de conexión del servicio

También necesita una cadena de conexión de servicio para permitir que la aplicación back-end se conecte al centro de IoT y recupere los mensajes. El comando siguiente recupera la cadena de conexión del servicio de su instancia de IoT Hub:

YourIoTHubName: Reemplace este marcador de posición en el siguiente comando por el nombre que eligió para IoT Hub.

az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table

Anote la cadena de conexión de servicio, que tiene el siguiente aspecto:

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

Este valor se usa más adelante en el inicio rápido. Esta cadena de conexión de servicio es diferente de la cadena de conexión del dispositivo que anotó en el paso anterior.

Simular un dispositivo

La aplicación del dispositivo simulado se conecta a un punto de conexión específico del dispositivo en IoT Hub, envía los datos de telemetría simulados y escucha llamadas de método directo desde el centro. En este inicio rápido, la llamada al método directo desde el centro indica al dispositivo que cambie el intervalo en el que envía telemetría. El dispositivo simulado devuelve una confirmación al centro después de ejecutar el método directo.

  1. En una ventana de terminal local, vaya a la carpeta raíz del proyecto de Java de ejemplo. A continuación, vaya a la carpeta iot-hub\Quickstarts\simulated-device-2 .

  2. Abra el archivo src/main/java/com/microsoft/docs/iothub/samples/SimulatedDevice.java en un editor de texto de su elección.

    Reemplace el valor de la variable connString por la cadena de conexión del dispositivo que anotó anteriormente. A continuación, guarde los cambios en SimulatedDevice.java.

  3. En la ventana del terminal local, ejecute los comandos siguientes para instalar las bibliotecas necesarias y compilar la aplicación de dispositivo simulado:

    mvn clean package
    
  4. En la ventana del terminal local, ejecute los comandos siguientes para ejecutar la aplicación de dispositivo simulado:

    java -jar target/simulated-device-2-1.0.0-with-deps.jar
    

    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:

    Captura de pantalla de una ventana de terminal que muestra la salida de la aplicación de dispositivo simulado.

Llamar al método directo

La aplicación back-end se conecta a un punto de conexión de servicio en IoT Hub. La aplicación realiza llamadas de método directo a un dispositivo con IoT Hub y escucha las confirmaciones. Normalmente, una aplicación de back-end de IoT Hub se ejecuta en la nube.

  1. En otra ventana del terminal local, vaya a la carpeta raíz del proyecto de Java de ejemplo. A continuación, vaya a la carpeta iot-hub\Quickstarts\back-end-application .

  2. Abra el archivo src/main/java/com/microsoft/docs/iothub/samples/BackEndApplication.java en un editor de texto de su elección.

    Reemplace el valor de la variable iotHubConnectionString por la cadena de conexión del servicio que anotó anteriormente. A continuación, guarde los cambios en BackEndApplication.java.

  3. En la ventana del terminal local, ejecute los siguientes comandos para instalar las bibliotecas necesarias y compilar la aplicación back-end:

    mvn clean package
    
  4. En la ventana del terminal local, ejecute los siguientes comandos para ejecutar la aplicación back-end:

    java -jar target/back-end-application-1.0.0-with-deps.jar
    

    En la captura de pantalla siguiente se muestra la salida cuando la aplicación realiza una llamada de método directo al dispositivo y recibe una confirmación:

    Captura de pantalla de una ventana de terminal que muestra el resultado de la llamada de método directo desde la aplicación de servicio.

    Después de ejecutar la aplicación back-end, verá un mensaje en la ventana del terminal local que ejecuta el dispositivo simulado y la velocidad a la que envía los mensajes cambia:

    Captura de pantalla de una ventana de terminal que muestra el resultado directo del mensaje y la salida actualizada de la aplicación de dispositivo simulado.

En este inicio rápido se usan dos aplicaciones Node.js:

  • Una aplicación de dispositivo simulado que responde a métodos directos llamados desde una aplicación back-end. Para recibir las llamadas de método directo, esta aplicación se conecta a un punto de conexión específico del dispositivo en IoT Hub.
  • Una aplicación back-end que llama a los métodos directos en el dispositivo simulado. Para llamar a un método directo en un dispositivo, esta aplicación se conecta a un punto de conexión específico del servicio en IoT Hub.

Prerrequisitos

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 qué extensiones están instaladas actualmente, use az extension list.

Creación de un centro de IoT

En esta sección, usará la CLI de Azure para crear un centro de IoT y un grupo de recursos. 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.

Si ya tiene un centro de IoT en su suscripción de Azure, puede omitir esta sección.

Para crear un centro de IoT y un grupo de recursos:

  1. Abra su aplicación CLI. Para ejecutar los comandos de la CLI en el resto de este artículo, copie la sintaxis de comando, péguela en la aplicación de la CLI, edite los valores de las variables y presione Enter.

    • Si usa Cloud Shell, seleccione el botón Probar en los comandos de la CLI para iniciar Cloud Shell en una ventana dividida del explorador. O bien, puede abrir Cloud Shell en una pestaña del explorador independiente.
    • Si usa la CLI de Azure localmente, inicie la aplicación de consola de la CLI e inicie sesión en la CLI de Azure.
  2. Ejecute az extension add para instalar o actualizar la extensión azure-iot a la versión actual.

    az extension add --upgrade --name azure-iot
    
  3. En la aplicació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.

    Nota:

    Opcionalmente, puede establecer otra ubicación. Para ver las ubicaciones disponibles, ejecute az account list-locations. En este inicio rápido se usa eastus, como se muestra en el comando de ejemplo.

    az group create --name MyResourceGroup --___location eastus
    
  4. Ejecute el comando az iot hub create para crear una instancia de IoT Hub. La creación de una instancia de IoT Hub puede tardar unos minutos.

    YourIoTHubName. Reemplace este marcador de posición y los corchetes circundantes en el siguiente comando, con el nombre que eligió para su 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}
    

Registrar un dispositivo

Un dispositivo debe estar registrado en tu IoT Hub antes de poder conectarse. En esta sección, se usa la CLI de Azure para crear una identidad del dispositivo.

Si ya tiene un dispositivo registrado en el centro de IoT, puede omitir esta sección.

Para crear una identidad de dispositivo:

  1. En el shell de la CLI, ejecute el comando az iot hub device-identity create. Este comando crea la identidad del dispositivo.

    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.

    myDevice. Puede usar este nombre para el id. de dispositivo en este artículo o proporcionar un nombre de dispositivo diferente.

    az iot hub device-identity create --device-id myDevice --hub-name {YourIoTHubName}
    
  2. Ejecute el comando az iot hub device-identity connection-string show.

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {YourIoTHubName}
    

    La cadena de conexión tiene el formato siguiente:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Guarde la cadena de conexión en una ubicación segura.

Nota:

Mantenga abierta la aplicación de la CLI. Lo usarás en pasos posteriores.

Recuperación de la cadena de conexión del servicio

También necesita una cadena de conexión de servicio del centro de IoT para permitir que la aplicación back-end se conecte al centro de IoT y recupere los mensajes. El comando siguiente recupera la cadena de conexión del servicio de su instancia de IoT Hub:

YourIoTHubName: Reemplace este marcador en el siguiente comando por el nombre que eligió para el IoT hub.

az iot hub connection-string show \
  --policy-name service --hub-name {YourIoTHubName} --output table

Anote la cadena de conexión de servicio, que tiene el siguiente aspecto:

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

Este valor se usa más adelante en el inicio rápido. Esta cadena de conexión de servicio es diferente de la cadena de conexión del dispositivo que anotó en el paso anterior.

Simular un dispositivo

La aplicación del dispositivo simulado se conecta a un punto de conexión específico del dispositivo en IoT Hub, envía los datos de telemetría simulados y escucha llamadas de método directo desde el centro. En este inicio rápido, la llamada al método directo desde el centro indica al dispositivo que cambie el intervalo en el que envía telemetría. El dispositivo simulado devuelve una confirmación al centro después de ejecutar el método directo.

  1. En una ventana de terminal local, vaya a la carpeta raíz del proyecto de Node.js de ejemplo. A continuación, vaya a la carpeta iot-hub\Quickstarts\simulated-device-2 .

  2. Abra el archivo SimulatedDevice.js en un editor de texto de su elección.

    Reemplace el valor de la variable connectionString por la cadena de conexión del dispositivo que anotó anteriormente. A continuación, guarde los cambios enSimulatedDevice.js.

  3. En la ventana del terminal local, ejecute los siguientes comandos para instalar las bibliotecas necesarias y ejecutar la aplicación de dispositivo simulado:

    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:

    Captura de pantalla de una ventana de terminal que muestra la salida de la aplicación de dispositivo simulado.

Llamar al método directo

La aplicación back-end se conecta a un punto de conexión de servicio en IoT Hub. La aplicación realiza llamadas de método directo a un dispositivo con IoT Hub y escucha las confirmaciones. Normalmente, una aplicación de back-end de IoT Hub se ejecuta en la nube.

  1. En otra ventana del terminal local, vaya a la carpeta raíz del proyecto de Node.js de ejemplo. A continuación, vaya a la carpeta iot-hub\Quickstarts\back-end-application .

  2. Abra el archivo BackEndApplication.js en un editor de texto de su elección.

    Reemplace el valor de la variable connectionString por la cadena de conexión del servicio que anotó anteriormente. A continuación, guarde los cambios enBackEndApplication.js.

  3. En la ventana del terminal local, ejecute los siguientes comandos para instalar las bibliotecas necesarias y ejecutar la aplicación back-end:

    npm install
    node BackEndApplication.js
    

    En la captura de pantalla siguiente se muestra la salida cuando la aplicación realiza una llamada de método directo al dispositivo y recibe una confirmación:

    Captura de pantalla de una ventana de terminal que muestra el resultado de la llamada de método directo desde la aplicación de servicio.

    Después de ejecutar la aplicación back-end, verá un mensaje en la ventana del terminal local que ejecuta el dispositivo simulado y la velocidad a la que envía los mensajes cambia:

    Captura de pantalla de una ventana de terminal que muestra el resultado directo del mensaje y la salida actualizada de la aplicación de dispositivo simulado.

En este inicio rápido se usan dos aplicaciones de Python:

  • Una aplicación de dispositivo simulado que responde a métodos directos llamados desde una aplicación back-end.
  • Una aplicación de servidor que llama a los métodos directos del dispositivo simulado.

Prerrequisitos

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 qué extensiones están instaladas actualmente, use az extension list.

Creación de un centro de IoT

En esta sección, usará la CLI de Azure para crear un centro de IoT y un grupo de recursos. 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.

Si ya tiene un centro de IoT en su suscripción de Azure, puede omitir esta sección.

Para crear un centro de IoT y un grupo de recursos:

  1. Inicie su aplicación CLI. Para ejecutar los comandos de la CLI en el resto de este artículo, copie la sintaxis de comando, péguela en la aplicación de la CLI, edite los valores de las variables y presione Enter.

    • Si usa Cloud Shell, seleccione el botón Probar en los comandos de la CLI para iniciar Cloud Shell en una ventana dividida del explorador. O bien, puede abrir Cloud Shell en una pestaña del explorador independiente.
    • Si usa la CLI de Azure localmente, inicie la aplicación de consola de la CLI e inicie sesión en la CLI de Azure.
  2. Ejecute az extension add para instalar o actualizar la extensión azure-iot a la versión actual.

    az extension add --upgrade --name azure-iot
    
  3. En la aplicació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.

    Nota:

    Opcionalmente, puede establecer otra ubicación. Para ver las ubicaciones disponibles, ejecute az account list-locations. En este inicio rápido se usa eastus, como se muestra en el comando de ejemplo.

    az group create --name MyResourceGroup --___location eastus
    
  4. Ejecute el comando az iot hub create para crear una instancia de IoT Hub. La creación de una instancia de IoT Hub puede tardar 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}
    

Registrar un dispositivo

Debe registrar un dispositivo con su IoT hub antes de que pueda conectarse. En esta sección, se usa la CLI de Azure para crear una identidad del dispositivo.

Si ya tiene un dispositivo registrado en el centro de IoT, puede omitir esta sección.

Para crear una identidad de dispositivo:

  1. Ejecute el comando az iot hub device-identity create en el shell de la CLI. Este comando crea la identidad del dispositivo.

    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.

    myDevice. Puede usar este nombre para el id. de dispositivo en este artículo o proporcionar un nombre de dispositivo diferente.

    az iot hub device-identity create --device-id myDevice --hub-name {YourIoTHubName}
    
  2. Ejecute el comando az iot hub device-identity connection-string show.

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {YourIoTHubName}
    

    La cadena de conexión tiene el formato siguiente:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Guarde la cadena de conexión en una ubicación segura.

Nota:

Mantenga abierta la aplicación de la CLI. Lo utilizarás en pasos posteriores.

Recuperación de la cadena de conexión del servicio

También necesita una cadena de conexión de servicio para permitir que la aplicación back-end se conecte al centro de IoT y recupere los mensajes. El comando siguiente recupera la cadena de conexión del servicio de su instancia de IoT Hub:

YourIoTHubName: reemplace este marcador de posición en el siguiente comando por el nombre que elija para ioT Hub.

az iot hub connection-string show \
  --policy-name service \
  --hub-name {YourIoTHubName} \
  --output table

Anote la cadena de conexión de servicio, que tiene el siguiente aspecto:

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

Este valor se usa más adelante en el inicio rápido. Esta cadena de conexión de servicio es diferente de la cadena de conexión del dispositivo que anotó en el paso anterior.

Simular un dispositivo

La aplicación de dispositivo simulado se conecta a un punto de conexión específico del dispositivo en tu IoT Hub, envía telemetría simulada y escucha llamadas de método directo desde tu IoT Hub. En este inicio rápido, la llamada al método directo desde el centro indica al dispositivo que cambie el intervalo en el que envía telemetría. El dispositivo simulado devuelve una confirmación al centro después de ejecutar el método directo.

  1. En una ventana de terminal local, vaya a la carpeta raíz del proyecto de Python de ejemplo. A continuación, vaya a la carpeta iot-hub\Quickstarts\simulated-device-2 .

  2. Abra el archivo SimulatedDeviceSync.py en un editor de texto de su elección.

    Reemplace el valor de la CONNECTION_STRING variable por la cadena de conexión del dispositivo que has anotado anteriormente. A continuación, guarde los cambios en SimulatedDeviceSync.py.

  3. En la ventana del terminal local, ejecute los comandos siguientes para instalar las bibliotecas necesarias para la aplicación de dispositivo simulado:

    pip install azure-iot-device
    
  4. En la ventana del terminal local, ejecute los comandos siguientes para ejecutar la aplicación de dispositivo simulado:

    python SimulatedDeviceSync.py
    

    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:

    Captura de pantalla de una ventana de terminal que muestra la salida de la aplicación de dispositivo simulado.

Llamar al método directo

La aplicación back-end se conecta a un punto de conexión de servicio en IoT Hub. La aplicación realiza llamadas de método directo a un dispositivo con IoT Hub y escucha las confirmaciones. Normalmente, una aplicación de back-end de IoT Hub se ejecuta en la nube.

  1. En otra ventana del terminal local, vaya a la carpeta raíz del proyecto de Python de ejemplo. A continuación, vaya a la carpeta iot-hub\Quickstarts\back-end-application .

  2. Abra el archivo BackEndApplication.py en un editor de texto de su elección.

    Reemplace el valor de la variable CONNECTION_STRING por la cadena de conexión del servicio que anotó anteriormente. A continuación, guarde los cambios en BackEndApplication.py.

  3. En la ventana del terminal local, ejecute los comandos siguientes para instalar las bibliotecas necesarias para la aplicación de dispositivo simulado:

    pip install azure-iot-hub
    
  4. En la ventana del terminal local, ejecute los siguientes comandos para ejecutar la aplicación back-end:

    python BackEndApplication.py
    

    En la captura de pantalla siguiente se muestra la salida cuando la aplicación realiza una llamada de método directo al dispositivo y recibe una confirmación:

    Captura de pantalla de una ventana de terminal que muestra el resultado de la llamada de método directo desde la aplicación de servicio.

    Después de ejecutar la aplicación back-end, verá un mensaje en la ventana de la consola que ejecuta el dispositivo simulado y la velocidad a la que envía los mensajes cambia:

    Captura de pantalla de una ventana de terminal que muestra el resultado directo del mensaje y la salida actualizada de la aplicación de dispositivo simulado.

Limpieza de recursos

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

De lo contrario, puede eliminar los recursos de Azure creados en este artículo para evitar cargos.

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. Si creó el centro de IoT dentro de un grupo de recursos existente que contiene los recursos que desea conservar, elimine solo el propio recurso de IoT Hub en lugar de eliminar el grupo de recursos.

Para eliminar un grupo de recursos por el nombre:

  1. Inicie sesión en Azure Portal y después seleccione Grupos de recursos.

  2. En el cuadro de texto Filtrar para cualquier campo , escriba el nombre del grupo de recursos que contiene el centro de IoT.

  3. En la lista de resultados, seleccione el grupo de recursos que contiene el centro de IoT.

  4. En el panel de trabajo del grupo de recursos, seleccione Eliminar grupo de recursos en la barra de comandos.

    Captura de pantalla que muestra el panel de trabajo de un grupo de recursos en Azure Portal, con el comando Eliminar grupo de recursos resaltado en la barra de comandos.

  5. Se le pedirá que confirme la eliminación del grupo de recursos. Escriba de nuevo el nombre del grupo de recursos para confirmar y, después, seleccione Eliminar. Transcurridos unos instantes, el grupo de recursos y todos los recursos que contiene se eliminan.

Pasos siguientes

En esta guía rápida, has llamado a un método directo en un dispositivo desde una aplicación de servicio y has respondido a la llamada del método directo en una aplicación de dispositivo simulado.

Para obtener información sobre cómo enrutar mensajes de dispositivo a nube a distintos destinos de la nube, continúe con el siguiente tutorial.