您现在的位置是:首页 >技术杂谈 >modscan模拟数据,nodred通过modbus协议向emqx创建规则引擎写入TDengine库网站首页技术杂谈
modscan模拟数据,nodred通过modbus协议向emqx创建规则引擎写入TDengine库
nodred通过modbus协议向emqx创建规则引擎写入TDengine库过程
本文将介绍通过modscan模拟设备信号数据,通过nodered读取modbus数据,发送到emqx主题上,再通过emqx将数据存储到TDEngine数据库里面。
一、emqx存储数据到TDEngine数据库
参考链接:emqx创建规则引擎写入tDengine
1.1 进入emqx界面
进入emqx界面:http://192.168.xx.xx:18083/#/login
1.2 新建资源
- 点击规则引擎,资源菜单,新建资源,选择资源类型为webhook。
- 配置请求参数
(1)请求URL是http://tDengine的服务器IP:6041/rest/sql
(2) 请求方式为post
(3)添加 Authorization 请求头作为认证信息。
Authorization 的值为 Basic + TDengine 的 {username}:{password} 经过 Base64 编码之后的字符串,
Base64 编码的获取方式,可以通过网页去获取:base64在线编码、解码工具
tDengin的默认账户和密码是 root:taosdata 编码后为 cm9vdDp0YW9zZGF0YQ==,
实际填入的值为:Basic cm9vdDp0YW9zZGF0YQ==
3. 填写完成后,单击测试连接查看是否填写正确。
1.3 新建规则引擎
- 点击规则引擎—》规则—新建
- 填写如下,获取主题内容
1.4 测试
- 在TDEngine数据库中创建表:test
- 使用emqx的websocket工具,连接emqx的mqtt服务
- 给mytest主题发送消息,消息内容如下
在数据库查看数据是否插入成功:
二、modscan模拟设备数据
参考链接: modscan 安装使用说明
1.新建文件:
2. 建立连接
3. 设置数据自变更
双击数据项,设置属性:
三、在Node-RED上模拟Modbus通讯
3.1 nodeRed环境搭建
1、安装noddered
2、安装modbus驱动
1、 nodered官网
2、 windows环境搭建参考链接: 可视化界面开发-- NodeRed环境搭建
3、linux环境搭建参考链接:Node-RED的介绍与安装
进入nodered:
1、cmd
2、输入:node-red
3、启动后在浏览器输入:http://localhost:1880/
即可进入nodered开发界面
3.2 nodeRed使用
3.3 nodered读取modbus发送的数据
- 在左侧菜单栏中,拖拽一个 modebus 的节点到页面中,双击节点后,右侧出现一个编辑 节点的配置页面,我们根据内容提示,新建一个连接信息后,点击 Done 【完成】按钮后,即可保存该节点信息。
- 在左侧菜单栏中,拖拽一个 function的节点到页面中,双击节点后,右侧出现一个编辑 节点的配置页面,设置输出对象,点击 Done 【完成】按钮后,即可保存该节点信息。
- 添加debug,在窗口打印数据:
- 部署流程:
部署后,在窗口能看到数据输出:
3.4 nodered发送数据到emqx主题
1、mqtt介绍:了解MQTT通讯协议及通讯过程
2、参考链接:使用 Node-RED 处理 MQTT 数据
将使用 EMQ 提供的 免费公共 MQTT 服务器,该服务基于 MQTT 物联网云平台 - EMQX Cloud 创建,服务器接入信息如下:
Broker: broker-cn.emqx.io
TCP Port: 1883
WebSocket Port: 8083
- 在左侧菜单栏中,拖拽一个 modebus 的节点到页面中,双击节点后,右侧出现一个编辑 节点的配置页面,我们根据内容提示,新建一个连接信息后,点击 Done 【完成】按钮后,即可保存该节点信息。
- 在左侧菜单栏中,拖拽一个 function的节点到页面中,双击节点后,右侧出现一个编辑 节点的配置页面,设置输出对象,点击 Done 【完成】按钮后,即可保存该节点信息。
- 在左侧菜单栏中,拖拽一个 mqtt out的节点到页面中,双击节点后,右侧出现一个编辑 节点的配置页面,我们根据内容提示,新建一个连接信息后,配置一个用户接收数据的 Topic,最后保存完成后,再将其和节点进行连接,点击右上角的 Deploy【部署】 按钮,即可对当前规则应用进行在线部署。
3.5 功能测试
有两种测试方法:
- 通过客户端查看:
在完成整个流数据处理的功能编排以后,我们使用 MQTT 客户端工具 - MQTT X 来测试和验证该功能的可用性。
(1)新建一个连接,连接到刚才在 Node-RED 中配置的 MQTT 云服务地址
(2)在 MQTT X 中订阅一个在 MQTT out 节点内配置的 Topic,用于消息数据。
订阅成功后,能看到控制台输出数据:
- 在数据库端查看,通过查询表数据,判断数据是否成功插入:
四、使用操作TDEngine数据库
4.1 查询TDEngine数据
- 从左便菜单拖入”inject“节点:
该节点的作用是手动或定期得将消息注入流中,可以是文本,变量,表达式,时间戳等。该节点前面没有可以流入的节点,消息体只能往后流。
点击节点的前部分可以触发该节点,也可以设置该节点为循环触发。
- 新增”function“节点:
function可以用于操作消息体.可以通过该节点,修改或验证消息体中的数据,在编写函数中,msg对象是函数体中可以直接操作的数据,
- 添加”http request“节点:
该节点可以发送HTTP请求并返回响应。
- 新增”debug“节点:
debug节点用来查看消息体的具体内容。在“调试”侧边栏选项卡和运行时日志中显示选定的消息属性。 默认情况下,它会显示msg.payload的值,但您也可以将其设置成显示任意属性,完整消息或JSONata表达式的结果。
- 部署
(1)将各个节点连起来,从inject连接到debug
(2)点击右上角的红色按钮部署,注意修改了任何节点的配置后,都要点一下部署,新的配置才能生效。
部署完成后,点击inject节点的就会触发流,然后就可以在调试窗口看到流中的payload中的消息体。