Guía de desarrollo de dispositivos IoT Central

Una aplicación IoT Central le permite supervisar y administrar millones de dispositivos a lo largo de su ciclo de vida. Esta guía está dirigida a los desarrolladores de dispositivos que implementan código para ejecutarlo en dispositivos que se conectan a IoT Central.

Los dispositivos interactúan con una aplicación IoT Central con los siguientes primitivos:

  • Telemetría: son datos que un dispositivo envía a IoT Central. Por ejemplo, una secuencia de valores de temperatura de un sensor incorporado.
  • Propiedades: son valores de estado que un dispositivo notifica a IoT Central. Por ejemplo, la versión actual del firmware del dispositivo. También puede tener propiedades de escritura que IoT Central puede actualizar en el dispositivo, como la temperatura de destino.
  • Comandos: se llaman desde IoT Central para controlar el comportamiento de un dispositivo. Por ejemplo, la aplicación IoT Central podría llamar a un comando para reiniciar un dispositivo.

Un generador de soluciones es responsable de configurar paneles y vistas de dispositivo en la interfaz de usuario web de IoT Central para visualizar la telemetría, administrar las propiedades y llamar a los comandos.

Tipos de dispositivos

En las secciones siguientes se describen los principales tipos de dispositivos que se pueden conectar a una aplicación IoT Central:

Dispositivo IoT

Un dispositivo IoT es un dispositivo independiente que se conecta directamente a IoT Central. Un dispositivo IoT envía telemetría desde sus sensores incorporados o conectados a la aplicación IoT Central. Los dispositivos independientes también pueden notificar valores de propiedad, recibir valores de propiedad de escritura y responder a los comandos.

Dispositivo de IoT Edge

Un dispositivo de IoT Edge se conecta directamente a IoT Central. Un dispositivo de IoT Edge también puede enviar su propia telemetría, notificar sus propiedades y responder a los comandos y las actualizaciones de propiedades de escritura. Los módulos de IoT Edge pueden procesar datos localmente en el dispositivo de IoT Edge. Un dispositivo de IoT Edge también puede actuar como intermediario para otros dispositivos conocidos como dispositivos hoja. Algunos de los escenarios en los que se usan dispositivos de IoT Edge son:

  • Adición o filtrado de los datos de telemetría antes de que se envíen a IoT Central. Este enfoque puede ayudar a reducir los costos de enviar datos a IoT Central.
  • Habilitación de dispositivos que no se pueden conectar directamente a IoT Central y lo hacen a través del dispositivo de IoT Edge. Por ejemplo, un dispositivo hoja podría usar Bluetooth para conectarse al dispositivo de IoT Edge y este usar Internet para conectarse a IoT Central.
  • Control local de los dispositivos hoja para evitar la latencia asociada con la conexión a IoT Central a través de Internet.

IoT Central solo ve el dispositivo de IoT Edge, no los dispositivos hoja conectados a él.

Para más información, consulte Incorporación de un dispositivo Azure IoT Edge a la aplicación Azure IoT Central.

Puertas de enlace

Un dispositivo de puerta de enlace administra uno o varios dispositivos de nivel inferior que se conectan a la aplicación IoT Central. IoT Central se usa para configurar las relaciones entre los dispositivos de nivel inferior y el dispositivo de puerta de enlace. Tanto los dispositivos IoT como los de IoT Edge pueden actuar como puertas de enlace. Para más información, consulte Definición de un nuevo tipo de dispositivo de puerta de enlace de IoT en la aplicación de Azure IoT Central.

Conexión de un dispositivo

Azure IoT Central usa Azure IoT Device Provisioning Service (DPS) para administrar el registro y la conexión de todos los dispositivos.

El uso de DPS permite:

  • Que IoT Central admite la incorporación y la conexión de dispositivos a escala.
  • Que usted pueda generar credenciales de dispositivo y configurar los dispositivos sin conexión sin tener que registrarlos primero en la interfaz de usuario de IoT Central.
  • Que usted pueda usar identificadores de dispositivo propios para registrar estos en IoT Central. Esto simplifica la integración con sistemas del área de operaciones existentes.
  • Una manera sencilla y coherente de conectar dispositivos a IoT Central.

Para más información, consulte Conexión a Azure IoT Central y Procedimientos recomendados.

Seguridad

La conexión entre un dispositivo y la aplicación IoT Central está protegida mediante firmas de acceso compartido o certificados X.509 estándar del sector.

Protocolos de comunicación

Los protocolos de comunicación que un dispositivo puede usar para conectarse a IoT Central incluyen MQTT, AMQP y HTTPS. A nivel interno, IoT Central usa una instancia de IoT Hub para permitir la conectividad del dispositivo. Para más información sobre los protocolos de comunicación que admite IoT Hub para la conectividad de los dispositivos, consulte Selección de un protocolo de comunicación.

Implementación del dispositivo

Una plantilla de dispositivo IoT Central incluye un modelo que especifica los comportamientos que debe implementar un dispositivo de ese tipo. Estos comportamientos incluyen telemetría, propiedades y comandos.

Para más información sobre los procedimientos recomendados para editar un modelo, consulte Edición de una plantilla de dispositivo existente.

Sugerencia

Puede exportar el modelo desde IoT Central como un archivo JSON de lenguaje de definición de Digital Twins (DTDL) v2.

Cada modelo tiene un identificador de modelo de dispositivo gemelo (DTMI) único, como dtmi:com:example:Thermostat;1. Cuando un dispositivo se conecta a IoT Central, envía el DTMI del modelo que implementa. A continuación, IoT Central puede asociar la plantilla de dispositivo correcta con el dispositivo.

IoT Plug and Play define un conjunto de convenciones que un dispositivo debe seguir cuando implementa un modelo DTDL.

Los SDK de dispositivos IoT de Azure incluyen compatibilidad con las convenciones de IoT Plug and Play.

Modelo de dispositivo

Un modelo de dispositivo se define mediante DTDL. Este lenguaje le permite definir:

  • La telemetría que envía el dispositivo. La definición incluye el nombre y el tipo de datos de la telemetría. Por ejemplo, un dispositivo envía telemetría de temperatura como un valor double.
  • Las propiedades que el dispositivo notifica a IoT Central. Una definición de propiedad incluye su nombre y tipo de datos. Por ejemplo, un dispositivo informa del estado de una válvula como un valor booleano.
  • Las propiedades que el dispositivo puede recibir desde IoT Central. Opcionalmente, puede marcar una propiedad como grabable. Por ejemplo, IoT Central envía una temperatura de destino como un valor double a un dispositivo.
  • Los comandos a los que responde el dispositivo. La definición incluye el nombre del comando y los nombres y tipos de datos de todos los parámetros. Por ejemplo, un dispositivo responde a un comando de reinicio que especifica la cantidad de segundos que hay que esperar antes de reiniciar.

Un modelo de DTDL puede ser sin componentes o de varios componentes:

  • Modelo sin componentes: Un modelo sencillo no utiliza componentes insertados o en cascada. Toda la telemetría, las propiedades y los comandos se definen en un único componente raíz. Para ver un ejemplo, consulte el modelo de termostato.
  • Modelo de varios componentes: Un modelo más complejo que incluye dos o más componentes. Estos componentes incluyen un único componente raíz y uno o más componentes anidados adicionales. Para ver un ejemplo, consulte el modelo de controlador de temperatura.

Para más información, consulte la Guía de modelado de IoT Plug and Play.

Convenciones

Un dispositivo debe seguir las convenciones de IoT Plug and Play cuando intercambia datos con IoT Central. Entre las convenciones se incluyen las siguientes:

  • Enviar el DTMI cuando se conecte a IoT Central.
  • Enviar cargas y metadatos JSON con formato correcto a IoT Central.
  • Responder correctamente a comandos y propiedades grabables desde IoT Central.
  • Seguir las convenciones de nomenclatura para los comandos de componentes.

Nota

En la actualidad, IoT Central no es completamente compatible con los tipos de datos Array y Geospatial de DTDL.

Para más información sobre el formato de los mensajes JSON que un dispositivo intercambia con IoT Central, consulte Cargas de telemetría, propiedades y comandos.

Para más información sobre las convenciones de IoT Plug and Play, consulte Convenciones de IoT Plug and Play.

SDK de dispositivo

Use uno de los SDK de dispositivo Azure IoT para implementar el comportamiento del dispositivo. El código debe:

  • Registrar el dispositivo en DPS y usar la información de DPS para conectarse al centro de IoT Hub interno en la aplicación IoT Central.
  • Anunciar el DTMI del modelo que el dispositivo implementa.
  • Enviar telemetría en el formato que especifica el modelo de dispositivo. IoT Central usa el modelo de la plantilla de dispositivo para determinar cómo utilizar la telemetría para las visualizaciones y el análisis.
  • Sincronizar los valores de propiedad entre el dispositivo e IoT Central. El modelo especifica los nombres de propiedad y los tipos de datos de modo que IoT Central pueda mostrar la información.
  • Implementar controladores de comandos para los comandos especificados en el modelo. El modelo especifica los nombres de comandos y los parámetros que el dispositivo debe usar.

Para obtener más información sobre el rol de las plantillas de dispositivo, consulte ¿Qué son las plantillas de dispositivo?

Para ver algún código de ejemplo, consulte Creación y conexión de una aplicación cliente.

Lenguajes y SDK

Para más información sobre los lenguajes y SDK admitidos, consulte Uso de los SDK de dispositivos de Azure IoT Hub.

Pasos siguientes

Si es un desarrollador de dispositivos y desea profundizar en algún código, el paso siguiente que se sugiere se indica en Creación y conexión de un aplicación cliente a una aplicación de Azure IoT Central.

Para más información sobre el uso de IoT Central, los siguientes pasos sugeridos son probar los inicios rápidos, empezando por Creación de una aplicación de Azure IoT Central.