物联网边缘计算(Link IoT Edge)提供了场景联动、函数计算、流数据分析等多种服务,帮助用户构建物联网应用程序。考虑到用户没有大量可连接的实际设备来测试使用应用程序,物联网边缘计算同时提供一套设备模拟器(DeviceSimulator)的解决方案。

设备模拟器包含两部分:

  • 驱动:在边缘端可以模拟所有类型的设备(设备的属性、事件、服务取决于物模型的定义)。
  • 控制工具:改变设备模拟器的属性值、触发设备模拟器进行事件上报。

您只需要将设备和设备模拟器的驱动绑定,并部署至边缘端,结合控制工具,便可以脱离真实的物理设备进行应用程序的测试。下文将会对设备模拟器的使用进行详细介绍。

前提条件

  • 下载设备模拟器驱动。
    产品规格 边缘版本号 驱动下载地址
    专业版、标准版 v1.7 ~ v1.8.1 DeviceSimulator_v0.1
    专业版、标准版 v1.8.2 ~ 最新版本 DeviceSimulator_v0.2
  • 设备模拟器只适用于Link IoT Edge标准版和专业版v1.7及以上版本环境中使用,因此开始操作本章内容前,请确保您已根据专业版环境搭建标准版环境搭建内容完成边缘实例的创建。

使用设备模拟器驱动

  1. 上传驱动。
    1. 物联网平台控制台左侧导航栏中,单击边缘计算 > 驱动管理
    2. 驱动管理页面,选择自研驱动,单击右侧的新建驱动
    3. 新建驱动界面,根据提示设置驱动参数,上传前提条件中下载到本地的设备模拟器驱动文件。
      新建驱动
    4. 完成参数的设置并上传成功驱动文件后,单击确定。您可以在驱动列表中看到刚刚创建的驱动。
  2. 添加子设备到边缘实例。
    前提条件中完成的边缘实例分配子设备。
    1. 实例详情页面,选择设备驱动配置,单击全部驱动右侧的“+”图标,在弹出对话框中选择自研驱动,分配上一步创建的DeviceSimulator驱动到边缘实例。
      分配驱动
    2. 选择DeviceSimulator驱动,单击分配子设备,在DeviceSimulator驱动下,为边缘实例分配子设备。
    3. 分配子设备对话框中,单击添加子设备
    4. 添加设备对话框,单击新建产品,创建产品。
      新建产品
    5. 创建产品对话框中设置参数后,单击确认
      新建产品
    6. 添加设备对话框,单击前往配置为产品添加物模型。
      设置物模型
      • 参考单个添加物模型中“添加自定义功能”的步骤,为产品添加temperature属性。属性设置
      • 参考单个添加物模型中“添加自定义功能”的步骤,为产品添加high_temperature事件。事件设置

        为事件增加参数。

        事件参数
    7. 返回添加设备对话框,输入设备名称后单击确认,为产品添加设备。
      添加设备
    8. 分配子设备对话框,分配温度传感器产品下的temperatureSensor01设备到实例中,并单击完成
  3. 部署边缘实例。
    实例详情页面,右上角单击部署,部署边缘实例。部署成功后边缘实例名称后显示部署成功

使用设备模拟器控制工具

设备模拟器控制工具的功能和真实物理设备的按键类似。完成本文上方使用设备模拟器驱动的操作后,可使用设备模拟器控制工具。

  1. 登录您的远程终端。登录操作详情请见远程服务访问
  2. (可选)执行下载命令。
    说明 目前v1.8.1(不含)以上版本的Link IoT Edge标准版和专业版软件已经默认集成该工具,不需要下载。
    • 若登录远程终端时,使用root账号,执行如下命令。
      platform=Your_Platform && output=/linkedge/gateway/build/bin/ds_ctrl && wget http://link-iot-edge-packet.oss-cn-shanghai.aliyuncs.com/tool/ds_ctrl_$platform -O $output && chmod +x $output
    • 若登录远程终端时,使用其他账号(需要支持sudo命令),执行如下命令。
      platform=Your_Platform && output=/linkedge/gateway/build/bin/ds_ctrl && sudo wget http://link-iot-edge-packet.oss-cn-shanghai.aliyuncs.com/tool/ds_ctrl_$platform -O $output && sudo chmod +x $output
    其中,Your_Platform取决于您使用的物联网边缘计算软件的版本,请参考下表示例。
    版本 使用环境 Your_Platform
    标准版(LE Standard)v1.8.1及以上 ARMv7 Linux arm7
    ARMv7 VPFv3 Linux arm7
    ARMv8_64 Linux arm8
    x86_64 Linux x86
    专业版(LE Pro)v1.7及以上 x86_64 Docker环境 x86
    例如,您的物联网边缘计算软件版本为专业版,且使用root账号登录远程终端,则实际执行的命令如下所示。
    platform=x86 && output=/linkedge/gateway/build/bin/ds_ctrl && wget http://link-iot-edge-packet.oss-cn-shanghai.aliyuncs.com/tool/ds_ctrl_$platform -O $output && chmod +x $output
  3. 使用设备模拟器控制工具控制设备行为。
    进入/linkedge/gateway/build/bin 目录,执行 ./ds_ctrl命令即可看到工具的使用方式。
    Usage: ds_ctrl <command>
    
    where <command> is one of:
        property, event
    
    ds_ctrl property productKey deviceName params            Change property
    ds_ctrl event productKey deviceName eventCode params     Trigger event
    
    
    For example(productKey = xxx, deviceName = yyy):
        ds_ctrl property xxx yyy '{"temperature":30}'
        ds_ctrl event xxx yyy alarm '{"temperature":90}'
    • 可改变设备属性:
      1. 改变温度。
        使用工具将温度传感器温度改为30。
        ./ds_ctrl property a1WuxHrhojr temperatureSensor01 '{"temperature":30}'
        系统返回如下信息,表示温度设置成功。
        Send property success!
      2. 物联网平台控制台,选择设备管理 > 设备,在相应设备名称右侧单击查看

        设备详情页面查看设备的运行状态

      3. (可选)模拟多次温度变化。
        连续执行如下命令5次,每次将温度值+1。
        ./ds_ctrl property a1WuxHrhojr temperatureSensor01 '{"temperature":31}'
        可在控制台中,设备的运行状态页面下查看数据变化。
    • 可触发设备事件:
      1. 上报高温事件。
        ./ds_ctrl event a1WuxHrhojr temperatureSensor01 high_temperature '{"temperature":90}'
      2. 物联网平台控制台,选择设备管理 > 设备,在已相应设备名称右侧单击查看

        设备详情页面查看设备的事件管理内容。

在线调试设备

  1. 物联网平台控制台,选择监控运维 > 在线调试,在在线调试页面,选择调试产品和调试设备。在线调试
  2. 获取设备属性。
    选择功能、方法后,单击发送指令,即可在输入框中看到当前温度值为35。调试真实设备
  3. 设置设备属性。
    将温度设为40,单击发送指令后可在设备运行状态查看温度传感器温度值已变更为40。设置设备属性
  4. 其他自定义服务,会将相关信息打印到驱动日志中,并返回如下信息。
    {"code":0,"message":"success"}