Skip to content

网关子设备快速连接 IOT 平台示例

场景描述

网关的能力是转换不同设备间的通讯协议,可以让不具有联网能力的子设备通过网关连接上IOT平台。 如果我们想要达到该目的,需要将子设备添加到网关下,建立子设备与网关的联系。本章节指导用户通过AT指令使得子设备通过网关连接上开发者中心。

涉及指令

指令名称功能描述
AT+QIOTSUBCONN连接子设备至网关
AT+QIOTSUBDISCONN断开/注销子设备与网关的连接
AT+QIOTSUBSEND发送子设备透传数据至平台
AT+QIOTSUBRD子设备读取平台下发的透传数据
AT+QIOTSUBTSLTD发送子设备物模型数据至平台
AT+QIOTSUBTSLRD读取平台下发的物模型数据
AT+QIOTSUBHTB发送心跳包

提示:详情请参考网关子设备AT指令

操作步骤

一、登录开发者中心

登录开发者中心,未注册可单击立即注册完成注册。

二、创建产品

1、创建网关产品

创建网关产品与创建蜂窝产品类似,在设备类型选项选择 网关设备 与相匹配的选项即可。

2、创建网关子设备产品

  • 设备类型:单品设备指的是可以直接接入网络;网关设备是可帮助子设备连接平台的设备;网关子设备是依赖网关连接上网络的设备。
  • 限制网关产品
    • 不启用:表示子设备可通过任意网关设备连接开发者中心。
    • 启用:表示子设备仅能通过指定的网关设备连接开发者中心。
  • 接入网关方式:平台对网关设备授权。
    • 仅代理上网:移动端用户需绑定子设备后方拥有控制权限,适用于把网关当成上网与数据转发通道。
      • 允许动态切换网关:表示子设备通过网关连接到开发者中心后,还允许切换到其它网关连接开发者中心。
      • 不允许动态切换网关:表示子设备通过网关连接到开发者中心后,无法切换到其它网关连接开发者中心。
    • 产品整合:移动端用户绑定网关即拥有子设备控制权限,适用于子设备整合到网关设备。

三、网关设备配置

1、配置产品信息(初次连接需配置)

若首次连接开发者中心需先通过 AT+QIOTCFG="productinfo"[,<pk>,<ps>] 指令配置产品信息。将产品密钥烧录进设备,通过设备引导/认证,通过引导/认证的设备会自动添加至平台所在的产品中。

c
[TX]AT+QIOTCFG="productinfo","pxxxxt","cDVTxxxxxxxxWGVB"

[RX]AT+QIOTCFG="productinfo","pxxxxt","cDVTxxxxxxxxWGVB"

[RX]OK

2、连接开发者中心

MCU可通过 AT+QIOTREG=<reg_mode> 指令配置平台连接模式,发送指令后,当模组响应如以下返回值,则代表设备已成功与开发者中心连接。

c
[TX]AT+QIOTREG=1

[RX]AT+QIOTREG=1

[RX]OK

[RX]+QIOTEVT: 2,10200

[RX]+QIOTEVT: 3,10200

四、子设备连接网关

网关的能力是转换不同设备间的通讯协议,可以让不具有联网能力的子设备通过网关连接上平台。 如果我们想要达到该目的,需要将子设备添加到网关下,建立子设备与网关的联系。网关子设备可通过 AT+QIOTSUBCONN 指令连接网关设备。

c
[TX]AT+QIOTSUBCONN=0,60,"pxxxxm","RGtwxxxxxxxxxxSUls","123123123"

[RX]OK

连接成功事件回调反馈

发送连接网关指令后,当模组响应如以下事件回调,则代表设备已成功与网关设备连接成功。

  • 设备认证成功事件回调

    c
    [RX]+QIOTSUBEVT: "pxxxxm","123123123",1,10200,"2c8e8a105e5c4c0fa3787deb7e96ede7"
  • 子设备登录成功事件回调

    c
    [RX]+QIOTSUBEVT: "pxxxxm","123123123",2,10200

五、子设备发送心跳包

为了维护子设备与网关之间的链路有效性,子设备和网关之间会维护一个心跳信息。心跳的启动会依赖MCU主动发送心跳包的指令,所以需要根据子设备连接网关时所配置的 子设备保活时间 来定时发送 AT+QIOTSUBHTB 心跳包保活指令。

c
[TX]AT+QIOTSUBHTB="pxxxxm","123123123"

[RX]OK

六、子设备物模型数据交互

需要实现一个智能设备的远程控制,最基本的能力就是设备的状态上报以及接收来自平台的命令并执行。因此数据传输部分是网关的核心能力。以下将以智能三色灯子设备作为物模型交互示例。

物模型数据上行

发送JSON格式物模型数据

发送物模型数据如下表所示。

ID类型
1Booltrue
2Int30

则执行 AT+QIOTSUBTSLTD="pxxxxm","123123123",17,待响应 > 后,MCU发送物模型数据。

c
[TX]AT+QIOTSUBTSLTD="pxxxxm","123123123",17
[RX]> 
[TX]{"1":true,"2":30}
[RX]OK

[RX]+QIOTSUBEVT: "pxxxxm","123123123",4,10210

物模型数据下行

  • 非缓存模式(若不配置则出厂默认关闭缓存模式。)

    1、开发者中心下发物模型服务

    在开发者中心 设备调试 页面,第一步点击 属性调试,第二步选择要下发的物模型属性,第三步点击左下角的 发送指令 即可下发物模型属性到网关子设备。

    2、模组收到下发指令并向MCU打印回调事件与数据

    模组收到物模型数据后,会主动向MCU打印回调事件 +QIOTSUBEVT: "p1126m","123123123",5,10210,10 与下发的物模型数据 {"1":true}

    c
    [RX]+QIOTSUBEVT: "pxxxxm","123123123",5,10210,10
    [RX]{"1":true}
  • 缓存模式

    1、打开下行数据缓存模式 MCU可通过 AT+QIOTCFG="buffer"[,<buffer_mode>] 指令配置下行数据缓存模式。

    c
    [TX]AT+QIOTCFG="buffer",1
    
    [RX]AT+QIOTCFG="buffer",1
    
    [RX]OK

    2、开发者中心下发物模型服务

    在开发者中心 设备调试 页面,第一步点击 属性调试,第二步选择要下发的物模型属性,第三步点击左下角的 发送指令 即可下发物模型属性到网关子设备。

    3、模组收到服务下发指令并向MCU打印回调事件

    • 回调事件解析:+QIOTSUBEVT: "p1126m","123123123",5,10210

      p1126m :网关子设备在平台创建产品时生成的ProductKey。

      123123123 :网关子设备DeviceKey,唯一标识。

      5 :收到下行业务事件。

      10210 :收到平台下发物模型属性事件Code。

    4、MCU根据回调事件查询数据

    经过 AT+QIOTSUBTSLRD 指令查询的物模型数据为 {"1":true}

    c
    [TX]AT+QIOTSUBTSLRD="pxxxxm","123123123",512
    
    [RX]+QIOTSUBTSLRD: "pxxxxm","123123123",10,0,0
    [RX]{"1":true}
    
    
    [RX]OK