您现在的位置是:首页 >技术杂谈 >modscan模拟数据,nodred通过modbus协议向emqx创建规则引擎写入TDengine库网站首页技术杂谈

modscan模拟数据,nodred通过modbus协议向emqx创建规则引擎写入TDengine库

黎陌MLing 2024-06-17 11:28:39
简介modscan模拟数据,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

1.2 新建资源

  1. 点击规则引擎,资源菜单,新建资源,选择资源类型为webhook。
    23
  2. 配置请求参数
    (1)请求URL是http://tDengine的服务器IP:6041/rest/sql
    (2) 请求方式为post
    (3)添加 Authorization 请求头作为认证信息。
      Authorization 的值为 Basic + TDengine 的 {username}:{password} 经过 Base64 编码之后的字符串,
    Base64 编码的获取方式,可以通过网页去获取:base64在线编码、解码工具

1
tDengin的默认账户和密码是 root:taosdata 编码后为 cm9vdDp0YW9zZGF0YQ==,
实际填入的值为:Basic cm9vdDp0YW9zZGF0YQ==
1
1
3. 填写完成后,单击测试连接查看是否填写正确。
3
4

1.3 新建规则引擎

  1. 点击规则引擎—》规则—新建
    1
  2. 填写如下,获取主题内容
    1
    3

1.4 测试

  1. 在TDEngine数据库中创建表:test
    2
  2. 使用emqx的websocket工具,连接emqx的mqtt服务
    3
    3
  3. 给mytest主题发送消息,消息内容如下
    3
    在数据库查看数据是否插入成功:
    3

二、modscan模拟设备数据

参考链接: modscan 安装使用说明

1.新建文件:
1
2. 建立连接
2
3. 设置数据自变更
双击数据项,设置属性:1
2

三、在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
2
3、启动后在浏览器输入:http://localhost:1880/即可进入nodered开发界面
3

3.2 nodeRed使用

1、Node-RED的面板的操作
2、Node-RED公共节点的使用

3.3 nodered读取modbus发送的数据

  1. 在左侧菜单栏中,拖拽一个 modebus 的节点到页面中,双击节点后,右侧出现一个编辑 节点的配置页面,我们根据内容提示,新建一个连接信息后,点击 Done 【完成】按钮后,即可保存该节点信息。
    1
  2. 在左侧菜单栏中,拖拽一个 function的节点到页面中,双击节点后,右侧出现一个编辑 节点的配置页面,设置输出对象,点击 Done 【完成】按钮后,即可保存该节点信息。
    3
  3. 添加debug,在窗口打印数据:
    8
  4. 部署流程:
    7
    部署后,在窗口能看到数据输出:
    8

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

  1. 在左侧菜单栏中,拖拽一个 modebus 的节点到页面中,双击节点后,右侧出现一个编辑 节点的配置页面,我们根据内容提示,新建一个连接信息后,点击 Done 【完成】按钮后,即可保存该节点信息。
    1
  2. 在左侧菜单栏中,拖拽一个 function的节点到页面中,双击节点后,右侧出现一个编辑 节点的配置页面,设置输出对象,点击 Done 【完成】按钮后,即可保存该节点信息。
    3
  3. 在左侧菜单栏中,拖拽一个 mqtt out的节点到页面中,双击节点后,右侧出现一个编辑 节点的配置页面,我们根据内容提示,新建一个连接信息后,配置一个用户接收数据的 Topic,最后保存完成后,再将其和节点进行连接,点击右上角的 Deploy【部署】 按钮,即可对当前规则应用进行在线部署。
    4

3.5 功能测试

有两种测试方法:

  1. 通过客户端查看:
      在完成整个流数据处理的功能编排以后,我们使用 MQTT 客户端工具 - MQTT X 来测试和验证该功能的可用性。
    (1)新建一个连接,连接到刚才在 Node-RED 中配置的 MQTT 云服务地址
    1
    (2)在 MQTT X 中订阅一个在 MQTT out 节点内配置的 Topic,用于消息数据。
    23
    订阅成功后,能看到控制台输出数据:
    4
  2. 在数据库端查看,通过查询表数据,判断数据是否成功插入:
    3

四、使用操作TDEngine数据库

4.1 查询TDEngine数据

  1. 从左便菜单拖入”inject“节点:

  该节点的作用是手动或定期得将消息注入流中,可以是文本,变量,表达式,时间戳等。该节点前面没有可以流入的节点,消息体只能往后流。
  点击节点的前部分可以触发该节点,也可以设置该节点为循环触发。

1

  1. 新增”function“节点:

  function可以用于操作消息体.可以通过该节点,修改或验证消息体中的数据,在编写函数中,msg对象是函数体中可以直接操作的数据,
2

  1. 添加”http request“节点:

该节点可以发送HTTP请求并返回响应。
3
4

  1. 新增”debug“节点:

debug节点用来查看消息体的具体内容。在“调试”侧边栏选项卡和运行时日志中显示选定的消息属性。 默认情况下,它会显示msg.payload的值,但您也可以将其设置成显示任意属性,完整消息或JSONata表达式的结果。
5

  1. 部署
    (1)将各个节点连起来,从inject连接到debug
    (2)点击右上角的红色按钮部署,注意修改了任何节点的配置后,都要点一下部署,新的配置才能生效。

   部署完成后,点击inject节点的就会触发流,然后就可以在调试窗口看到流中的payload中的消息体。
7

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。