海纳百客

海纳百客

树莓派 Node-RED 应用:低代码实现状态监测

吃瓜阿阳

友情提示点击顶部放大镜 可以使用站内搜索 记住我们的地址 www.hainabaike.com

一、前言

Node-RED是一种编程开发工具,用于以新颖有趣的方式将硬件设备、API和在线服务连接在一起。在应用虹科工业树莓派开发的过程中,可以借助Node-RED实现工业物联网应用,降低开发难度。在过去的文章中,我们简单介绍了虹科工业树莓派关于Node-RED的科普知识。接下来,虹科工业物联网团队将持续为大家讲解如何一步步搭建物联网平台。本文为大家带来第一个应用讲解——实现对工业树莓派的状态监测。

二、节点和控件介绍&应用

1、节点
所有的节点均可在节点管理处安装
(1)node-red-dashboard
搭建可视化界面必备节点,其中包含16个控件,都是搭建可视化界面必备控件,采用节点内的控件可以快速搭建监测界面。

(2)node-red-node-email
邮件收发节点,用于紧急情况下邮件通知相应负责人。

(3)node-red-contrib-simpletime
时间节点,用于显示系统时间

2、控件
节点内包含很多的控件,本文仅介绍搭建状态监测界面时所用到的控件,如对其他控件有兴趣,可以点击相应控件查看介绍:
(1)switch & button控件
switch控件和button控件都是按钮,可作为状态监测开关。两者的区别在于button控件每按一次触发一次,效果上等同于电路应用中的轻触开关,会出现自动复位的效果;switch控件则是每按一次则保持状态,效果上等同于电路应用中的自锁开关。


(2)text控件
该控件用于显示系统时间。

(3)gauge控件
gauge控件的主要功能是作为仪表盘,展示数据。在本次应用中,该控件用于展示数据以及充当指示灯。

(4)chart控件
该控件是图表控件,可作为折线图、柱状图,展示数据变化或数据对比。在本次应用中,该控件用于展示数据变化趋势。

(5)notification控件
notification控件的能操作提醒。在本次应用中,该控件用于界面警报。

(6)email控件
email控件的功能是发送邮件。在本次应用中,该控件用于邮件提醒相关负责人。

(7)simpletime控件
simpletime控件的功能获取时间。在本次应用中,该控件用于获取原始时间,通过函数整合,形成完整的系统时间。

(8)funcition控件
funcition控件用于编写函数,对数据进行处理,输出想要的值。在本次应用中,主要通过简单的语句实现数据处理。

三、搭建步骤(具体应用)

1、处理器温度监测
(1)开关设置
下拉“Group”选择添加新的group;

(2)仪表盘设置
根据下图进行修改,其中:
Group:需选择与switch控件一样的,保证该控件和switch控件处于同一个界面内;
Type:该控件提供四种展示方式,可根据需求选择;
Label:设置该控件展示的名称
Units:设置单位;
Range:设置该控件的最大值和最小值;
注意:Units和Range会随着Type的选择发生变化。

(3)变化曲线图设置
Group:需选择与switch控件一样的,保证该控件和switch控件处于同一个界面内;
Label:设置该控件展示的名称;
Type:该控件提供6种展示方式,可根据需求选择;
X-axis:设置横坐标展示的范围;
Legend:设置曲线的展示方式;
注意:X-axis和Legend会随着Type的选择发生变化。

(4)效果

2、指示灯监测(仿真)
(1)状态仿真设置
下拉“Group”选择添加新的group;
添加三组button控件,Label和Payload按照以下规则设置:
运行正常:5
运行异常:10
待机状态:15

(2)指示灯设置
Group:需选择与switch控件一样的,保证该控件和switch控件处于同一个界面内;
Type:该控件提供4种展示方式,可根据需求选择;
Label:设置该控件展示的名称;
Range:设置仪表盘的范围;
Sectors:设置不同区间的数据展示不同的颜色,“运行正常”对应“绿色”,“运行异常”对应“红色”,“待机状态”对应“橙色”;

(3)弹窗警报设置
notification控件设置
Layout:设置弹窗模式,可以根据需求选择;
Default action label:设置弹窗按钮;
Topic:设置弹窗主题;
Name:设置控件名称;

function控件设置
添加以下函数:

if(msg.payload == 10){  
    msg.payload = "设备运行异常!"  
}  
return msg;

(4)邮件警报设置(2种方法)
邮件控件设置
需要开启邮箱(接收/发送)的IMAP,获取授权码:
To:设置接收邮件的邮箱地址
Useried:设置发送邮件的邮箱地址
Password:填写发送邮件的邮箱对应授权码
名称:设置控件名称

条件判断设置(2种方法)
change控件

function控件

if(msg.payload == 10){  
    msg.payload = "警报:设备运行异常,请处理"  
}  
return msg;

(5)效果

3、系统时间设置
(1)simpletime控件设置

(2)function函数控件设置

var payload=msg;
var dateStr=payload.mydate;
var tempstr=dateStr.split(" ");//用空格拆分字符串  
var strobj=Object.assign({},tempstr);
var hzweekday,hzmonth;
var weekday=strobj[0];
var month=strobj[1];
var day=strobj[2];
var year=strobj[3];
   
switch(weekday){  
    case "Mon":  
        hzweekday="星期一";
        break;
    case "Tue":  
        hzweekday="星期二";
        break;
    case "Wed":  
        hzweekday="星期三";
        break;
    case "Thu":  
        hzweekday="星期四";
        break;
    case "Fri":  
        hzweekday="星期五";
        break;
    case "Sat":  
        hzweekday="星期六";
        break;
    case "Sun":  
        hzweekday="星期日";
        break;  
    default:  
        break;
}  
switch(month){  
    case "Jan":  
        hzmonth="1月";
        break;
    case "Feb":  
        hzmonth="2月";
        break;
    case "Mar":  
        hzmonth="3月";
        break;
    case "Apr":  
        hzmonth="4月";
        break;
    case "May":  
        hzmonth="5月";
        break;
    case "Jun":  
        hzmonth="6月";
        break;
    case "Jul":  
        hzmonth="7月";
        break; 
     case "Aug":  
        hzmonth="8月";
        break;  
     case "Sept":  
        hzmonth="9月";
        break; 
     case "Sep":  
        hzmonth="9月";
        break; 
     case "Oct":  
        hzmonth="10月";
        break;  
     case "Nov":  
        hzmonth="11月";
        break;  
     case "Dec":  
        hzmonth="12月";
        break;  
    default:  
        break;
}  
msg.payload=year+"年"+hzmonth+day+hzweekday+payload.mytimes;
return msg;

(3)效果

4、最终效果

四、状态监测平台

该平台实现的主要功能如下:
(1)显示系统时间;
(2)实时展示虹科工业树莓派处理器的温度值以及温度变化;
(3)“待机状态”、“运行正常”、“运行异常”三个按钮仿真虹科工业树莓派在运行过程中的三个状态。按下“运行正常”按钮,仪表盘展示绿色,并且虹科工业树莓派A1、A2指示灯亮绿灯;按下“待机状态”按钮,仪表盘展示绿色,并且虹科工业树莓派A1、A2指示灯亮橙灯;按下“运行异常”按钮,仪表盘展示红色,并且虹科工业树莓派A1、A2指示灯亮红灯;
(4)消息通知,按下“运行异常”按钮,出现弹窗提醒操作员,并发送邮件提醒相关负责人。

五、总结

在整个状态监测平台搭建过程中,除了在函数控件中应用少量且简单的代码实现对数据解析转化之外,其余部分都是通过控件简单地配置、连线形成数据流,达到需求。
在Node-RED中包含有上千个节点,每个节点中包含控件,不同的控件搭配可以产生不同效果。接下来,虹科会持续分享关于虹科工业树莓派结合Node-RED的深入应用,敬请关注。

    标签:

    发布评论 条评论)

    评论列表