面对物联网相关课程缺少设备或者设备难管理的问题,我们设计了一套物联网虚拟仿真系统,系统集成了多种虚拟传感器和网关设备,无需实体硬件即可模拟真实物联网环境。系统支持HTTP、modbusRTU、modbusTCP、MQTT、websocket等通信协议对接,因此支持app开发、微信小程序、web前端开发、云平台开发等。用户可开展各类物联网场景实验,不仅节约成本,还提供安全保障,实验效率和教学质量。

下面是基于物联网虚拟仿真系统通过MQTT实现场景联动
保存好根规则链后,回到虚拟仿真系统,即可进行整体联动人过灯亮:(将人体传感器触发为on,灯泡亮)
人走灯灭:(将人体传感器触发off,灯泡熄灭)

天亮开窗帘:将光照度设定固定值(大于400)即为天亮状态,窗帘就全部打开

天黑关窗帘:
将光照度设定固定值(小于100)即为天黑状态窗帘就全部关闭

操作步骤:
1.登录物联网虚拟仿真系统

2.拉入仿真设备,并接好线

3.依次双击传感器,配置传感器随机值范围


完成接线配置后,进入到ThingsBoard创建设备,在设备栏目中填写设备名

成功创建设备后,进入设备,打开物联网虚拟仿真系统客户端。
打开 MQTT模式,填写MQTT服务器IP,即为ThingsBoard的域名,端口默认为1883

在没有设定MQTT管理凭证的情况下,只需要填写用户名(即为访问令牌)

RPC下发控制主题为订阅主题,上报客户端属性的主题为推送主题

填写完主题后,选择上报的JSON格式为ThingsBoard格式,无需填写 Client ID。开启MQTT服务和端口,并开启仿真系统的模拟实验


进入设备属性,即可看到数据上报成功

本次案例是实现人过灯亮,人走灯灭和天黑关窗帘,天亮开窗帘。
在侧边栏规则链库中创建规则链


在筛选器栏目中拉入脚本节点,此脚本的作用为判断前置条件。例如判断人体检测到有没有人经过

此时复制人体检测的变量名进行判断,检测到有人返回true,没人返回false


现在进行过滤功能测试,假设人体数据传入到此节点中,测试是否能正常返回值

测试节点功能正常后,将输入节点接入。在变换栏目中拉入脚本节点,此脚本节点的作用是创建消息,创建人过灯亮的联动。


使用的是RPC下发控制的形式控制设备,复制格式进去,msg即为即将发送的消息。填写亮灯泡时的格式,复制灯泡变量名和更改需要下发的数值。msgtype为指定的消息类型,用来表示一个RPC调用请求



保存后,返回面板。当人体检测到有人返回true时,接入人过灯亮节点

创建人走灯灭,只需要修改RPC下发的值即可。同理当人体检测到没人,返回false时,接入人走灯灭节点。


在动作栏目中找到并创建RPC调用请求节点,将人过灯亮和人走灯灭节点接入。当触发成功时,RPC会下发节点中的msg消息。写好逻辑后保存规则链



将MQTT上传的数据,输入到这条规则链中。
回到规则链库中,进入根规则链

在流栏目中拉入规则链,名字自拟,规则链选择刚创建的规则链


与消息类型开关接入,选择Post属性,添加完后保存即可

现在进行场景测试。当检测到有人时,灯泡就亮;反之,检测到没人时灯泡就灭。

返回到ThingsBoard中,进入场景联动规则链

复制节点到根规则链,可以直接在根规则链中设计场景联动


首先设计的是检测到天亮状态时,全开窗帘。设定光照度>400时为天亮状态

转换脚本中只需要更改需要下发的设备名和数值即可


反之,为天黑状态时,全关窗帘当光照度小于100时为天黑状态

转换脚本,修改下发的值即可

条件成立后,通过RPC下发控制两个联动节点前与消息类型开关接入,选择Post属性即可

保存好根规则链后,回到虚拟仿真系统,即可进行整体联动
人过灯亮:(将人体传感器触发为on,灯泡亮)
人走灯灭:(将人体传感器触发off,灯泡熄灭)

天亮开窗帘:将光照度设定固定值(大于400)即为天亮状态,窗帘就全部打开

天黑关窗帘:
将光照度设定固定值(小于100)即为天黑状态窗帘就全部关闭
