简体中文
简体中文
English
联系我们
注册
登录
layout空间导航

V2.0 生态设备接入

更新时间:2022-06-09 03:52:50下载pdf

本文介绍了如何安装和使用 TEdge 边缘网关。

安装

目前,TEdge 开发者版本支持 Docker 方式安装。运行以下命令,安装 TEdge 开发者版本。

当前版本仅支持在 Linux 系统上使用。

# 为了持久化 TEdge 运行过程中生成的数据,需要在 TEdge 启动时挂载一个宿主机目录。
# 如果不挂载宿主机目录,则当容器被删除后,所有使用过程中产生的数据也将一并被删除。
# Example:挂载的宿主机目录为 /var/tedge
sudo mkdir /var/tedge
# 安装部署 TEdge
docker run -d --name tedge \
  -p 58090:58090 \
  -p 21883:21883 \
  -p 3000:3000 \
  -v /etc/localtime:/etc/localtime:ro \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/tedge:/var/tedge \
  tuyaedge/tedge-community

使用

TEdge 边缘网关初始化

启动成功后,网页访问:http://安装TEdge的主机IP:3000。网页默认端口为 3000。此处安装的主机 IP 地址为 192.168.1.177,端口为 3333,所以我们打开浏览器访问 http://192.168.1.177:3333 出现如下画面。

  1. 设置登录密码。

    V2.0 生态设备接入

  2. 设置完成后,进入登录页面,用户名为 admin,密码为上一步中设置的密码。

    V2.0 生态设备接入

TEdge 边缘网关激活

首次安装登录后,会跳转至网关激活页面。

  1. 在激活边缘网关之前,需要在涂鸦 IoT 开发平台上创建边缘网关设备与产品。创建结果如下:
    V2.0 生态设备接入

  2. 将注册完成的网关信息填入边缘网关激活页面中,然后单击网关激活
    V2.0 生态设备接入

    激活成功,如下图所示:

    V2.0 生态设备接入

  3. 跳转到基础信息页面,进行物模型产品同步。下图是我们在涂鸦 IoT 开发平台上创建的边缘网关产品。
    V2.0 生态设备接入

    单击同步物模型按钮进行产品信息同步。

    V2.0 生态设备接入

    同步结果如下图所示:

    V2.0 生态设备接入

TEdge 边缘网关 license 授权

  • 免费版 TEdge 边缘网关的 license 有效期为 60 天。如需购买 license,请单击下图中的前往购买按钮联系涂鸦。

  • 购买 license 后,单击导入license文件,完成网关与 license 的绑定流程。

    V2.0 生态设备接入

添加驱动和产品

  1. 选择服务管理 > 服务镜像管理 > 自定义 > +新建,添加驱动镜像。

    V2.0 生态设备接入

    以 Modbus 驱动为例。

    • 镜像名称:modbus
    • 别名:modbus
    • 镜像仓库:registry.hub.docker.com(Docker Hub 官方仓库)
    • 镜像版本:latest
    • 上传配置文件:添加 Modbus 驱动镜像。由于 Modbus 驱动需要额外的功能点配置,所以我们需要上传一个配置文件。
{
  "deviceServer": {},
  "deviceProtocols": {
    "modbus-rtu": [
      {
        "name": "Address",
        "display": "串口",
        "type": "string",
        "defaultValue": ""
      },
      {
        "name": "BaudRate",
        "display": "波特率",
        "type": "string",
        "defaultValue": ""
      },
      {
        "name": "DataBits",
        "display": "数据位",
        "type": "string",
        "defaultValue": ""
      },
      {
        "name": "StopBits",
        "display": "停止位",
        "type": "string",
        "defaultValue": ""
      },
      {
        "name": "Parity",
        "display": "奇偶校验",
        "type": "string",
        "defaultValue": ""
      },
      {
        "name": "UnitID",
        "display": "UnitID",
        "type": "string",
        "defaultValue": ""
      },
      {
        "name": "ReportDpsInterval",
        "display": "DP上报间隔(s)",
        "type": "string",
        "defaultValue": "120"
      },
      {
        "name": "DevCmdInterval",
        "display": "设备指令间隔(ms)",
        "type": "string",
        "defaultValue": "10"
      },
      {
        "name": "IsSwapCrc",
        "display": "SwapCrc",
        "type": "select",
        "defaultValue": "false",
        "options": [
          "true",
          "false"
        ]
      },
      {
        "name": "EnableDevice",
        "display": "Enable",
        "type": "select",
        "defaultValue": "true",
        "options": [
          "true",
          "false"
        ]
      }
    ],
    "modbus-tcp": [
      {
        "name": "Address",
        "display": "IP地址",
        "type": "string",
        "defaultValue": ""
      },
      {
        "name": "Port",
        "display": "端口",
        "type": "string",
        "defaultValue": ""
      },
      {
        "name": "UnitID",
        "display": "UnitID",
        "type": "string",
        "defaultValue": ""
      },
      {
        "name": "ReportDpsInterval",
        "display": "DP上报间隔(s)",
        "type": "string",
        "defaultValue": "120"
      },
      {
        "name": "DevCmdInterval",
        "display": "设备指令间隔(ms)",
        "type": "string",
        "defaultValue": "10"
      },
      {
        "name": "EnableDevice",
        "display": "Enable",
        "type": "select",
        "defaultValue": "true",
        "options": [
          "true",
          "false"
        ]
      }
    ]
  },
  "deviceDpAttrs": [
    {
      "name": "readFunctionCode",
      "display": "读功能码",
      "type": "string",
      "defaultValue": ""
    },
    {
      "name": "writeFunctionCode",
      "display": "写功能码",
      "type": "string",
      "defaultValue": ""
    },
    {
      "name": "startingAddress",
      "display": "地址",
      "type": "string",
      "defaultValue": ""
    },
    {
      "name": "isByteSwap",
      "display": "字节交换",
      "type": "select",
      "defaultValue": "false",
      "options": [
        "false",
        "true"
      ]
    },
    {
      "name": "expandMultiple",
      "display": "扩大倍数",
      "type": "string",
      "defaultValue": "0"
    },
    {
      "name": "endian",
      "display": "大小端",
      "type": "select",
      "defaultValue": "big",
      "options": [
        "big",
        "little"
      ]
    },
    {
      "name": "length",
      "display": "长度",
      "type": "string",
      "defaultValue": ""
    }
  ]
}
  1. 添加完成之后,下载镜像。

    V2.0 生态设备接入

  2. 涂鸦 IoT 开发平台上创建子设备产品。创建结果如下:

    V2.0 生态设备接入

  3. 选择设备管理 > 产品开发 > 添加,添加一个 Modbus 设备所对应的产品,驱动库选择 Modbus 驱动。

    V2.0 生态设备接入

添加和激活设备

  1. 选择设备管理 > 子设备管理 > 添加子设备,添加一个子设备。
    这里以 Modbus 子设备为例:

    • 产品:选择 Modbus 设备所对应的产品。

    • 驱动实例:选择 Modbus 驱动。

    • 协议类型等信息为 Modbus 设备所特有,定义在添加 Modbus 驱动镜像时上传的配置文件中。本例中,添加一个 TCP 协议类型的 Modbus 模拟设备。其他类型的设备添加页面可能和该设备有所不同。

      V2.0 生态设备接入

  2. 添加完成后,单击在线激活,激活子设备。

    V2.0 生态设备接入

    出现在线激活结果弹窗,显示激活结果。

    V2.0 生态设备接入

  3. 添加子设备后,回到产品开发页面,单击同步进行产品元信息同步。

    V2.0 生态设备接入

    同步成功后,可以看到产品的详细信息。

    V2.0 生态设备接入

Modbus 驱动从 Modbus 设备读取的数据需要转换成物模型对应的数据结构,而这个转换需要依赖一些额外的配置信息,所以需要给 Modbus 驱动对应的产品添加一些配置信息。这些配置信息的定义是在我们添加 Modbus 驱动镜像时上传的配置文件中。具体配置如下图:

V2.0 生态设备接入

驱动运行、数据上报和指令下发

数据上报

  1. 选择 服务管理-> 服务实例管理,启动 Modbus 驱动实例。

    V2.0 生态设备接入

  2. 在 Modbus 驱动实例启动成功后,单击设备管理 > 子设备管理,可以看到驱动定期上报从 Modbus 子设备读取的数据。

    V2.0 生态设备接入

指令下发

可以在页面上向设备发送控制指令。

  1. 单击子设备管理,选择一个设备单击功能点,进入页面后选择某个功能点,并单击操作栏里的下发

    V2.0 生态设备接入

  2. 填写具体的功能点值,并单击确定

    V2.0 生态设备接入

  3. 下发成功后,刷新页面,可以看到指令执行后的效果。上图中,可以看到下发前的功能点值为 false。下图显示的是下发成功后的结果,可以看到下发成功后的功能点的值为 true

    V2.0 生态设备接入