当前位置: 首页 > news >正文

Node-RED基础1

目录

  • 一、概述
  • 二、安装
  • 三、基操
  • 四、通讯
  • 五、数据
  • 六、节点
  • 七、 应用
  • END

一、概述

Rode-Red是什么?

  • 基于Node.js的物联网开发工具,做API、通讯;
  • 提供了一些基本的监控功能,可在编辑器界面中查看节点的运行状态、消息流量等信息。
  • 通过安装一些额外的节点或使用外部监控工具来实现更详细的监控和管理,

例如:监控数据处理的性能指标、数据传输的成功率等。

Node.js是什么?

  • 基于谷歌V8引擎的JavaScript运行环境(底层环境)点击安装
    安装完成

PM2是什么?

  • 实时管理JavaScript应用(包括Node-red)的进程工具;
  • 基于PM2部署的Node-red进行PLC(MQTT)数据采集转发可以确保其7x24h稳定运行。

二、安装

  • 安装: 安装node.js,安装pm2(是什么?)npm install pm2 -g,基于pm2安装Node-Red npm install -g--unsafe perm node-red pm2 pm2-windows-startup pm2-windows-service
  • 启动: 在命令行中输入node-red启动 Node-RED 服务(临时调试;关闭CMD窗口会停止服务)
  • 自启动: 在开始菜单C:\ProgramData\Microsoft\Windows\Start Menu路径下建立.bat文件pm2 start C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-red\red.js开机自动启动服务
  • 打开: 通过浏览器访问http://localhost:1880
  • 创建: 输入—响应—输出
  • 运行: 点击 Node-RED 编辑器右上角的 “部署” 按钮,将流程部署到运行环境中。此时,数据管道就开始按照设定的流程运行,接收输入数据,进行处理和存储,并根据需要输出响应。
  • 分析: 监控数据处理的性能指标、数据传输的成功率等。

三、基操

前提

  • 运行服务
  • 浏览器http://localhost:1880

在这里插入图片描述

概要

  • 输入:inject
    • msg: Payload、topic、或自定义标题
    • =值: 二进制、环境变量、数字、文本、表达式、msg、时间戳、
    • 特别说明: JSON{ "num": 98, "name": "小王","yes":true}…类似键值对格式(可循环嵌套);
  • 输出:debug
    • msg. Payload.name(与输入的msg标题对应)
    • 与调试输出相同
  • 部署: 每次更改必须 部署
  • 注入: 点击 输入的左边小框 该条指令即可输出内容
  • 组合: 框选右击可组合命令
    在这里插入图片描述

1. Switch选择

  • inject(数字)——Switch(添加域)——debug1debug2...(选择输出)
  • 应用:输入的数字在相应域内选择当前域的输出
    在这里插入图片描述

2. range缩放

  • inject(数字)——range(缩放)——debug
  • 应用:根据输入值放大或缩小其倍数并输出(模数转换)
    在这里插入图片描述

3. delay延迟

  • inject(数字)——delay(延迟)——debug
  • 应用:延迟输出
    在这里插入图片描述

4. trigger触发

  • inject(数字)——trigger(触发)——debug
  • 应用:触发输出
    在这里插入图片描述

5. change更改

  • inject——change(增删改移消息msg.topic)——debug
  • 应用:对Payload消息进行操作控制、删除、修改、移动设定等;
    在这里插入图片描述

6. loop循环

  • inject——function——loop===function——debug
  • loop 固定循环次数Fixed Count
  • loop 条件判断输出Condition
  • loop 遍历function对象Enumeration
  • 应用:循环处理事件在这里插入图片描述

7.link跳转

  • inject——link out
  • link in(link1)——Debug
  • 应用:省略流程的连线,视觉简化;可多个in、out互联
    在这里插入图片描述

四、通讯

1. tcp链接

  • TCP调试工具(Client、Server、UDP)
  • TCP接收信息:tcp in——debug
  • TCP发送信息:tcp out——debug
  • 作Server:监听,只需配置端口号(IP为主机网卡地址)
  • 作Client:连接,输入主机IP、端口号即可
  • 应用:TCP通讯传输数据
    在这里插入图片描述

2. UDP链接

  • TCP调试助手(UDP)
  • 发送信息到UDP本地:inject——udp out(本地IP、端口)
  • 从UDP本地接收信息:udp in(远程IP<网卡IP>、端口)——debug
  • 应用:UDP通讯传输数据

在这里插入图片描述

3. MQTT发布订阅

  • inject——mqtt out(服务端、发布主题)
  • mqtt in——debug(服务端、订阅主题)
  • 客户端发布 _ 公网Server _客户端订阅
  • 客户端发布 _ 私有Server _ 客户端订阅
  • 可用公网Server进行练习测试,也可自己开发Server端 MQTT开发
    在这里插入图片描述

4. http请求

  • http in(get)——function——http response
  • 输入:请求方法(查数据用GET,添新用POST;全改旧用PUT,微调用PATCH;想删干净DELETE一下。)、URL地址
  • 应用:网址+URL 地址(http://localhost:1880/test);
    在这里插入图片描述

5. modbus通讯

  • modbus read/write(modbus slave调试工具连接)——debug
  • modbus server(modbus poll调试工具连接)——debug
  • modbus:需要物理IP(非随意IP)
    在这里插入图片描述

五、数据

1. MySql数据库链接

  • 虚拟机安装Mysql数据库 Mysql安装; 更改主机名为任意IP 更改方法
  • 主机安装Navicat客户端,测试连接成功 绝活哥; 新建数据库-表-插入测试内容;sql语句查询
  • inject ——mysql2——debug
  • mysql2链接参数配置:主机名,端口,用户名,密码,数据库,表名 ; 查询语句Binds…:select NAME FROM class1 WHERE ID=1;
  • 应用:链接Mysql数据库进行增删改查
    在这里插入图片描述

2. 文件读写

  • inject——写入文件(路径:文件路径)
  • inject——读取文件——debug
  • inject——function——写入文件(msg.filename)
  • function:msg.filename=“C:\Intel\test1.txt”(代码中的路径不能有中文;双斜杠<单斜杠默认转译>)
  • 输出:文件夹下新建文本文件,配置路径(复制粘贴路径)
  • 应用:查看文件文件写入内容;查看调试窗口内容
    在这里插入图片描述

六、节点

  • 节点管理
  • 搜索关键词即可安装
  • node-red-node-random:随机数
  • node-red-contrib-mysql2: MySQL数据库
  • node-red-contrib-modbus:MODBUS通讯
  • node-red-contrib-loop:loop循环
  • node-red-contrib-opcua:OPC UA通讯
  • node-red-contrib-s7:S7通讯
  • node-red-contrib-dashbored:Web控件
  • node-red-contrib-email:邮件发送

在这里插入图片描述


七、 应用

1.企业微信机器人推送消息

  • inject——function(文本发送代码)——http request(post,API<企业微信机器人Webhook> )
  • 逻辑思路:时间戳触发功能块(文本发送至企业微信消息代码)到http response的请求post的URL地址(机器人Webhook)
    在这里插入图片描述

function4代码:群机器人配置说明

msg.payload={"msgtype": "text","text": {"content": "今日天气:29度,大部分多云,降雨概率:60%","mentioned_list":["小王","@all"],"mentioned_mobile_list":["mobilenumber","@all"]
}
}
return msg;

添加机器人:
在这里插入图片描述

2. 定时执行——过该时刻后5秒执行一个事件

  • 记录时刻:时间戳写入文件time
  • 逻辑思路:时间戳读取time文件的时间值,创建当前时间对象var newtime = new Date().Valueof(),与读取时间作差,为真执行输出;同时更新time文件的时间值

在这里插入图片描述
function7代码片段:

var newtime = new Date().valueOf()  //获取当前时间值
if (newtime - parseInt(msg.payload) > 4*1000){  //过4S执行一次msg.Flag = true
}else{msg.Flag =false
}

function8代码片段:

msg.payload = new Date().valueOf()

3. 发送邮件

  • inject——send email
  • host:发信服务器 (SMTP),端口465
  • secure:勾选
  • user:发送的邮箱账号
  • password:邮箱-安全设置-客户端专用密码
    在这里插入图片描述

END


http://www.mrgr.cn/news/94156.html

相关文章:

  • 【Godot4.3】RenderingServer总结
  • Quantum Computing:量子计算如何改变世界
  • 深入探索 Java Stream
  • 使用 OptiSLang 和 MotorCAD 构建一个强大的电机优化元模型
  • 感觉自己邮电部诗人
  • 【医院成本核算专题】8.大数据与医院成本核算的关联点:开启医疗成本管理新时代
  • 使用Dockerfile构建一个Docker镜像
  • 20 | 如何添加单元测试用例
  • 计算机:基于深度学习的Web应用安全漏洞检测与扫描
  • 工作记录 2017-01-06
  • 重要!!! 改进 梯度方差(Fisher 信息近似) 指数移动平均
  • 记录一下返修
  • 【操作系统】Linux基本命令2
  • JAVA SE 4.Java各版本特性
  • 【MapSet】哈希表
  • vue3,Element Plus中el-select默认显示0
  • 前端高阶面试题·每日一题
  • 大模型在甲状腺肿瘤预测及治疗方案制定中的应用研究
  • Java并发编程面试题:基础(11题)
  • XSS笔记