Inicio rápido: Envío de telemetría desde un dispositivo IoT Plug and Play a Azure IoT Hub

Se aplica a: desarrolladores de aplicaciones para dispositivos

Examinar el código

En este artículo de inicio rápido, se explica un flujo de trabajo básico de desarrollo de aplicaciones de Azure IoT. Va a utilizar la CLI de Azure e IoT Explorer para crear un centro de Azure IoT y un dispositivo. A continuación, utilizará un ejemplo de un SDK de dispositivo IoT de Azure para ejecutar un controlador de temperatura, conectarlo de forma segura al centro y enviar datos de telemetría. La aplicación de ejemplo del controlador de temperatura se ejecuta en la máquina local y genera datos del sensor simulados para enviarlos a IoT Hub.

Prerrequisitos

Este inicio rápido se ejecuta en Windows, Linux y Raspberry Pi. Se ha probado en las siguientes versiones de sistema operativo y dispositivo:

  • Windows 10
  • Ubuntu 20.04 LTS
  • Sistema operativo de Raspberry Pi (Raspbian) versión 10, que se ejecuta en una placa Raspberry Pi 3 modelo B+

Instale los siguientes requisitos previos en la máquina de desarrollo, excepto donde se indique para Raspberry Pi:

  • Si no tiene una suscripción de Azure, cree una gratuita antes de comenzar.
  • Git.
  • Azure IoT Explorer: utilidad multiplataforma basada en GUI para supervisar y administrar Azure IoT. Si usa Raspberry Pi como plataforma de desarrollo, se recomienda instalar IoT Explorer en otro equipo. Si no desea instalar IoT Explorer, puede usar la CLI de Azure para realizar los mismos pasos.
  • CLI de Azure. Tiene dos opciones para ejecutar comandos de la CLI de Azure en este inicio rápido:
    • Use Azure Cloud Shell, un shell interactivo que ejecuta comandos de la CLI en el explorador. Esta opción se recomienda porque no es necesario instalar nada. Si usa Cloud Shell por primera vez, inicie sesión en Azure Portal. Siga los pasos descritos en el inicio rápido de Cloud Shell para iniciar Cloud Shell y seleccionar el entorno Bash.
    • Opcionalmente, ejecute la CLI de Azure en su equipo local. Si la CLI de Azure ya está instalada, ejecute az upgrade para actualizar la CLI y las extensiones a la versión actual. Para instalar la CLI de Azure, consulte Instalación de la CLI de Azure. Si usa Raspberry Pi como plataforma de desarrollo, se recomienda usar Azure Cloud Shell o instalar la CLI de Azure en otro equipo.

Instale los requisitos previos restantes para su sistema operativo.

Linux o Raspberry Pi OS

Para realizar este inicio rápido en Linux o Raspberry Pi OS, instale el software siguiente:

Instale GCC, Git, cmake y las dependencias necesarias con el comando apt-get:

sudo apt-get update
sudo apt-get install -y git cmake build-essential curl libcurl4-openssl-dev libssl-dev uuid-dev

Compruebe que la versión de cmake es posterior a 2.8.12 y que la versión de GCC es posterior a 4.4.7.

cmake --version
gcc --version

Windows

Para completar este inicio rápido en Windows, instale Visual Studio 2019 y agregue los componentes necesarios para el desarrollo en C y C++.

  1. Para los nuevos usuarios, instale Visual Studio (Community, Professional o Enterprise) 2019. Descargue la edición que desea instalar e inicie el instalador.

    Nota

    Para los usuarios de Visual Studio 2019 existentes, seleccione Inicio de Windows, escriba Instalador de Visual Studio e inicie el instalador.

  2. En la pestaña Cargas de trabajo del instalador, seleccione la carga de trabajo Desarrollo para el escritorio con C++ .
  3. Ejecución de la instalación.

Crear 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.

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

  1. Inicie la CLI de Azure:

    • 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 va a usar la CLI de Azure localmente, abra una consola como Windows CMD, PowerShell o Bash, e inicie sesión en la CLI de Azure.

    Para ejecutar los comandos de la CLI en el resto de este inicio rápido, copie la sintaxis del comando, péguela en la ventana de Cloud Shell o en la consola de la CLI, edite los valores de las variables y presione Entrar.

  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. 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

    Como alternativa, puede establecer otra ubicación. Para ver las ubicaciones disponibles, ejecute az account list-locations. En este tutorial se usa eastus tal y 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}
    

    Sugerencia

    Después de crear un centro de IoT, usará Azure IoT Explorer para interactuar con el centro de IoT en el resto de esta guía de inicio rápido. IoT Explorer es una aplicación de GUI que le permite conectarse a un dispositivo IoT Hub existente y agregar, administrar y supervisar dispositivos. Para obtener más información, consulte Instalación y uso del explorador de Azure IoT. Opcionalmente, puede seguir usando comandos de la CLI.

Configuración de IoT Explorer

En el resto de este inicio rápido, usará IoT Explorer para registrar un dispositivo en su centro de IoT y ver la telemetría del dispositivo. En esta sección, configurará IoT Explorer para conectarse al centro de IoT que acaba de crear y para leer los modelos Plug and Play desde el repositorio de modelos público.

Nota

También puede usar la CLI de Azure para registrar un dispositivo. Use el comando az iot hub device-identity create --device-id mydevice --hub-name {YourIoTHubName} para registrar un nuevo dispositivo y el comando az iot hub device-identity connection-string show --device-id mydevice --hub-name {YourIoTHubName} para obtener la cadena de conexión principal del dispositivo. Una vez que anote la cadena de conexión del dispositivo, puede ir directamente a Ejecución del ejemplo de dispositivo.

Para agregar una conexión al centro de IoT:

  1. Ejecute el comando az iot hub connection-string show para obtener la cadena de conexión para el centro de IoT.

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  2. Copie la cadena de conexión sin los caracteres de comillas circundantes.

  3. En Azure IoT Explorer, seleccione Centros de IoT en el menú izquierdo y, a continuación, seleccione + Agregar conexión.

  4. Pegue la cadena de conexión en el cuadro Cadena de conexión.

  5. Seleccione Guardar.

    Captura de pantalla de la adición de una conexión en IoT Explorer

  6. Si la conexión se realiza correctamente, IoT Explorer cambia a la vista Dispositivos.

Para agregar el repositorio de modelos público:

  1. En IoT Explorer, seleccione Inicio para volver a la vista principal.

  2. En el menú de la izquierda, seleccione Configuración de IoT Plug and Play y, a continuación, seleccione +Agregar y elija Repositorio público en el menú desplegable.

  3. Aparece una entrada para el repositorio de modelos público en https://devicemodels.azure.com.

    Captura de pantalla de la adición del repositorio de modelos público en IoT Explorer

  4. Seleccione Guardar.

Registrar un dispositivo

En esta sección, creará una nueva instancia de dispositivo y la registrará en el centro de IoT que creó. Usará la información de conexión del dispositivo recién registrado para conectar de forma segura el dispositivo en una sección posterior.

Para registrar un dispositivo:

  1. En la vista principal de IoT Explorer, seleccione Centros de IoT.

  2. Debería aparecer la conexión que agregó anteriormente. Seleccione View devices in this hub (Ver dispositivos en este centro) debajo de las propiedades de conexión.

  3. Seleccione + Nuevo y escriba un identificador de dispositivo para el dispositivo. Por ejemplo, miDispositivo. Deje todas las demás propiedades tal cual.

  4. Seleccione Crear.

    Captura de pantalla de una identidad de dispositivo de Azure IoT Explorer

  5. Use los botones de copia para copiar y anotar el campo Cadena de conexión principal. Necesitará esta cadena de conexión más adelante.

Ejecución del ejemplo de dispositivo

En esta sección, usará el SDK de C para enviar mensajes desde un dispositivo hasta IoT Hub. Ejecutará un ejemplo que implementa un controlador de temperatura con dos sensores de termostato.

Compilación del ejemplo

  1. Abra una nueva consola para instalar el SDK de dispositivo Azure IoT para C y ejecute el ejemplo de código. En Windows, seleccione Inicio, escriba Símbolo del sistema para desarrolladores para VS 2019 y abra la consola. En Linux y Raspberry Pi OS, abra un terminal de comandos de Bash.

    Nota

    Si usa una instalación local de la CLI de Azure, es posible que ahora tenga dos ventanas de consola abiertas. Asegúrese de escribir los comandos de esta sección en la consola que acaba de abrir, en lugar de la que ha estado usando para la CLI.

  2. Cambie a la carpeta local en la que quiere clonar el repositorio de ejemplo.

  3. Clone el SDK del dispositivo de Azure IoT para C en la máquina local:

    git clone https://github.com/Azure/azure-iot-sdk-c.git
    
  4. Navegue a la carpeta raíz del SDK y ejecute el siguiente comando para actualizar las dependencias:

    cd azure-iot-sdk-c
    git submodule update --init
    

    Esta operación tarda unos minutos.

  5. Ejecute los siguientes comandos para compilar el SDK y los ejemplos:

    cmake -Bcmake -Duse_prov_client=ON -Dhsm_type_symm_key=ON -Drun_e2e_tests=OFF
    cmake --build cmake
    
  6. Establezca las siguientes variables de entorno para que el dispositivo se pueda conectar a Azure IoT.

    • Establezca una variable de entorno llamada IOTHUB_DEVICE_CONNECTION_STRING. Como valor de la variable, use la cadena de conexión del dispositivo que ha guardado en la sección anterior.
    • Establezca una variable de entorno llamada IOTHUB_DEVICE_SECURITY_TYPE. Para la variable, use el valor de cadena literal connectionString.

    CMD

    set IOTHUB_DEVICE_CONNECTION_STRING=<your connection string here>
    set IOTHUB_DEVICE_SECURITY_TYPE=connectionString
    

    Nota

    En el caso del símbolo de comandos de Windows, no hay comillas alrededor de los valores de cadena de cada variable.

    Bash

    export IOTHUB_DEVICE_CONNECTION_STRING="<your connection string here>"
    export IOTHUB_DEVICE_SECURITY_TYPE="connectionString"
    

Ejecución del código

  1. Ejecute el código de ejemplo con el comando adecuado para la consola.

    CMD

    cmake\iothub_client\samples\pnp\pnp_temperature_controller\Debug\pnp_temperature_controller.exe
    

    Bash

    cmake/iothub_client/samples/pnp/pnp_temperature_controller/pnp_temperature_controller
    

    Nota

    En este ejemplo de código se usa Azure IoT Plug and Play, que le permite integrar dispositivos inteligentes en sus soluciones sin ninguna configuración manual. De forma predeterminada, la mayoría de los ejemplos de esta documentación usan IoT Plug and Play. Para más información sobre las ventajas de IoT Plug and Play y los casos para su uso o no, consulte ¿Qué es IoT Plug and Play?

El ejemplo se conecta de forma segura al centro de IoT como el dispositivo que registró y comienza a enviar mensajes de telemetría. La salida de ejemplo se muestra en la consola.

Ver datos de telemetría

Puede ver la telemetría del dispositivo con el explorador de IoT. También puede verla mediante la CLI de Azure.

Para ver la telemetría en Azure IoT Explorer:

  1. En el centro de IoT del explorador de IoT, seleccione View devices in this hub (Ver dispositivos en este centro) y seleccione el dispositivo en la lista.

  2. En el menú de la izquierda del dispositivo, seleccione Telemetría.

  3. Confirme que la opción Use built-in event hub (Usar centro de eventos integrado) esté establecida en y, a continuación, seleccione Iniciar.

  4. Vea la telemetría a medida que el dispositivo envía mensajes a la nube.

    Captura de pantalla de la telemetría del dispositivo en IoT Explorer

  5. Seleccione Detener para dejar de recibir eventos.

Para leer la telemetría que envían los componentes individuales del dispositivo, puede utilizar las características de Plug and Play de IoT Explorer. Por ejemplo, el controlador de temperatura de este inicio rápido tiene dos termostatos: thermostat1 y thermostat2. Para ver la temperatura que notifica thermostat1:

  1. En el explorador de IoT del dispositivo, seleccione IoT Plug and Play components (Componentes de IoT Plug and Play) en el menú de la izquierda. A continuación, seleccione thermostat1 en la lista de componentes.

  2. En el panel del componente thermostat1, seleccione Telemetría en el menú superior.

  3. En el panel Telemetría, siga los mismos pasos que realizó anteriormente. Asegúrese de que la opción Use built-in event hub (Usar centro de eventos integrado) esté establecida en y, a continuación, seleccione Iniciar.

Para ver la telemetría del dispositivo con la CLI de Azure:

  1. Ejecute el comando az iot hub monitor-events para supervisar los eventos enviados desde el dispositivo al centro de IoT. Use los nombres que creó anteriormente en Azure IoT para el dispositivo IoT Hub.

    az iot hub monitor-events --output table --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Vea los detalles de la conexión y la salida de telemetría en la consola.

    Starting event monitor, filtering on device: mydevice, use ctrl-c to stop...
    event:
      component: ''
      interface: dtmi:com:example:TemperatureController;1
      module: ''
      origin: mydevice
      payload: '{"workingSet":1251}'
    
    event:
      component: thermostat1
      interface: dtmi:com:example:TemperatureController;1
      module: ''
      origin: mydevice
      payload: '{"temperature":22.00}'
    

Examinar el código

En este artículo de inicio rápido, se explica un flujo de trabajo básico de desarrollo de aplicaciones de Azure IoT. Va a utilizar la CLI de Azure e IoT Explorer para crear un centro de Azure IoT y un dispositivo. A continuación, utilizará un ejemplo de un SDK de dispositivo IoT de Azure para ejecutar un controlador de temperatura, conectarlo de forma segura al centro y enviar datos de telemetría. La aplicación de ejemplo del controlador de temperatura se ejecuta en la máquina local y genera datos del sensor simulados para enviarlos a IoT Hub.

Prerrequisitos

Este inicio rápido se ejecuta en Windows, Linux y Raspberry Pi. Se ha probado en las siguientes versiones de sistema operativo y dispositivo:

  • Windows 10
  • Ubuntu 20.04 LTS
  • Sistema operativo de Raspberry Pi (Raspbian) versión 10, que se ejecuta en una placa Raspberry Pi 3 modelo B+

Instale los siguientes requisitos previos en la máquina de desarrollo, excepto donde se indique para Raspberry Pi:

  • Si no tiene una suscripción de Azure, cree una gratuita antes de comenzar.

  • Git.

  • SDK de .NET Core 3.1. Asegúrese de instalar el SDK de .NET, no solo el runtime. Para comprobar la versión del SDK de .NET y del entorno de ejecución instalados en el equipo, ejecute dotnet --info.

    • Para Windows y Linux (excepto Raspberry Pi), siga las instrucciones para instalar el SDK de .NET Core 3.1 en su plataforma.
    • Para Raspberry Pi, deberá seguir las instrucciones para instalar manualmente el SDK. Esto se debe a que en Debian, las instalaciones del administrador de paquetes del SDK de .NET solo se admiten para la arquitectura x64.
  • Azure IoT Explorer: utilidad multiplataforma basado en GUI para supervisar y administrar Azure IoT. Si usa Raspberry Pi como plataforma de desarrollo, se recomienda instalar IoT Explorer en otro equipo. Si no desea instalar IoT Explorer, puede usar la CLI de Azure para realizar los mismos pasos.

  • CLI de Azure. Tiene dos opciones para ejecutar comandos de la CLI de Azure en este inicio rápido:

    • Use Azure Cloud Shell, un shell interactivo que ejecuta comandos de la CLI en el explorador. Esta opción se recomienda porque no es necesario instalar nada. Si usa Cloud Shell por primera vez, inicie sesión en Azure Portal. Siga los pasos descritos en el inicio rápido de Cloud Shell para iniciar Cloud Shell y seleccionar el entorno Bash.
    • Opcionalmente, ejecute la CLI de Azure en su equipo local. Si la CLI de Azure ya está instalada, ejecute az upgrade para actualizar la CLI y las extensiones a la versión actual. Para instalar la CLI de Azure, consulte Instalación de la CLI de Azure. Si usa Raspberry Pi como plataforma de desarrollo, se recomienda usar Azure Cloud Shell o instalar la CLI de Azure en otro equipo.

Crear 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.

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

  1. Inicie la CLI de Azure:

    • 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 va a usar la CLI de Azure localmente, abra una consola como Windows CMD, PowerShell o Bash, e inicie sesión en la CLI de Azure.

    Para ejecutar los comandos de la CLI en el resto de este inicio rápido, copie la sintaxis del comando, péguela en la ventana de Cloud Shell o en la consola de la CLI, edite los valores de las variables y presione Entrar.

  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. 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

    Como alternativa, puede establecer otra ubicación. Para ver las ubicaciones disponibles, ejecute az account list-locations. En este tutorial se usa eastus tal y 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}
    

    Sugerencia

    Después de crear un centro de IoT, usará Azure IoT Explorer para interactuar con el centro de IoT en el resto de esta guía de inicio rápido. IoT Explorer es una aplicación de GUI que le permite conectarse a un dispositivo IoT Hub existente y agregar, administrar y supervisar dispositivos. Para obtener más información, consulte Instalación y uso del explorador de Azure IoT. Opcionalmente, puede seguir usando comandos de la CLI.

Configuración de IoT Explorer

En el resto de este inicio rápido, usará IoT Explorer para registrar un dispositivo en su centro de IoT y ver la telemetría del dispositivo. En esta sección, configurará IoT Explorer para conectarse al centro de IoT que acaba de crear y para leer los modelos Plug and Play desde el repositorio de modelos público.

Nota

También puede usar la CLI de Azure para registrar un dispositivo. Use el comando az iot hub device-identity create --device-id mydevice --hub-name {YourIoTHubName} para registrar un nuevo dispositivo y el comando az iot hub device-identity connection-string show --device-id mydevice --hub-name {YourIoTHubName} para obtener la cadena de conexión principal del dispositivo. Una vez que anote la cadena de conexión del dispositivo, puede ir directamente a Ejecución del ejemplo de dispositivo.

Para agregar una conexión al centro de IoT:

  1. Ejecute el comando az iot hub connection-string show para obtener la cadena de conexión para el centro de IoT.

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  2. Copie la cadena de conexión sin los caracteres de comillas circundantes.

  3. En Azure IoT Explorer, seleccione Centros de IoT en el menú izquierdo y, a continuación, seleccione + Agregar conexión.

  4. Pegue la cadena de conexión en el cuadro Cadena de conexión.

  5. Seleccione Guardar.

    Captura de pantalla de la adición de una conexión en IoT Explorer

  6. Si la conexión se realiza correctamente, IoT Explorer cambia a la vista Dispositivos.

Para agregar el repositorio de modelos público:

  1. En IoT Explorer, seleccione Inicio para volver a la vista principal.

  2. En el menú de la izquierda, seleccione Configuración de IoT Plug and Play y, a continuación, seleccione +Agregar y elija Repositorio público en el menú desplegable.

  3. Aparece una entrada para el repositorio de modelos público en https://devicemodels.azure.com.

    Captura de pantalla de la adición del repositorio de modelos público en IoT Explorer

  4. Seleccione Guardar.

Registrar un dispositivo

En esta sección, creará una nueva instancia de dispositivo y la registrará en el centro de IoT que creó. Usará la información de conexión del dispositivo recién registrado para conectar de forma segura el dispositivo en una sección posterior.

Para registrar un dispositivo:

  1. En la vista principal de IoT Explorer, seleccione Centros de IoT.

  2. Debería aparecer la conexión que agregó anteriormente. Seleccione View devices in this hub (Ver dispositivos en este centro) debajo de las propiedades de conexión.

  3. Seleccione + Nuevo y escriba un identificador de dispositivo para el dispositivo. Por ejemplo, miDispositivo. Deje todas las demás propiedades tal cual.

  4. Seleccione Crear.

    Captura de pantalla de una identidad de dispositivo de Azure IoT Explorer

  5. Use los botones de copia para copiar y anotar el campo Cadena de conexión principal. Necesitará esta cadena de conexión más adelante.

Ejecución del ejemplo de dispositivo

En esta sección, usará el SDK de C# para enviar mensajes desde un dispositivo al centro de IoT. Ejecutará un ejemplo que implementa un controlador de temperatura con dos sensores de termostato.

  1. Abra una consola nueva como el símbolo del sistema de Windows, PowerShell o Bash. En los pasos siguientes, se utilizará esta consola para instalar el SDK para Node.js y trabajar con el código de ejemplo de Node.js.

    Nota

    Si usa una instalación local de la CLI de Azure, es posible que ahora tenga dos ventanas de consola abiertas. Asegúrese de escribir los comandos de esta sección en la consola que acaba de abrir, no en la que ha estado usando para la CLI.

  2. Clone el repositorio Ejemplos de Microsoft Azure IoT para C# (.NET) en el equipo local:

    git clone https://github.com/Azure-Samples/azure-iot-samples-csharp.git
    
  3. Vaya al directorio de ejemplos:

    Windows

    cd azure-iot-samples-csharp\iot-hub\Samples\device\PnpDeviceSamples\TemperatureController
    

    Sistema operativo Linux o Raspberry Pi

    cd azure-iot-samples-csharp/iot-hub/Samples/device/PnpDeviceSamples/TemperatureController
    
  4. Instale el SDK de Azure IoT para C# y las dependencias necesarias:

    dotnet restore
    

    Este comando instala las dependencias adecuadas, como se especifica en el archivo TemperatureController.csproj.

  5. Establezca las siguientes variables de entorno para que el dispositivo se pueda conectar a Azure IoT.

    • Establezca una variable de entorno llamada IOTHUB_DEVICE_CONNECTION_STRING. Como valor de la variable, use la cadena de conexión del dispositivo que ha guardado en la sección anterior.
    • Establezca una variable de entorno llamada IOTHUB_DEVICE_SECURITY_TYPE. Para la variable, use el valor de cadena literal connectionString.

    CMD (Windows)

    set IOTHUB_DEVICE_CONNECTION_STRING=<your connection string here>
    set IOTHUB_DEVICE_SECURITY_TYPE=connectionString
    

    Nota

    En el caso del símbolo de comandos de Windows, no hay comillas alrededor de los valores de cadena de cada variable.

    PowerShell

    $env:IOTHUB_DEVICE_CONNECTION_STRING='<your connection string here>'
    $env:IOTHUB_DEVICE_SECURITY_TYPE='connectionString'
    

    Bash

    export IOTHUB_DEVICE_CONNECTION_STRING="<your connection string here>"
    export IOTHUB_DEVICE_SECURITY_TYPE="connectionString"
    
  6. Ejecute el ejemplo de código:

    dotnet run
    

    Nota

    En este ejemplo de código se usa Azure IoT Plug and Play, que le permite integrar dispositivos inteligentes en sus soluciones sin ninguna configuración manual. De forma predeterminada, la mayoría de los ejemplos de esta documentación usan IoT Plug and Play. Para más información sobre las ventajas de IoT Plug and Play y los casos para su uso o no, consulte ¿Qué es IoT Plug and Play?

El ejemplo se conecta de forma segura al centro de IoT como el dispositivo que registró y comienza a enviar mensajes de telemetría. La salida de ejemplo se muestra en la consola.

Ver datos de telemetría

Puede ver la telemetría del dispositivo con el explorador de IoT. También puede verla mediante la CLI de Azure.

Para ver la telemetría en Azure IoT Explorer:

  1. En el centro de IoT del explorador de IoT, seleccione View devices in this hub (Ver dispositivos en este centro) y seleccione el dispositivo en la lista.

  2. En el menú de la izquierda del dispositivo, seleccione Telemetría.

  3. Confirme que la opción Use built-in event hub (Usar centro de eventos integrado) esté establecida en y, a continuación, seleccione Iniciar.

  4. Vea la telemetría a medida que el dispositivo envía mensajes a la nube.

    Captura de pantalla de la telemetría del dispositivo en IoT Explorer

  5. Seleccione Detener para dejar de recibir eventos.

Para leer la telemetría que envían los componentes individuales del dispositivo, puede utilizar las características de Plug and Play de IoT Explorer. Por ejemplo, el controlador de temperatura de este inicio rápido tiene dos termostatos: thermostat1 y thermostat2. Para ver la temperatura que notifica thermostat1:

  1. En el explorador de IoT del dispositivo, seleccione IoT Plug and Play components (Componentes de IoT Plug and Play) en el menú de la izquierda. A continuación, seleccione thermostat1 en la lista de componentes.

  2. En el panel del componente thermostat1, seleccione Telemetría en el menú superior.

  3. En el panel Telemetría, siga los mismos pasos que realizó anteriormente. Asegúrese de que la opción Use built-in event hub (Usar centro de eventos integrado) esté establecida en y, a continuación, seleccione Iniciar.

Para ver la telemetría del dispositivo con la CLI de Azure:

  1. Ejecute el comando az iot hub monitor-events para supervisar los eventos enviados desde el dispositivo al centro de IoT. Use los nombres que creó anteriormente en Azure IoT para el dispositivo IoT Hub.

    az iot hub monitor-events --output table --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Vea los detalles de la conexión y la salida de telemetría en la consola.

    Starting event monitor, filtering on device: mydevice, use ctrl-c to stop...
    event:
      component: thermostat1
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 39.8
    
    event:
      component: thermostat2
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 36.7
    
  3. Seleccione CTRL + C para finalizar la supervisión.

Examinar el código

En este artículo de inicio rápido, se explica un flujo de trabajo básico de desarrollo de aplicaciones de Azure IoT. Va a utilizar la CLI de Azure e IoT Explorer para crear un centro de Azure IoT y un dispositivo. A continuación, utilizará un ejemplo de un SDK de dispositivo IoT de Azure para ejecutar un controlador de temperatura, conectarlo de forma segura al centro y enviar datos de telemetría. La aplicación de ejemplo del controlador de temperatura se ejecuta en la máquina local y genera datos del sensor simulados para enviarlos a IoT Hub.

Prerrequisitos

Este inicio rápido se ejecuta en Windows, Linux y Raspberry Pi. Se ha probado en las siguientes versiones de sistema operativo y dispositivo:

  • Windows 10
  • Ubuntu 20.04 LTS
  • Sistema operativo de Raspberry Pi (Raspbian) versión 10, que se ejecuta en una placa Raspberry Pi 3 modelo B+

Instale los siguientes requisitos previos en la máquina de desarrollo, excepto donde se indique para Raspberry Pi:

  • Si no tiene una suscripción de Azure, cree una gratuita antes de comenzar.
  • Git.
  • Azure IoT Explorer: utilidad multiplataforma basada en GUI para supervisar y administrar Azure IoT. Si usa Raspberry Pi como plataforma de desarrollo, se recomienda instalar IoT Explorer en otro equipo. Si no desea instalar IoT Explorer, puede usar la CLI de Azure para realizar los mismos pasos.
  • CLI de Azure. Tiene dos opciones para ejecutar comandos de la CLI de Azure en este inicio rápido:
    • Use Azure Cloud Shell, un shell interactivo que ejecuta comandos de la CLI en el explorador. Esta opción se recomienda porque no es necesario instalar nada. Si usa Cloud Shell por primera vez, inicie sesión en Azure Portal. Siga los pasos descritos en el inicio rápido de Cloud Shell para iniciar Cloud Shell y seleccionar el entorno Bash.
    • Opcionalmente, ejecute la CLI de Azure en su equipo local. Si la CLI de Azure ya está instalada, ejecute az upgrade para actualizar la CLI y las extensiones a la versión actual. Para instalar la CLI de Azure, consulte Instalación de la CLI de Azure. Si usa Raspberry Pi como plataforma de desarrollo, se recomienda usar Azure Cloud Shell o instalar la CLI de Azure en otro equipo.

Instale los requisitos previos restantes para su sistema operativo.

Windows

Para completar este inicio rápido en Windows, instale el software siguiente:

  • Java SE Development Kit 8 o posterior. Puede descargar el JDK de Java 8 (LTS) para varias plataformas desde Descargar compilaciones de Zulu de OpenJDK. En el instalador, seleccione la opción Agregar a PATH.

  • Apache Maven 3. Después de extraer la descarga en una carpeta local, agregue la ruta de acceso completa de la carpeta /bin de Maven a la variable de entorno PATH de Windows.

Linux o Raspberry Pi OS

Para realizar este inicio rápido en Linux o Raspberry Pi OS, instale el software siguiente:

Nota

Los pasos de esta sección se basan en distribuciones Ubuntu/Debian de Linux. (El sistema operativo Raspberry Pi se basa en Debian). Si usa una distribución de Linux diferente, deberá modificar los pasos como corresponda.

  • OpenJDK (Open Java Development Kit) 8 o posterior. Puede usar el comando java -version para comprobar la versión de Java instalada en el sistema. Asegúrese de que JDK esté instalado, no solo Java Runtime Environment (JRE).

    1. Para instalar OpenJDK en el sistema, especifique los siguientes comandos:

      Para instalar la versión predeterminada de OpenJDK para el sistema (OpenJDK 11 para Ubuntu 20.04 y Raspberry Pi OS 10 en el momento de escribir este inicio rápido):

      sudo apt update
      sudo apt install default-jdk
      

      Como alternativa, puede especificar la versión del JDK que se va a instalar. Por ejemplo:

      sudo apt update
      sudo apt install openjdk-8-jdk
      
    2. Si el sistema tiene instaladas varias versiones de Java, puede usar los siguientes comandos para configurar las versiones predeterminadas (automáticas) de Java y el compilador de Java.

      update-java-alternatives --list          #list the Java versions installed
      sudo update-alternatives --config java   #set the default Java version
      sudo  update-alternatives --config javac #set the default Java compiler version
      
    3. Establezca la variable de entorno JAVA_HOME en la ruta de acceso de la instalación de JDK. (Por lo general, se trata de un subdirectorio con versiones en el directorio /usr/lib/jvm).

      export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
      

      Importante

      Este comando establece la variable JAVA_HOME en el entorno de shell actual. Se recomienda agregar el comando al archivo ~/.bashrc o /etc/profile para que esté disponible cada vez que abra un nuevo shell.

    4. Compruebe la versión del JDK de Java (y de JRE) instalada, que la versión del compilador de Java coincide con la versión del JDK y que la variable de entorno JAVA_HOME está establecida correctamente.

      java -version
      javac -version
      echo $JAVA_HOME
      
  • Apache Maven 3. Puede usar el comando mvn --version para comprobar la versión de Maven instalada en el sistema.

    1. Para instalar Maven, escriba los siguientes comandos:

      sudo apt-get update
      sudo apt-get install maven
      
    2. Ejecute el siguiente comando para comprobar la instalación.

      mvn --version
      

Crear 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.

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

  1. Inicie la CLI de Azure:

    • 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 va a usar la CLI de Azure localmente, abra una consola como Windows CMD, PowerShell o Bash, e inicie sesión en la CLI de Azure.

    Para ejecutar los comandos de la CLI en el resto de este inicio rápido, copie la sintaxis del comando, péguela en la ventana de Cloud Shell o en la consola de la CLI, edite los valores de las variables y presione Entrar.

  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. 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

    Como alternativa, puede establecer otra ubicación. Para ver las ubicaciones disponibles, ejecute az account list-locations. En este tutorial se usa eastus tal y 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}
    

    Sugerencia

    Después de crear un centro de IoT, usará Azure IoT Explorer para interactuar con el centro de IoT en el resto de esta guía de inicio rápido. IoT Explorer es una aplicación de GUI que le permite conectarse a un dispositivo IoT Hub existente y agregar, administrar y supervisar dispositivos. Para obtener más información, consulte Instalación y uso del explorador de Azure IoT. Opcionalmente, puede seguir usando comandos de la CLI.

Configuración de IoT Explorer

En el resto de este inicio rápido, usará IoT Explorer para registrar un dispositivo en su centro de IoT y ver la telemetría del dispositivo. En esta sección, configurará IoT Explorer para conectarse al centro de IoT que acaba de crear y para leer los modelos Plug and Play desde el repositorio de modelos público.

Nota

También puede usar la CLI de Azure para registrar un dispositivo. Use el comando az iot hub device-identity create --device-id mydevice --hub-name {YourIoTHubName} para registrar un nuevo dispositivo y el comando az iot hub device-identity connection-string show --device-id mydevice --hub-name {YourIoTHubName} para obtener la cadena de conexión principal del dispositivo. Una vez que anote la cadena de conexión del dispositivo, puede ir directamente a Ejecución del ejemplo de dispositivo.

Para agregar una conexión al centro de IoT:

  1. Ejecute el comando az iot hub connection-string show para obtener la cadena de conexión para el centro de IoT.

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  2. Copie la cadena de conexión sin los caracteres de comillas circundantes.

  3. En Azure IoT Explorer, seleccione Centros de IoT en el menú izquierdo y, a continuación, seleccione + Agregar conexión.

  4. Pegue la cadena de conexión en el cuadro Cadena de conexión.

  5. Seleccione Guardar.

    Captura de pantalla de la adición de una conexión en IoT Explorer

  6. Si la conexión se realiza correctamente, IoT Explorer cambia a la vista Dispositivos.

Para agregar el repositorio de modelos público:

  1. En IoT Explorer, seleccione Inicio para volver a la vista principal.

  2. En el menú de la izquierda, seleccione Configuración de IoT Plug and Play y, a continuación, seleccione +Agregar y elija Repositorio público en el menú desplegable.

  3. Aparece una entrada para el repositorio de modelos público en https://devicemodels.azure.com.

    Captura de pantalla de la adición del repositorio de modelos público en IoT Explorer

  4. Seleccione Guardar.

Registrar un dispositivo

En esta sección, creará una nueva instancia de dispositivo y la registrará en el centro de IoT que creó. Usará la información de conexión del dispositivo recién registrado para conectar de forma segura el dispositivo en una sección posterior.

Para registrar un dispositivo:

  1. En la vista principal de IoT Explorer, seleccione Centros de IoT.

  2. Debería aparecer la conexión que agregó anteriormente. Seleccione View devices in this hub (Ver dispositivos en este centro) debajo de las propiedades de conexión.

  3. Seleccione + Nuevo y escriba un identificador de dispositivo para el dispositivo. Por ejemplo, miDispositivo. Deje todas las demás propiedades tal cual.

  4. Seleccione Crear.

    Captura de pantalla de una identidad de dispositivo de Azure IoT Explorer

  5. Use los botones de copia para copiar y anotar el campo Cadena de conexión principal. Necesitará esta cadena de conexión más adelante.

Ejecución del ejemplo de dispositivo

En esta sección, usará el SDK de Java para enviar mensajes desde un dispositivo hasta IoT Hub. Ejecutará un ejemplo que implementa un controlador de temperatura con dos sensores de termostato.

  1. Abra una consola para instalar el SDK para dispositivos Java de Azure IoT y compile y ejecute el ejemplo de código. Usará esta consola en los pasos siguientes.

    Nota

    Si usa una instalación local de la CLI de Azure, es posible que ahora tenga dos ventanas de consola abiertas. Asegúrese de escribir los comandos de esta sección en la consola que acaba de abrir, no en la que ha estado usando para la CLI.

    Linux and Raspberry Pi OS

    Confirme que la variable de entorno JAVA_HOME (echo $JAVA_HOME) está establecida. Para más información sobre cómo establecer JAVA_HOME, consulte Requisitos previos de Linux y Raspberry Pi.

  2. Clone el SDK para dispositivos Java de Azure IoT en su máquina local:

    git clone https://github.com/Azure/azure-iot-sdk-java.git
    
  3. Vaya a la carpeta raíz del SDK y ejecute el siguiente comando para compilar el SDK y actualizar los ejemplos.

    cd azure-iot-sdk-java
    mvn install -T 2C -DskipTests
    

    Esta operación tarda varios minutos.

  4. Establezca las siguientes variables de entorno para que el dispositivo se pueda conectar a Azure IoT.

    • Establezca una variable de entorno llamada IOTHUB_DEVICE_CONNECTION_STRING. Como valor de la variable, use la cadena de conexión del dispositivo que ha guardado en la sección anterior.
    • Establezca una variable de entorno llamada IOTHUB_DEVICE_SECURITY_TYPE. Para la variable, use el valor de cadena literal connectionString.

    CMD

    set IOTHUB_DEVICE_CONNECTION_STRING=<your connection string here>
    set IOTHUB_DEVICE_SECURITY_TYPE=connectionString
    

    Nota

    En el caso del símbolo de comandos de Windows, no hay comillas alrededor de los valores de cadena de cada variable.

    Bash

    export IOTHUB_DEVICE_CONNECTION_STRING="<your connection string here>"
    export IOTHUB_DEVICE_SECURITY_TYPE="connectionString"
    
  5. Vaya al directorio de ejemplo.

    CMD

    cd device\iot-device-samples\pnp-device-sample\temperature-controller-device-sample
    

    Bash

    cd device/iot-device-samples/pnp-device-sample/temperature-controller-device-sample
    
  6. Ejecute el ejemplo de código.

    mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.TemperatureController"
    

    Nota

    En este ejemplo de código se usa Azure IoT Plug and Play, que le permite integrar dispositivos inteligentes en sus soluciones sin ninguna configuración manual. De forma predeterminada, la mayoría de los ejemplos de esta documentación usan IoT Plug and Play. Para más información sobre las ventajas de IoT Plug and Play y los casos para su uso o no, consulte ¿Qué es IoT Plug and Play?

El ejemplo se conecta de forma segura al centro de IoT como el dispositivo que registró y comienza a enviar mensajes de telemetría. La salida de ejemplo se muestra en la consola.

Ver datos de telemetría

Puede ver la telemetría del dispositivo con el explorador de IoT. También puede verla mediante la CLI de Azure.

Para ver la telemetría en Azure IoT Explorer:

  1. En el centro de IoT del explorador de IoT, seleccione View devices in this hub (Ver dispositivos en este centro) y seleccione el dispositivo en la lista.

  2. En el menú de la izquierda del dispositivo, seleccione Telemetría.

  3. Confirme que la opción Use built-in event hub (Usar centro de eventos integrado) esté establecida en y, a continuación, seleccione Iniciar.

  4. Vea la telemetría a medida que el dispositivo envía mensajes a la nube.

    Captura de pantalla de la telemetría del dispositivo en IoT Explorer

  5. Seleccione Detener para dejar de recibir eventos.

Para leer la telemetría que envían los componentes individuales del dispositivo, puede utilizar las características de Plug and Play de IoT Explorer. Por ejemplo, el controlador de temperatura de este inicio rápido tiene dos termostatos: thermostat1 y thermostat2. Para ver la temperatura que notifica thermostat1:

  1. En el explorador de IoT del dispositivo, seleccione IoT Plug and Play components (Componentes de IoT Plug and Play) en el menú de la izquierda. A continuación, seleccione thermostat1 en la lista de componentes.

  2. En el panel del componente thermostat1, seleccione Telemetría en el menú superior.

  3. En el panel Telemetría, siga los mismos pasos que realizó anteriormente. Asegúrese de que la opción Use built-in event hub (Usar centro de eventos integrado) esté establecida en y, a continuación, seleccione Iniciar.

Para ver la telemetría del dispositivo con la CLI de Azure:

  1. Ejecute el comando az iot hub monitor-events para supervisar los eventos enviados desde el dispositivo al centro de IoT. Use los nombres que creó anteriormente en Azure IoT para el dispositivo IoT Hub.

    az iot hub monitor-events --output table --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Vea los detalles de la conexión y la salida de telemetría en la consola.

    Starting event monitor, filtering on device: mydevice, use ctrl-c to stop...
    event:
      component: thermostat1
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 24.1
    
    event:
      component: thermostat2
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 33.3
    

Examinar el código

En este artículo de inicio rápido, se explica un flujo de trabajo básico de desarrollo de aplicaciones de Azure IoT. Va a utilizar la CLI de Azure e IoT Explorer para crear un centro de Azure IoT y un dispositivo. A continuación, utilizará un ejemplo de un SDK de dispositivo IoT de Azure para ejecutar un controlador de temperatura, conectarlo de forma segura al centro y enviar datos de telemetría. La aplicación de ejemplo del controlador de temperatura se ejecuta en la máquina local y genera datos del sensor simulados para enviarlos a IoT Hub.

Prerrequisitos

Este inicio rápido se ejecuta en Windows, Linux y Raspberry Pi. Se ha probado en las siguientes versiones de sistema operativo y dispositivo:

  • Windows 10
  • Ubuntu 20.04 LTS
  • Sistema operativo de Raspberry Pi (Raspbian) versión 10, que se ejecuta en una placa Raspberry Pi 3 modelo B+

Instale los siguientes requisitos previos en la máquina de desarrollo, excepto donde se indique para Raspberry Pi:

  • Si no tiene una suscripción de Azure, cree una gratuita antes de comenzar.
  • Git.
  • Node.js, versión 12 o posterior. Para comprobar la versión de Node, ejecute node --version.
  • Azure IoT Explorer: utilidad multiplataforma basado en GUI para supervisar y administrar Azure IoT. Si usa Raspberry Pi como plataforma de desarrollo, se recomienda instalar IoT Explorer en otro equipo. Si no desea instalar IoT Explorer, puede usar la CLI de Azure para realizar los mismos pasos.
  • CLI de Azure. Tiene dos opciones para ejecutar comandos de la CLI de Azure en este inicio rápido:
    • Use Azure Cloud Shell, un shell interactivo que ejecuta comandos de la CLI en el explorador. Esta opción se recomienda porque no es necesario instalar nada. Si usa Cloud Shell por primera vez, inicie sesión en Azure Portal. Siga los pasos descritos en el inicio rápido de Cloud Shell para iniciar Cloud Shell y seleccionar el entorno Bash.
    • Opcionalmente, ejecute la CLI de Azure en su equipo local. Si la CLI de Azure ya está instalada, ejecute az upgrade para actualizar la CLI y las extensiones a la versión actual. Para instalar la CLI de Azure, consulte Instalación de la CLI de Azure. Si usa Raspberry Pi como plataforma de desarrollo, se recomienda usar Azure Cloud Shell o instalar la CLI de Azure en otro equipo.

Crear 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.

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

  1. Inicie la CLI de Azure:

    • 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 va a usar la CLI de Azure localmente, abra una consola como Windows CMD, PowerShell o Bash, e inicie sesión en la CLI de Azure.

    Para ejecutar los comandos de la CLI en el resto de este inicio rápido, copie la sintaxis del comando, péguela en la ventana de Cloud Shell o en la consola de la CLI, edite los valores de las variables y presione Entrar.

  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. 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

    Como alternativa, puede establecer otra ubicación. Para ver las ubicaciones disponibles, ejecute az account list-locations. En este tutorial se usa eastus tal y 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}
    

    Sugerencia

    Después de crear un centro de IoT, usará Azure IoT Explorer para interactuar con el centro de IoT en el resto de esta guía de inicio rápido. IoT Explorer es una aplicación de GUI que le permite conectarse a un dispositivo IoT Hub existente y agregar, administrar y supervisar dispositivos. Para obtener más información, consulte Instalación y uso del explorador de Azure IoT. Opcionalmente, puede seguir usando comandos de la CLI.

Configuración de IoT Explorer

En el resto de este inicio rápido, usará IoT Explorer para registrar un dispositivo en su centro de IoT y ver la telemetría del dispositivo. En esta sección, configurará IoT Explorer para conectarse al centro de IoT que acaba de crear y para leer los modelos Plug and Play desde el repositorio de modelos público.

Nota

También puede usar la CLI de Azure para registrar un dispositivo. Use el comando az iot hub device-identity create --device-id mydevice --hub-name {YourIoTHubName} para registrar un nuevo dispositivo y el comando az iot hub device-identity connection-string show --device-id mydevice --hub-name {YourIoTHubName} para obtener la cadena de conexión principal del dispositivo. Una vez que anote la cadena de conexión del dispositivo, puede ir directamente a Ejecución del ejemplo de dispositivo.

Para agregar una conexión al centro de IoT:

  1. Ejecute el comando az iot hub connection-string show para obtener la cadena de conexión para el centro de IoT.

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  2. Copie la cadena de conexión sin los caracteres de comillas circundantes.

  3. En Azure IoT Explorer, seleccione Centros de IoT en el menú izquierdo y, a continuación, seleccione + Agregar conexión.

  4. Pegue la cadena de conexión en el cuadro Cadena de conexión.

  5. Seleccione Guardar.

    Captura de pantalla de la adición de una conexión en IoT Explorer

  6. Si la conexión se realiza correctamente, IoT Explorer cambia a la vista Dispositivos.

Para agregar el repositorio de modelos público:

  1. En IoT Explorer, seleccione Inicio para volver a la vista principal.

  2. En el menú de la izquierda, seleccione Configuración de IoT Plug and Play y, a continuación, seleccione +Agregar y elija Repositorio público en el menú desplegable.

  3. Aparece una entrada para el repositorio de modelos público en https://devicemodels.azure.com.

    Captura de pantalla de la adición del repositorio de modelos público en IoT Explorer

  4. Seleccione Guardar.

Registrar un dispositivo

En esta sección, creará una nueva instancia de dispositivo y la registrará en el centro de IoT que creó. Usará la información de conexión del dispositivo recién registrado para conectar de forma segura el dispositivo en una sección posterior.

Para registrar un dispositivo:

  1. En la vista principal de IoT Explorer, seleccione Centros de IoT.

  2. Debería aparecer la conexión que agregó anteriormente. Seleccione View devices in this hub (Ver dispositivos en este centro) debajo de las propiedades de conexión.

  3. Seleccione + Nuevo y escriba un identificador de dispositivo para el dispositivo. Por ejemplo, miDispositivo. Deje todas las demás propiedades tal cual.

  4. Seleccione Crear.

    Captura de pantalla de una identidad de dispositivo de Azure IoT Explorer

  5. Use los botones de copia para copiar y anotar el campo Cadena de conexión principal. Necesitará esta cadena de conexión más adelante.

Ejecución del ejemplo de dispositivo

En esta sección, usará el SDK de Node.js para enviar mensajes desde un dispositivo hasta IoT Hub. Ejecutará un ejemplo que implementa un controlador de temperatura con dos sensores de termostato.

  1. Abra una consola nueva como el símbolo del sistema de Windows, PowerShell o Bash. En los pasos siguientes, se utilizará esta consola para instalar el SDK para Node.js y trabajar con el código de ejemplo de Node.js.

    Nota

    Si usa una instalación local de la CLI de Azure, es posible que ahora tenga dos ventanas de consola abiertas. Asegúrese de escribir los comandos de esta sección en la consola que acaba de abrir, en lugar de la que ha estado usando para la CLI.

  2. Clone los ejemplos para el SDK de dispositivo IoT de Azure para Node.js en la máquina local:

    git clone https://github.com/Azure/azure-iot-sdk-node
    
  3. Vaya al directorio de ejemplos:

    Windows

    cd azure-iot-sdk-node\device\samples\javascript
    

    Sistema operativo Linux o Raspberry Pi

    cd azure-iot-sdk-node/device/samples/javascript
    
  4. Instale el SDK de Azure IoT para Node.js y las dependencias necesarias:

    npm install
    

    Este comando instala las dependencias adecuadas, como se especifica en el archivo package.json, en el directorio de ejemplos de dispositivos.

  5. Establezca las siguientes variables de entorno para que el dispositivo se pueda conectar a Azure IoT.

    • Establezca una variable de entorno llamada IOTHUB_DEVICE_CONNECTION_STRING. Como valor de la variable, use la cadena de conexión del dispositivo que ha guardado en la sección anterior.
    • Establezca una variable de entorno llamada IOTHUB_DEVICE_SECURITY_TYPE. Para la variable, use el valor de cadena literal connectionString.

    CMD (Windows)

    set IOTHUB_DEVICE_CONNECTION_STRING=<your connection string here>
    set IOTHUB_DEVICE_SECURITY_TYPE=connectionString
    

    Nota

    En el caso del símbolo de comandos de Windows, no hay comillas alrededor de los valores de cadena de cada variable.

    PowerShell

    $env:IOTHUB_DEVICE_CONNECTION_STRING='<your connection string here>'
    $env:IOTHUB_DEVICE_SECURITY_TYPE='connectionString'
    

    Bash

    export IOTHUB_DEVICE_CONNECTION_STRING="<your connection string here>"
    export IOTHUB_DEVICE_SECURITY_TYPE="connectionString"
    
  6. Ejecute el siguiente código de ejemplo:

    node pnp_temperature_controller.js
    

    Nota

    En este ejemplo de código se usa Azure IoT Plug and Play, que le permite integrar dispositivos inteligentes en sus soluciones sin ninguna configuración manual. De forma predeterminada, la mayoría de los ejemplos de esta documentación usan IoT Plug and Play. Para más información sobre las ventajas de IoT Plug and Play y los casos para su uso o no, consulte ¿Qué es IoT Plug and Play?

El ejemplo se conecta de forma segura al centro de IoT como el dispositivo que registró y comienza a enviar mensajes de telemetría. La salida de ejemplo se muestra en la consola.

Ver datos de telemetría

Puede ver la telemetría del dispositivo con el explorador de IoT. También puede verla mediante la CLI de Azure.

Para ver la telemetría en Azure IoT Explorer:

  1. En el centro de IoT del explorador de IoT, seleccione View devices in this hub (Ver dispositivos en este centro) y seleccione el dispositivo en la lista.

  2. En el menú de la izquierda del dispositivo, seleccione Telemetría.

  3. Confirme que la opción Use built-in event hub (Usar centro de eventos integrado) esté establecida en y, a continuación, seleccione Iniciar.

  4. Vea la telemetría a medida que el dispositivo envía mensajes a la nube.

    Captura de pantalla de la telemetría del dispositivo en IoT Explorer

  5. Seleccione Detener para dejar de recibir eventos.

Para leer la telemetría que envían los componentes individuales del dispositivo, puede utilizar las características de Plug and Play de IoT Explorer. Por ejemplo, el controlador de temperatura de este inicio rápido tiene dos termostatos: thermostat1 y thermostat2. Para ver la temperatura que notifica thermostat1:

  1. En el explorador de IoT del dispositivo, seleccione IoT Plug and Play components (Componentes de IoT Plug and Play) en el menú de la izquierda. A continuación, seleccione thermostat1 en la lista de componentes.

  2. En el panel del componente thermostat1, seleccione Telemetría en el menú superior.

  3. En el panel Telemetría, siga los mismos pasos que realizó anteriormente. Asegúrese de que la opción Use built-in event hub (Usar centro de eventos integrado) esté establecida en y, a continuación, seleccione Iniciar.

Para ver la telemetría del dispositivo con la CLI de Azure:

  1. Ejecute el comando az iot hub monitor-events para supervisar los eventos enviados desde el dispositivo al centro de IoT. Use los nombres que creó anteriormente en Azure IoT para el dispositivo IoT Hub.

    az iot hub monitor-events --output table --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Vea los detalles de la conexión y la salida de telemetría en la consola.

    Starting event monitor, filtering on device: mydevice, use ctrl-c to stop...
    event:
      component: thermostat1
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 70.5897683228018
    
    event:
      component: thermostat2
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 52.87582619316418
    

Examinar el código

En este artículo de inicio rápido, se explica un flujo de trabajo básico de desarrollo de aplicaciones de Azure IoT. Va a utilizar la CLI de Azure e IoT Explorer para crear un centro de Azure IoT y un dispositivo. A continuación, utilizará un ejemplo de un SDK de dispositivo IoT de Azure para ejecutar un controlador de temperatura, conectarlo de forma segura al centro y enviar datos de telemetría. La aplicación de ejemplo del controlador de temperatura se ejecuta en la máquina local y genera datos del sensor simulados para enviarlos a IoT Hub.

Prerrequisitos

Este inicio rápido se ejecuta en Windows, Linux y Raspberry Pi. Se ha probado en las siguientes versiones de sistema operativo y dispositivo:

  • Windows 10
  • Ubuntu 20.04 LTS
  • Sistema operativo de Raspberry Pi (Raspbian) versión 10, que se ejecuta en una placa Raspberry Pi 3 modelo B+

Instale los siguientes requisitos previos en la máquina de desarrollo, excepto donde se indique para Raspberry Pi:

  • Si no tiene una suscripción de Azure, cree una gratuita antes de comenzar.
  • Git.
  • Python versión 3.7 o cualquier versión posterior. Para comprobar la versión de Python, ejecute python3 --version.
  • Azure IoT Explorer: utilidad multiplataforma basado en GUI para supervisar y administrar Azure IoT. Si usa Raspberry Pi como plataforma de desarrollo, se recomienda instalar IoT Explorer en otro equipo. Si no desea instalar IoT Explorer, puede usar la CLI de Azure para realizar los mismos pasos.
  • CLI de Azure. Tiene dos opciones para ejecutar comandos de la CLI de Azure en este inicio rápido:
    • Use Azure Cloud Shell, un shell interactivo que ejecuta comandos de la CLI en el explorador. Esta opción se recomienda porque no es necesario instalar nada. Si usa Cloud Shell por primera vez, inicie sesión en Azure Portal. Siga los pasos descritos en el inicio rápido de Cloud Shell para iniciar Cloud Shell y seleccionar el entorno Bash.
    • Opcionalmente, ejecute la CLI de Azure en su equipo local. Si la CLI de Azure ya está instalada, ejecute az upgrade para actualizar la CLI y las extensiones a la versión actual. Para instalar la CLI de Azure, consulte Instalación de la CLI de Azure. Si usa Raspberry Pi como plataforma de desarrollo, se recomienda usar Azure Cloud Shell o instalar la CLI de Azure en otro equipo.

Crear 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.

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

  1. Inicie la CLI de Azure:

    • 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 va a usar la CLI de Azure localmente, abra una consola como Windows CMD, PowerShell o Bash, e inicie sesión en la CLI de Azure.

    Para ejecutar los comandos de la CLI en el resto de este inicio rápido, copie la sintaxis del comando, péguela en la ventana de Cloud Shell o en la consola de la CLI, edite los valores de las variables y presione Entrar.

  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. 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

    Como alternativa, puede establecer otra ubicación. Para ver las ubicaciones disponibles, ejecute az account list-locations. En este tutorial se usa eastus tal y 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}
    

    Sugerencia

    Después de crear un centro de IoT, usará Azure IoT Explorer para interactuar con el centro de IoT en el resto de esta guía de inicio rápido. IoT Explorer es una aplicación de GUI que le permite conectarse a un dispositivo IoT Hub existente y agregar, administrar y supervisar dispositivos. Para obtener más información, consulte Instalación y uso del explorador de Azure IoT. Opcionalmente, puede seguir usando comandos de la CLI.

Configuración de IoT Explorer

En el resto de este inicio rápido, usará IoT Explorer para registrar un dispositivo en su centro de IoT y ver la telemetría del dispositivo. En esta sección, configurará IoT Explorer para conectarse al centro de IoT que acaba de crear y para leer los modelos Plug and Play desde el repositorio de modelos público.

Nota

También puede usar la CLI de Azure para registrar un dispositivo. Use el comando az iot hub device-identity create --device-id mydevice --hub-name {YourIoTHubName} para registrar un nuevo dispositivo y el comando az iot hub device-identity connection-string show --device-id mydevice --hub-name {YourIoTHubName} para obtener la cadena de conexión principal del dispositivo. Una vez que anote la cadena de conexión del dispositivo, puede ir directamente a Ejecución del ejemplo de dispositivo.

Para agregar una conexión al centro de IoT:

  1. Ejecute el comando az iot hub connection-string show para obtener la cadena de conexión para el centro de IoT.

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  2. Copie la cadena de conexión sin los caracteres de comillas circundantes.

  3. En Azure IoT Explorer, seleccione Centros de IoT en el menú izquierdo y, a continuación, seleccione + Agregar conexión.

  4. Pegue la cadena de conexión en el cuadro Cadena de conexión.

  5. Seleccione Guardar.

    Captura de pantalla de la adición de una conexión en IoT Explorer

  6. Si la conexión se realiza correctamente, IoT Explorer cambia a la vista Dispositivos.

Para agregar el repositorio de modelos público:

  1. En IoT Explorer, seleccione Inicio para volver a la vista principal.

  2. En el menú de la izquierda, seleccione Configuración de IoT Plug and Play y, a continuación, seleccione +Agregar y elija Repositorio público en el menú desplegable.

  3. Aparece una entrada para el repositorio de modelos público en https://devicemodels.azure.com.

    Captura de pantalla de la adición del repositorio de modelos público en IoT Explorer

  4. Seleccione Guardar.

Registrar un dispositivo

En esta sección, creará una nueva instancia de dispositivo y la registrará en el centro de IoT que creó. Usará la información de conexión del dispositivo recién registrado para conectar de forma segura el dispositivo en una sección posterior.

Para registrar un dispositivo:

  1. En la vista principal de IoT Explorer, seleccione Centros de IoT.

  2. Debería aparecer la conexión que agregó anteriormente. Seleccione View devices in this hub (Ver dispositivos en este centro) debajo de las propiedades de conexión.

  3. Seleccione + Nuevo y escriba un identificador de dispositivo para el dispositivo. Por ejemplo, miDispositivo. Deje todas las demás propiedades tal cual.

  4. Seleccione Crear.

    Captura de pantalla de una identidad de dispositivo de Azure IoT Explorer

  5. Use los botones de copia para copiar y anotar el campo Cadena de conexión principal. Necesitará esta cadena de conexión más adelante.

Ejecución del ejemplo de dispositivo

En esta sección, usará el SDK para Python para enviar mensajes desde un dispositivo al centro de IoT. Ejecutará un ejemplo que implementa un controlador de temperatura con dos sensores de termostato.

  1. Abra una consola nueva como el símbolo del sistema de Windows, PowerShell o Bash. En los pasos siguientes, usará esta consola para instalar el SDK para Python y trabajar con el código de ejemplo de Python.

    Nota

    Si usa una instalación local de la CLI de Azure, es posible que ahora tenga dos ventanas de consola abiertas. Asegúrese de escribir los comandos de esta sección en la consola que acaba de abrir, en lugar de la que ha estado usando para la CLI.

  2. Clone las muestras de dispositivo para el SDK de IoT de Azure para Python en la máquina local:

    git clone https://github.com/Azure/azure-iot-sdk-python
    
  3. Vaya al directorio de muestras:

    Windows

    cd azure-iot-sdk-python\azure-iot-device\samples\pnp
    

    Sistema operativo Linux o Raspberry Pi

    cd azure-iot-sdk-python/azure-iot-device/samples/pnp
    
  4. Instale el SDK de Azure IoT para Python:

    pip3 install azure-iot-device
    
  5. Establezca las siguientes variables de entorno para que el dispositivo se pueda conectar a Azure IoT.

    • Establezca una variable de entorno llamada IOTHUB_DEVICE_CONNECTION_STRING. Como valor de la variable, use la cadena de conexión del dispositivo que ha guardado en la sección anterior.
    • Establezca una variable de entorno llamada IOTHUB_DEVICE_SECURITY_TYPE. Para la variable, use el valor de cadena literal connectionString.

    CMD (Windows)

    set IOTHUB_DEVICE_CONNECTION_STRING=<your connection string here>
    set IOTHUB_DEVICE_SECURITY_TYPE=connectionString
    

    Nota

    En el caso del símbolo de comandos de Windows, no hay comillas alrededor de los valores de cadena de cada variable.

    PowerShell

    $env:IOTHUB_DEVICE_CONNECTION_STRING='<your connection string here>'
    $env:IOTHUB_DEVICE_SECURITY_TYPE='connectionString'
    

    Bash

    export IOTHUB_DEVICE_CONNECTION_STRING="<your connection string here>"
    export IOTHUB_DEVICE_SECURITY_TYPE="connectionString"
    
  6. Ejecute el código para el siguiente archivo de muestra.

    python3 temp_controller_with_thermostats.py
    

    Nota

    En este ejemplo de código se usa Azure IoT Plug and Play, que le permite integrar dispositivos inteligentes en sus soluciones sin ninguna configuración manual. De forma predeterminada, la mayoría de los ejemplos de esta documentación usan IoT Plug and Play. Para obtener más información sobre las ventajas de IoT Plug and Play y los casos para su uso o no, consulte ¿Qué es IoT Plug and Play?

El ejemplo se conecta de forma segura al centro de IoT como el dispositivo que registró y comienza a enviar mensajes de telemetría. La salida de ejemplo se muestra en la consola.

Ver datos de telemetría

Puede ver la telemetría del dispositivo con el explorador de IoT. También puede verla mediante la CLI de Azure.

Para ver la telemetría en Azure IoT Explorer:

  1. En el centro de IoT del explorador de IoT, seleccione View devices in this hub (Ver dispositivos en este centro) y seleccione el dispositivo en la lista.

  2. En el menú de la izquierda del dispositivo, seleccione Telemetría.

  3. Confirme que la opción Use built-in event hub (Usar centro de eventos integrado) esté establecida en y, a continuación, seleccione Iniciar.

  4. Vea la telemetría a medida que el dispositivo envía mensajes a la nube.

    Captura de pantalla de la telemetría del dispositivo en IoT Explorer

  5. Seleccione Detener para dejar de recibir eventos.

Para leer la telemetría que envían los componentes individuales del dispositivo, puede utilizar las características de Plug and Play de IoT Explorer. Por ejemplo, el controlador de temperatura de este inicio rápido tiene dos termostatos: thermostat1 y thermostat2. Para ver la temperatura que notifica thermostat1:

  1. En el explorador de IoT del dispositivo, seleccione IoT Plug and Play components (Componentes de IoT Plug and Play) en el menú de la izquierda. A continuación, seleccione thermostat1 en la lista de componentes.

  2. En el panel del componente thermostat1, seleccione Telemetría en el menú superior.

  3. En el panel Telemetría, siga los mismos pasos que realizó anteriormente. Asegúrese de que la opción Use built-in event hub (Usar centro de eventos integrado) esté establecida en y, a continuación, seleccione Iniciar.

Para ver la telemetría del dispositivo con la CLI de Azure:

  1. Ejecute el comando az iot hub monitor-events para supervisar los eventos enviados desde el dispositivo al centro de IoT. Use los nombres que creó anteriormente en Azure IoT para el dispositivo IoT Hub.

    az iot hub monitor-events --output table --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Vea los detalles de la conexión y la salida de telemetría en la consola.

    Starting event monitor, filtering on device: mydevice, use ctrl-c to stop...
    event:
      component: thermostat1
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 29
    
    event:
      component: thermostat2
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 48
    

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.

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 este inicio rápido ha aprendido un flujo de trabajo básico de una aplicación de Azure IoT para conectar un dispositivo a la nube de forma segura y enviar datos de telemetría del dispositivo a la nube. Ha utilizado la CLI de Azure para crear un centro de Azure IoT y una instancia de un dispositivo. Después ha usado un SDK de dispositivo IoT de Azure para crear un controlador de temperatura, conectarlo al centro y enviar telemetría. También ha usado la CLI de Azure para supervisar la telemetría.

A continuación, puede explorar los siguientes artículos para más información sobre la creación de soluciones de dispositivo con Azure IoT.