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