Este tema describe cómo usar el servicio de enrutamiento de mensajes basado en temas de IoT Platform para construir una arquitectura de comunicación M2M. Como ejemplo, se utiliza una conexión entre una lámpara inteligente y una aplicación móvil.
Contexto
La siguiente figura muestra cómo controlar la lámpara inteligente mediante la aplicación móvil.

Procedimiento
-
En la consola de IoT Platform, cree un producto y un dispositivo para la lámpara inteligente dentro de su instancia, y defina sus funciones. Para obtener más información, consulte Create a product, Create multiple devices at a time y Add a Thing Specification Language (TSL) feature.
En este ejemplo, establezca los siguientes parámetros para crear el producto: configure Product Name como SmartLamp, node type como directly connected device. Utilice los valores predeterminados para el resto de los parámetros.
Para el dispositivo que cree, configure DeviceName como light.
En este ejemplo, el valor de ProductKey del producto SmartLamp es al123456789.
Puede agregar funciones de Thing Specification Language (TSL) según sus necesidades de negocio. Por ejemplo, agregue una propiedad TSL llamada Switch. Establezca el tipo de dato como Boolean (0 para apagado y 1 para encendido) con el fin de controlar el interruptor de la lámpara inteligente.
-
Agregue un tema personalizado con permisos de suscripción para recibir los comandos de control desde la aplicación móvil.
En este ejemplo, agregue el siguiente tema:
/al123456789/light/user/set. Para obtener más información, consulte Use custom topics for communication. -
Desarrolle el dispositivo de la lámpara inteligente para que se conecte a IoT Platform e implemente la lógica necesaria para recibir y ejecutar comandos.
En este ejemplo, el dispositivo usa MQTT para comunicarse con IoT Platform. El dispositivo de la lámpara inteligente debe suscribirse al tema
/al123456789/light/user/setpara recibir comandos. Una vez que el dispositivo reciba un comando, deberá desarrollar la lógica para ejecutarlo.Para obtener detalles sobre el desarrollo de SDK en el lado del dispositivo, consulte Connect devices by using Link SDK.
-
En la consola de IoT Platform, cree un producto y un dispositivo para la aplicación móvil dentro de su instancia. Para obtener más información, consulte Create a product y Create a device.
En este ejemplo, establezca los siguientes parámetros para crear el producto: configure Product Name como MobileApp, node type como directly connected device. Utilice los valores predeterminados para el resto de los parámetros.
Configure el valor de DeviceName del dispositivo como ControlApp.
En este ejemplo, el valor de ProductKey del producto MobileApp es al987654321.
Una vez creados el producto y el dispositivo para la aplicación móvil, podrá conectar la aplicación a IoT Platform.
Cuando un usuario de la aplicación móvil se registra e inicia sesión, su servidor envía la información del dispositivo a la aplicación. Esto permite que la aplicación se conecte a IoT Platform como si fuera un dispositivo.
-
Llame a la operación CreateTopicRouteTable para crear una relación de enrutamiento de mensajes entre los temas de la aplicación y de la lámpara inteligente.
Establezca el parámetro SrcTopic con el tema de la aplicación:
/al987654321/ControlApp/user/update.Establezca el parámetro DstTopics con el tema de la lámpara inteligente:
/al123456789/light/user/set.
-
Desarrolle la aplicación móvil.
En este ejemplo, la aplicación móvil usa HTTPS para comunicarse con IoT Platform.
El siguiente código muestra el formato de los datos de carga útil (payload) de un comando de control que la aplicación móvil envía a la lámpara inteligente a través del tema personalizado:
{ "TargetDevice": "light", "Switch": 0, "Timestamp": 1557750407000 }Para obtener detalles sobre el desarrollo de SDK en el lado del dispositivo, consulte Connect devices by using Link SDK.
-
El usuario de la aplicación móvil escanea el código QR para vincular la aplicación con la lámpara inteligente.
Cuando la aplicación envía una solicitud al servidor para vincular un dispositivo, el servidor vincula la lámpara inteligente y devuelve el nombre del dispositivo. Este nombre se indica mediante el parámetro deviceName. En este ejemplo, el nombre del dispositivo es light.
-
El usuario de la aplicación móvil envía un comando desde la aplicación.
-
La aplicación envía comandos al tema en IoT Platform. En este ejemplo, el tema es
/al987654321/ControlApp/user/update.Solo son compatibles los comandos en formato JSON.
IoT Platform enruta los comandos al tema del dispositivo de la lámpara inteligente según la relación de enrutamiento de mensajes definida. El tema es
/al123456789/light/user/set.El dispositivo de la lámpara inteligente recibe los comandos y ejecuta las operaciones correspondientes.
NotaPuede configurar la aplicación móvil para que envíe una solicitud de desvinculación al servidor. De esta manera, el servidor llama a la operación
de IoT Platform para eliminar la relación de enrutamiento de mensajes. Una vez eliminada la relación de enrutamiento, ya no podrá usar la aplicación para controlar la lámpara inteligente.
-