物联网边缘计算(Link IoT Edge)提供了场景联动、函数计算、流数据分析等多种服务,帮助用户构建物联网应用程序。考虑到用户没有大量可连接的实际设备来测试使用应用程序,物联网边缘计算同时提供一套设备模拟器(DeviceSimulator)的解决方案。
设备模拟器包含两部分:
- 驱动:在边缘端可以模拟所有类型的设备。设备的属性、事件、服务取决于物模型的定义,物模型相关信息,请参见物模型。
- 控制工具:改变设备模拟器的属性值、触发设备模拟器进行事件上报。
您只需要将设备和设备模拟器的驱动绑定,并部署至边缘端,结合控制工具,便可以脱离真实的物理设备进行应用程序的测试。本文将会对设备模拟器的使用进行详细介绍。
前提条件
- 下载设备模拟器驱动。
产品规格 边缘版本号 驱动下载地址 专业版、标准版 v1.8.2 ~ 最新版本 DeviceSimulator_v0.2 - 设备模拟器只适用于Link IoT Edge标准版和专业版v1.8.2及以上版本环境中使用,因此开始操作本文内容前,请确保您已完成边缘实例的创建。具体操作,请参见专业版环境搭建或标准版环境搭建。
使用设备模拟器驱动
- 上传驱动。
- 分配驱动到边缘实例。
- 左侧导航栏单击边缘实例,在前提条件中创建好的边缘实例右侧单击查看。
- 在实例详情页面设备与驱动页签下,单击全部驱动右侧的
+
图标,在弹出面板中选择自研驱动,找到步骤1创建的DeviceSimulator驱动,单击对应操作列下的分配,将该驱动分配到边缘实例。 - (可选)若您的边缘实例产品规格为专业版,则需要进行容器配置。选择已分配的DeviceSimulator驱动,单击设备列表右侧的容器配置,设置如下图参数后,单击保存。
网络端口映射参数说明如下所示,其他说明,请参见示例驱动。
表 1. 参数说明 参数 描述 宿主机端口 设置一个宿主机当前没有在使用的端口号,将容器内端口映射到此端口上,例如设置为8999端口。 容器内端口 容器内端口固定位为9000。 协议类型 此处选择TCP。
- 添加子设备到边缘实例。
- 在全部驱动下,单击DeviceSimulator驱动,然后在设备列表区域单击分配子设备,在DeviceSimulator驱动下,为边缘实例分配子设备。
- 在分配子设备面板中,单击添加子设备。
- 在添加设备对话框,单击新建产品,创建产品。
- 在创建产品对话框中设置参数后,单击完成。详细的参数说明,请参见创建产品。
表 2. 参数说明 参数 描述 产品名称 设置产品名称。 所属品类 选择标准品类下的 。 接入网关协议 选择自定义。 - 在添加设备对话框,单击前往配置为产品添加物模型。
- 返回添加设备对话框,输入DeviceName的值后单击确定,为产品添加设备。
- 在分配子设备对话框中,选择温度传感器产品下的temperatureSensor01设备,单击该设备右侧的分配,将该设备分配到实例中。
- 部署边缘实例。在实例详情页面右上角单击部署,部署边缘实例。此时会弹出部署进程的对话框,您可以单击对话框中的查看日志查看具体部署情况。部署成功后边缘实例名称后显示部署成功。
使用设备模拟器控制工具
设备模拟器控制工具的功能和真实物理设备的按键类似。完成本文上方使用设备模拟器驱动的操作后,可使用设备模拟器控制工具。
- 登录您的远程终端。登录操作详情,请参见远程服务访问。
- (可选)若您使用Link IoT Edge专业版软件,则需要在远程终端执行docker ps | grep 驱动名,查看是否有驱动容器。
- 使用设备模拟器控制工具控制设备行为。 进入/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}'
- 可改变设备属性:
- 改变温度。 使用工具将温度传感器温度改为30。
./ds_ctrl property a1WuxHr**** temperatureSensor01 '{"temperature":30}'
系统返回如下信息,表示温度设置成功。Send property success!
- 登录物联网平台控制台,在实例概览页面,单击公共实例。
- 在左侧导航栏选择
在设备详情页面,选择
页签,查看设备的运行状态。 ,在相应设备名称右侧单击查看。 - (可选)模拟多次温度变化。 连续执行如下命令5次,每次将温度值+1。
./ds_ctrl property a1WuxHr**** temperatureSensor01 '{"temperature":31}'
可在控制台中,设备的页签,单击查看数据查看数据的变化。
- 改变温度。
- 可触发设备事件:
- 上报高温事件。
./ds_ctrl event a1WuxHr**** temperatureSensor01 high_temperature '{"temperature":90}'
- 登录物联网平台控制台,在实例概览页面,单击公共实例。
- 在左侧导航栏选择
在设备详情页面,选择
页签,查看设备的事件。 ,在相应设备名称右侧单击查看。
- 上报高温事件。
- 可改变设备属性:
在线调试设备
- 在物联网平台控制台公共实例页面左侧导航栏,选择 ,在在线调试页面,选择调试产品和调试设备。
- 获取设备属性。单击属性调试,选择模块,然后单击获取,即可在输入框中看到当前温度值为35。
- 设置设备属性。将温度设为40,单击设置后可在设备运行状态查看温度传感器温度值已变更为40。
- 其他自定义服务,会将相关信息打印到驱动日志中,并返回如下信息。
{"code":0,"message":"success"}
文档内容是否对您有帮助?