本文以智能灯和手机App连接为例,基于物联网平台的Topic消息路由服务,构建一个M2M设备间通信架构。

背景信息

智能灯控制流程如下图:

流程图

操作步骤

  1. 物联网平台控制台,为智能灯设备创建产品和设备,定义功能等。具体操作,请参见创建产品批量创建设备单个添加物模型
    本示例中,智能灯的ProductKeyal123456789DeviceNamelight
  2. 添加具有订阅权限的自定义Topic,用于接收手机App下发的控制指令。
    本示例添加Topic:/al123456789/light/user/set。具体操作,请参见自定义Topic
  3. 开发智能灯设备端,实现智能灯设备连接物联网平台,接收并执行指令等功能。
    本示例中,设备与物联网平台间的通信协议为MQTT。
    设备端SDK开发详情,请参见设备接入Link SDK
  4. 物联网平台控制台,为手机App注册产品和设备。具体操作,请参见创建产品单个创建设备
    本示例中,手机App的ProductKeyal987654321DeviceNameControlApp
    为手机App创建产品和设备后,手机App可以作为一个设备连接到物联网平台。

    当手机App用户注册登录时,您的服务器将App的设备信息发送给手机App,手机App即可作为一个设备连接到物联网平台。

  5. 使用服务器,调用云端接口CreateTopicRouteTable,创建App Topic与智能灯Topic之间的消息路由关系。
    • 将入参SrcTopic指定为App的Topic:/al987654321/ControlApp/user/update
    • 将入参DstTopics指定为智能灯的Topic:/al123456789/light/user/set
  6. 开发手机App。
    本示例中,手机App与物联网平台间的通信协议为HTTPS。

    手机App通过自定义Topic发送给智能灯的控制指令payload数据格式如下:

    {
        "TargetDevice": "light", 
        "Switch": "off", 
        "Timestamp": 1557750407000
    }
    设备端SDK开发详情,请参见设备接入Link SDK
  7. 手机App用户通过扫码,将App与智能灯绑定。
    当App向服务器发送绑定设备的请求后,服务器将返回绑定成功的智能灯设备名称deviceName。本示例中,智能灯设备名称为light。
  8. 手机App用户通过App发送控制指令。
    1. 手机App通过自定义Topic发送指令,如本示例中,App对应的发送指令Topic:/al987654321/ControlApp/user/update

      指令为JSON格式的数据。

    2. 物联网平台根据已定义的Topic路由关系,将指令信息路由到智能灯设备的Topic:/al123456789/light/user/set
    3. 智能灯设备接收到指令后,执行相关操作。
    说明 可配置手机App向服务器发送解绑请求,触发服务器调用云端接口DeleteTopicRouteTable,删除消息路由关系。路由关系删除后,该手机App将不再控制该智能灯。