Node-RED简介
Node-RED是IBM发行了一套开源可视化界面开发工具,大家可能会好奇,Node-RED跟Node.js怎么名字会这么像?是不是有某种关联存在?这边就要先从Node.js开始介绍了。Node.js是一个读取Javascript的运行环境,可用于开发网页后端程序,但是Node.js的指令是一行一行写出来的,为了免去呼叫程序代码麻烦,IBM的工程师开发了Node-RED来更容易地完成工作。
具体来说,每当启动Node-RED时,背景程序便会创造一个服务器来处理我们输入的指令,这时只要使用浏览器登入指定的IP即可进入Node-RED的编辑画面,设定好想要的流程后,背景程序会将流程转换成程序代码交给Node.js环境运行。
可视化界面开发工具已经相当流行,特别是MIT开发的Scratch,以及Google开发的Blockly。那么,Node-RED跟这两大视觉开发工具相比,又有什么样的优势呢?
多方对比
工具 | Node-RED | Scratch | Blockly |
---|---|---|---|
优点 | API接口多得一匹 | 简单易懂,icon风趣 | 用网页操作,简单容易上手 |
特色 | 可用于树莓派IOT开发 | 逻辑教学,用于Arduino | 控制Arduino |
语言 | English | 中文 | 中文 |
Node-RED特色
Node-RED起源于2013年IBM’s EmergingTechnology Services group的一个计划的副产物,工程师Nick O’Leary和Dave Conway-Jones想用可视化界面来概念性验证一套MQTT应用,让Node-RED因此孕育而生。
Node-RED很快成为更加全面性的开发工具,并于2013年9月成为OpenSource,于2016年10月加入JS Foundation。(以上说明节录自Node-RED官网)
Node-RED提供各式的API,包括因特网服务,例如推特与查询天气、呼叫使用各式的通讯协议,例如MQTT、TCP、UDP等;在嵌入式系统上,Node-RED提供控制GPIO的功能,并使用MQTT或是HTTP等协议与云端做沟通,架构IOT产品。
让Node-RED流行于各大网络社群的理由,在于它拥有以下诸多的优点:
-
相较于撰写程序代码,使用图形化界面可更快速开发。
-
适合作为概念性应用验证的开发工具。
-
浅显易懂,每个API都有文字说明可供查询。
-
具有高度扩充性,已有大量的Library、Flow、Node供人下载。
安装Node-RED
想要使用Node-RED,必须安装Node.js运行环境;
安装Node.js
sudo apt install nodejs
安装NPM
sudo apt install npm
安装Node-RED
sudo npm install -g --unsafe-perm node-red
启动Node-RED
node-red
检验是否成功安装
启动浏览器,输入127.0.0.1:1880
在树莓派中安装并配置好后,可以在同一局域网内使用**<树莓派IP>:1880** 登录Node-RED
安装SSH
为了方便远程连接,安装SSH;
sudo apt-get install openssh-server
检查树莓派SSH服务是否开启
ps -e | grep ssh
SSH服务开启
sudo /etc/init.d/ssh start
安装VNC-server(可以不装)
为了方便管理和查看Node-RED后台数据,这里安装一个VNC来远程登录
安装相应工具和软件
安装xfce4
Xfce是一个自由软件,运行在类Unix操作系统 (如Linux、FreeBSD 和 Solaris)上,提供轻量级桌面环境;
$sudo apt-get install xfce4
安装 vncserver
$sudo apt-get install vnc4server
安装xrdp
Xrdp 是 Microsoft 远程桌面协议 (RDP) 的开源实现,允许您以图形方式控制远程系统。使用 RDP ,您可以登录到远程计算机并创建一个真实的桌面会话,就像您已登录到本地计算机一样。
$sudo apt-get install xrdp
第一次启动vncserver
sudo vncserver
第一次启动需要设置登录密码,密码6位及以上
修改配置文件
sudo vi ~/.vnc/xstartup
具体修改如下
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
#[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
#[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
#xsetroot -solid grey
#vncconfig -iconic &
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
xfce4-session &
重新启动
sudo vncserver -kill :1
vncserver :1
sudo service xrdp restart
注意:vncserver :1 的1是端口,使用VNC Viewer登录时的IP为::1