ThingsKit物联网平台网关MQTT接入

入门介绍

在物联网中,网关的作用是将那些本身不能直接连接平台的设备,通过网关的中转,让设备接入平台。网关起到的作用是数据转发和协议转换。
网关和平台的通信主要分为:

  • 网关设备自身和平台的通信,例如:上报网关自身的设备状态和属性,接收平台对网关的控制指令等。
  • 网关子设备和平台的通信,例如:网关连接的Zigbee温湿度传感器向平台上报温湿度,以及网关连接的RS485/Modbus继电器数据或传感器数据,接收平台下发的实时指令。这些子设备的通信都需要经过网关的转发。

这一节,我们主要介绍的是利用网关如何实现子设备和平台的通信,ThingsKit提供了一套网关专用的MQTT协议,包括独立的主题和消息格式。

为网关添加子设备

在使用网关MQTT协议时,需要先在ThingsKit平台上为网关和子设备绑定关系。
对于MQTT网关子设备而言,上报上来的遥测数据,系统会自动创建。

设备类型

首先,网关和子设备都是设备,它们的区别仅仅在于所属的设备类型不同:

  • 网关设备必须归属于网关设备设备类型。
  • 网关子设备必须归属于网关子设备设备类型。

    网关子设备

    使用者,只需要单击编辑,重新绑定一下网关设备,来辨别两者之间的关系。如下图:
    ThingsKit物联网平台网关MQTT接入_第1张图片
    网关子设备,如下图:

    关联关系如下图:
    ThingsKit物联网平台网关MQTT接入_第2张图片

    设备连接API

    为了通知ThingsKit设备已连接到网关,需要发布以下消息:

    v1/gateway/connect
    {"device":"Device A"}

    其中Device A是您的设备名称。
    一旦收到,ThingsKit将查找或创建具有指定名称的设备。此外,ThingsKit将向此网关发布有关特定设备的新属性更新和RPC命令的消息。

    设备断开API

    为了通知ThingsKit设备与网关断开连接,需要发布以下消息:

    v1/gateway/disconnect
     {"device":"Device A"}

    遥测上传接口

    为了将设备遥测发布到ThingsKit服务器节点,请将PUBLISH消息发送到以下主题:

    v1/gateway/telemetry

    :::info
    提示
    下方的Device_A_Sub是网关子设备名称。
    :::
    数据上报格式如下:ts是以毫秒为单位的unix时间戳。

    {
      "Device_A_Sub": [
     {
       "ts": 1483228800000,
       "values": {
         "temperature": 42,
         "humidity": 80
       }
     }
      ]
    }

    或者

    {
      "Device_A_Sub": [
     {
       "temperature": 42,
       "humidity": 80
     }
      ]
    }

    调用控制接口

    服务器端RPC

    为了从服务器订阅RPC命令,发送SUBSCRIBE消息到以下主题:

    v1/devices/me/rpc/request/+

附:模拟网关+子设备接入案例

模拟网关+子设备MQTT接入
文章来源(首发地址):ThingsKit物联网平台

你可能感兴趣的:(物联网)