本文以智能灯和手机App连接为例,基于物联网平台的Topic消息路由服务,构建一个M2M设备间通信架构。
背景信息
智能灯控制流程如下图:
操作步骤
- 在物联网平台控制台,为智能灯设备创建产品和设备,定义功能等。请参见文档创建产品、批量创建设备、单个添加物模型。
本示例中,智能灯的ProductKey为al123456789;DeviceName为light。
- 开发智能灯设备端。
本示例中,设备与物联网平台间的通信协议为MQTT。
- 在物联网平台,为手机App注册产品和设备。
上图示例中,手机App的ProductKey为al987654321;DeviceName为ControlApp。
当手机App用户注册登录时,服务器将App设备信息发送给手机App。手机App可以作为一个设备连接到物联网平台。
- 使用服务器,调用云端接口CreateTopicRouteTable,创建App Topic与智能灯Topic之间的消息路由关系。
- 将入参SrcTopic指定为App的Topic:
/al987654321/ControlApp/user/update
。
- 将入参DstTopics指定为智能灯的Topic:
/al123456789/light/user/set
。
- 开发手机App。
本示例中,手机App与物联网平台间的通信协议为HTTPS。
手机App发送的智能灯控制指令payload数据格式如下:
{
"TargetDevice": "light",
"Switch": "off",
"Timestamp": 1557750407000
}
- 手机App用户通过扫码,将App与智能灯绑定。
当App向服务器发送绑定设备的请求后,服务器将返回绑定成功的智能灯设备名称deviceName。本示例中,智能灯设备名称为light。
- 通过App发送控制指令。
-
手机App发送指令到Topic:/al987654321/ControlApp/user/update
。指令为JSON格式的数据。
- 物联网平台根据已定义的Topic路由关系,将指令信息路由到智能灯设备的Topic:
/al123456789/light/user/set
。
- 智能灯设备接收到指令后,执行相关操作。