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

news2024/11/24 13:56:21

nodred通过modbus协议向emqx创建规则引擎写入TDengine库过程

  • 一、emqx存储数据到TDEngine数据库
    • 1.1 进入emqx界面
    • 1.2 新建资源
    • 1.3 新建规则引擎
    • 1.4 测试
  • 二、modscan模拟设备数据
  • 三、在Node-RED上模拟Modbus通讯
    • 3.1 nodeRed环境搭建
    • 3.2 nodeRed使用
    • 3.3 nodered读取modbus发送的数据
    • 3.4 nodered发送数据到emqx主题
    • 3.5 功能测试
  • 四、使用操作TDEngine数据库
    • 4.1 查询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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555421.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Firewalld

目录 firewalld概述 firewalld 与 iptables 的区别 firewalld 区域的概念 firewalld防火墙预定义了9个区域 firewalld数据处理流程 firewalld检查数据包的源地址的规则 firewalld防火墙的配置方法 常用的firewall-cmd 命令选项 区域管理 服务管理 ​编辑端口管理 设…

创建项目执行计划的5个简单步骤

项目执行计划是定义项目将如何执行的文件。执行计划解释项目中涉及的战略目标和步骤,定义项目完成时间表,并列出成功项目所需的资源(包括团队成员)。 使用项目计划是多种项目管理最佳实践之一。这个过程并不像看起来那么复杂。按…

读财报丨产品收入增长近70%,百济神州已成功切换成长驱动模式?

5月12日,百济神州(北京)生物科技有限公司(下称“百济神州”)公布2023年第一季度业绩报告。从数据来看,延续了2022年的良好增长态势,实现营业收入30.66亿元,同比增长57%,而…

unity实现小球poke不穿膜

引言 在oculus quest2官方实现了手部指尖poke按键不穿膜,具体采用代码的方式进行限制,具体看oculus quest包中的HandPokeLimiterVisual.cs,下面则实现其他物体(小球)作为pokeInteractor来poke按键,当按下的…

Linux网络——shell编程之SNAT与DNAT的应用

Linux网络——shell编程之SNAT与DNAT的应用 一、SNAT的介绍1.SNAT概述2.SNAT源地址转换过程 二、SNAT转换三、DNAT的介绍1.DNAT概述2.DNAT转换前提条件 四、DNAT的转换五、防火墙规则的备份和还原六、tcpdump抓包工具的运用 一、SNAT的介绍 SNAT(SNAT)一…

蓝桥杯数论总结:最大公约数和最小公倍数(原理+性质证明+python板子)

目录 最大公约数 手写GCD 最小公倍数 推导LCM函数表达式 GCD基本性质 性质的证明 取模运算基本性质 证明 最大公约数 gcd是最大公约数的意思。Python的math库里有gcd函数。 在Python命令行运行gcd,可发现其可传入0、不会返回负数、可对多个数进行判断的性质…

利用 DynamoDB 和 S3 结合 gzip 压缩,最大化存储玩家数据

前言 一些传统游戏架构中,采用 MySQL 存储玩家存档数据,利用分库分表分散单库单表的存储和性能压力,从而达到支持更多玩家的目的。随着数据量增长,数据表中 varchar 类型已经无法满足游戏中单字段的存储需求,而 blob …

数据结构 -最短路径dijkstra(迪杰斯特拉)算法讲解及代码实现

迪杰斯特拉算法是一种广义的贪心算法,求出局部最优解,再去求全局最优解 图文讲解: 举例图:(起始点为1) 辅助数组: s:记录了目标顶点到其他顶点的最短路径是否求得(求得…

代码调试技巧

目录 1.为什么要进行调试? 2.调试的基本步骤 3.关于Debug版本和Release版本 4.调试技巧 5.调试总结 我还是喜欢真实的世界,因为在那里,我可以通过自己的努力来改变残酷的现实 本专栏适用于有一定C语言基础并且还要继续学习的人 往期…

CryoEM - 冷冻电镜 CryoSPARC 软件的安装与环境配置

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/130809095 CryoSPARC 软件是一种用于冷冻电镜数据处理的创新工具,可以快速、准确地重建生物分子的三维结构。CryoSPARC 软件…

【使用ChatGPT制作PPT】

内容目录 一、利用ChatGPT生成PPT内容1. 打开ChatGPT:2. 输入需求:3. 复制: 二、制作生成PPT1. 打开PPT制作网站:2. 左侧网页版-导入创建-粘贴Markdown内容-导入创建3. 自行更改副标题、演讲者、选择模板、演示及下载 一、利用Cha…

Linux网络——shell编程之iptables防火墙

Linux网络——shell编程之iptables防火墙 一、概述1.iptables2.netfilter 和 iptables的关系 二、iptables中的四表五链1.四表五链的关系2.四表3.五链 三、匹配顺序1.数据包到达防火墙的匹配流程2.规则链之间的匹配顺序3.规则链内的匹配顺序 四、iptables 防火墙的配置方法1.ip…

python tesseract-ocr + jTessBoxEditorFX 训练自定义字库

在使用tesseract-ocr进行字符识别时,我们使用了官方提供的字库,例如英文字库、中文字库,但这些字库并不一定能满足我们所有的需求。所以有些时候,我们就需要训练属于自己的自定义字库。废话少说,直接开干。 第一步&am…

联想首次展示全栈算力方案服务,品牌换新亮相

1、联想算力,第一次真正被所有人感知。 2、基于软硬服一体化的优势,联想打造了丰富多样的四维算力服务,即融合化、场景化、订阅化、绿色化,可以满足不同企业、不同行业的定制化需求。 5月20日,主题为“联想方案服务&am…

2023中兴软件类笔试

1.下列Python代码:将近似输出什么? import numpy as np print np.sqrt(6*np.sum(1/np.arange(1,1000000, dtypenp.float)**2))这段代码是用来计算圆周率的巴塞尔问题(Basel problem)的近似值,输出结果将近似为3.14159…

使用SMTP协议发送邮件

剧情介绍 今天心血来潮,学了一下Python3,里面有个章节是发送邮件,用示例里面的代码,运行后报错,然后记录一下问题是如何解决的,大家可以看一下,可以有效避坑。 SMTP协议介绍 SMTP&#xff08…

Mysql数据库备份 一天一次 保存最新五天 每天凌晨三点备份

Mysql数据库备份 一天一次 保存最新五天 每天凌晨一点三十备份 步骤一 先查看 sudo systemctl status crond 是否存在 不存在执行下面代码 sudo yum install cronie sudo systemctl start crond sudo systemctl enable crond sudo systemctl status crond 步骤二 Cd /home …

从零开始 Spring Boot 33:Null-safety

从零开始 Spring Boot 33:Null-safety 图源:简书 (jianshu.com) Null-safety(null安全)实际上是Java这个“古老”语言的历史包袱,很多新的语言(比如go或kotlin)在诞生起就在语言层面提供对null…

软件测试需要学习什么?好学吗?需要学多久?到底是报班好还是自学好?

目录 前言: 【文章的末尾给大家留下了大量的福利哦。】 一:软件测试好学吗?需要学习多久? 二:那么选择软件测试行业有什么优势呢? 三:再来说说大家最关心的——软件测试人员的薪资怎么样? …

Spring : XML配置 JavaBean

文章目录 前言一、xml 加载 Bean 对象总结XML加载Bean对象 前言 跟着大佬走!!!! https://github.com/DerekYRC/mini-spring 提示:以下是本篇文章正文内容,下面案例可供参考 一、xml 加载 Bean 对象 大家先…