一、前言
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的深入应用,敬请关注。