¿Qué es el desarrollo de dispositivos de Azure IoT?

Azure IoT es una colección de servicios administrados y de plataforma que conectan, supervisan y controlan dispositivos IoT. Azure IoT ofrece a los desarrolladores un completo conjunto de opciones. Entre ellas, se incluyen plataformas de dispositivos, servicios en la nube de soporte, SDK, soporte de MQTT y herramientas para compilar aplicaciones en la nube habilitadas para dispositivos.

En este artículo se describen varias consideraciones clave para los desarrolladores que empiezan a usar Azure IoT.

Rutas de desarrollo de dispositivos

En este artículo se describen dos rutas comunes de desarrollo de dispositivos. Cada ruta engloba un conjunto de tareas y opciones de desarrollo relacionadas.

  • Desarrollo de dispositivos generales: encaja con las prácticas de desarrollo modernas, permite usar lenguajes más refinados y se ejecuta en un sistema operativo de uso general, como Windows o Linux.

    Nota

    Si el dispositivo pudiera ejecutar sistemas operativos de uso general, se recomienda seguir la ruta de acceso de Desarrollo dispositivos generales. Proporciona un completo conjunto de opciones de desarrollo.

  • Desarrollo de dispositivos insertados: describe el desarrollo que apunta a dispositivos con recursos limitados. A menudo se usan dispositivos restringidos por recursos para reducir los costes unitarios, el consumo de energía o el tamaño del dispositivo. Estos dispositivos tienen control directo sobre la plataforma de hardware en la que se ejecutan.

Desarrollo dispositivos generales

Algunos desarrolladores adaptan dispositivos de uso general existentes para conectarse a la nube e integrarlos en sus soluciones de IoT. Estos dispositivos pueden admitir idiomas de orden superior, como C# o Python, y a menudo admiten un sólido sistema operativo de uso general, como Windows o Linux. Los dispositivos de destino comunes incluyen PC, contenedores, Raspberry PI y dispositivos móviles.

En lugar de desarrollar dispositivos con limitaciones a escala, los desarrolladores de dispositivos generales se centran en habilitar un escenario IoT específico requerido por su solución en la nube. Algunos desarrolladores también trabajan con dispositivos con limitaciones en sus soluciones en la nube. Los desarrolladores que trabajen con dispositivos con limitaciones de recursos pueden consultar la ruta de desarrollo de dispositivos insertados.

Importante

Para obtener información sobre los SDK que usar en el desarrollo de dispositivos generales, vea los SDK de dispositivos.

Desarrollo de dispositivos insertados

El desarrollo insertado tiene como destino dispositivos con limitaciones de memoria y procesamiento. Los dispositivos con limitaciones restringen lo que se puede lograr, en comparación con una plataforma de desarrollo tradicional.

Los dispositivos insertados normalmente no usan sistema operativo o usan un sistema operativo en tiempo real (RTOS). Los dispositivos insertados tienen control total sobre su hardware, debido a la falta de un sistema operativo de uso general, lo que hace que sean una buena opción para sistemas en tiempo real.

Los SDK insertados actuales tienen como destino el lenguaje C. Los SDK insertados no proporcionan un sistema operativo o compatibilidad con Azure RTOS. Están diseñados teniendo en mente los destinos insertados. Las consideraciones de diseño incluyen la necesidad de una superficie de memoria mínima y un diseño que no se asigna a la memoria.

Importante

Para obtener información sobre los SDK que usar en el desarrollo de dispositivos insertados, vea los SDK de dispositivos insertados.

Elección del hardware

Los dispositivos Azure IoT son los bloques de creación básicos de las soluciones de IoT y son responsables de observar e interactuar con su entorno. Existen muchos tipos diferentes de dispositivos IoT, con lo cual resulta útil conocer los tipos de dispositivos existentes y cómo pueden repercutir en el proceso de desarrollo.

Para obtener más información sobre las diferencias entre los distintos tipos de dispositivo que se describen en este artículo, vea Acerca de los tipos de dispositivo IoT.

Elección de un SDK

Como desarrollador de dispositivos Azure IoT, usted dispone de un conjunto variado de SDK, protocolos y herramientas que ayudan a compilar aplicaciones en la nube habilitadas para dispositivos.

Hay dos opciones principales para conectar dispositivos y comunicarse con IoT Hub:

  • Usar los SDK de Azure IoT. En la mayoría de los casos, se recomienda usar los SDK de IoT de Azure frente al uso de MQTT directamente. Los SDK simplifican los esfuerzos de desarrollo y la complejidad de las tareas de conexión y administración de dispositivos. IoT Hub admite el protocolo MQTT v3.1.1 y los SDK de IoT simplifican el proceso de uso de MQTT para comunicarse con IoT Hub.
  • Use el protocolo MQTT directamente. Existen algunas ventajas de crear una solución de IoT Hub para usar MQTT directamente. Por ejemplo, una solución que use MQTT directamente sin los SDK se podrá compilar en el estándar MQTT abierto. Un enfoque basado en estándares hace que la solución sea más portátil y le proporciona más control sobre cómo se conectan y comunican los dispositivos. Sin embargo, IoT Hub no es un agente MQTT completo, así que no se admite su uso con todos los comportamientos que se especifican en el MQTT v3.1.1. La compatibilidad parcial con MQTT v3.1.1 agrega costes de desarrollo y complejidad. Los desarrolladores de dispositivos deberán sopesar las ventajas de usar los SDK de dispositivo IoT frente al uso directo de MQTT. Para obtener más información, consulte Comunicación con una instancia de IoT Hub mediante el protocolo MQTT.

Existen tres conjuntos de SDK de IoT para el desarrollo de dispositivos:

  • SDK de dispositivos (para usar lenguajes más refinados para conectar los dispositivos de uso general existentes a aplicaciones IoT)
  • SDK de dispositivos insertados (para conectar dispositivos con limitación de recursos a aplicaciones IoT)
  • SDK de servicios (para la creación de soluciones Azure IoT que conectan dispositivos a servicios)

Para más información sobre cómo elegir un dispositivo Azure IoT o un SDK de servicios, consulte Introducción a los SDK de dispositivos Azure IoT.

Selección de un servicio

Un paso clave en el proceso de desarrollo consiste en seleccionar un servicio al que conectar los dispositivos. Existen principalmente dos opciones de servicio de Azure IoT para conectar y administrar dispositivos: IoT Hub e IoT Central.

  • Azure IoT Hub. Use IoT Hub para hospedar aplicaciones IoT y conectar dispositivos. IoT Hub es una aplicación de plataforma como servicio (PaaS) que funciona como centro neurálgico de mensajería para la comunicación bidireccional entre las aplicaciones IoT y los dispositivos conectados. IoT Hub puede escalar hasta tener cabida para millones de dispositivos. En comparación con otros servicios de Azure IoT, IoT Hub ofrece el mayor grado de control y personalización sobre el diseño de la aplicación. También ofrece el máximo de opciones de herramientas de desarrollo para trabajar con el servicio, si bien a costa de un aumento en la complejidad de desarrollo y administración.
  • Azure IoT Central. IoT Central se ha diseñado para simplificar el proceso de trabajo con soluciones IoT. Puede usarlo como prueba de concepto para evaluar sus soluciones IoT. IoT Central es una aplicación de software como servicio (SaaS) que proporciona una interfaz de usuario web para simplificar las tareas de creación de aplicaciones y conectar y administrar dispositivos. IoT Central usa IoT Hub para crear y administrar aplicaciones, pero mantiene la mayor parte de los detalles transparentes al usuario.

Herramientas para conectar y administrar dispositivos

Una vez que haya decidido qué hardware y SDK de dispositivo va a usar, tiene varias opciones de herramientas de desarrollo. Puede usar estas herramientas para conectar sus dispositivos a IoT Hub y administrarlos. En la tabla siguiente se resumen las opciones de herramientas habituales.

Herramienta Documentación Descripción
Azure portal Creación de un centro de IoT con Azure Portal Portal basado en un explorador para IoT Hub y dispositivos. También funciona con otros recursos de Azure incluido IoT Central.
Azure IoT Explorer Azure IoT Explorer No se puede crear un centro de IoT. Se conecta a un centro de IoT existente para administrar los dispositivos. Se usa a menudo con la CLI o Azure Portal.
Azure CLI Creación de un centro de IoT con la CLI Interfaz de la línea de comandos para crear y administrar aplicaciones de IoT.
Azure PowerShell Creación de un centro de IoT con PowerShell Interfaz de PowerShell para crear y administrar aplicaciones de IoT
Azure IoT Tools para VS Code Creación de un centro de IoT con herramientas de Visual Studio Code Extensión de Visual Studio Code para aplicaciones de IoT Hub.

Nota:

Además de con las herramientas anteriores, también puede crear y administrar aplicaciones IoT mediante programación con API de REST, con SDK de Azure o con plantillas de Azure Resource Manager. Puede obtener más información en la documentación de servicio de IoT Hub.

Pasos siguientes

Consulte el siguiente artículo para obtener más información sobre los SDK de dispositivos que se pueden usar para conectar dispositivos a Azure IoT.

Para empezar a trabajar en el desarrollo práctico de dispositivos, seleccione un inicio rápido de desarrollo de dispositivos que sea pertinente para los dispositivos que use. En el siguiente artículo se sintetizan los inicios rápidos disponibles. En cada inicio rápido se explica cómo crear una aplicación Azure IoT para hospedar dispositivos, cómo usar un SDK, cómo conectar un dispositivo y cómo enviar telemetría.