现在有越来越多非专业背景但有创造热诚的Maker,想要进入物联网领域大展身手,但常常苦于无法撰写艰深难懂的程序代码,以及想要连接各种硬件与时下最流行的社群软件,却不知道如何使用开放给开发者应用的API的窘境。
没关系!IBM发行了一套开源可视化界面开发工具——Node-RED,嗯?是不是有点眼熟?怎么跟著名的程序语言Node.js有些相似?不用担心,即使完全不懂怎么撰写Node.js,也能学会使用Node-RED。接下来就让我们一起看看如何运用Node-RED吧!
大家可能会好奇,Node-RED跟Node.js怎么名字会这么像?是不是有某种关联存在?这边就要先从Node.js开始介绍了。Node.js是一个读取Javascript的运行环境,可用于开发网页后端程序,但是Node.js的指令是一行一行写出来的,为了免去呼叫程序代码麻烦,IBM的工程师开发了Node-RED来更容易地完成工作。
具体来说,每当启动Node-RED时,背景程序便会创造一个服务器来处理我们输入的指令,这时只要使用浏览器登入指定的IP即可进入Node-RED的编辑画面,设定好想要的流程后,背景程序会将流程转换成程序代码交给Node.js环境运行。
其实在Maker圈,可视化界面开发工具已经相当流行,特别是MIT开发的Scratch,以及Google开发的Blockly。那么,Node-RED跟这两大视觉开发工具相比,又有什么样的优势呢?
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流行于各大网络社群的理由,在于它拥有以下诸多的优点:
1.相较于撰写程序代码,使用图形化界面可更快速开发。
2.适合作为概念性应用验证的开发工具。
3.浅显易懂,每个API都有文字说明可供查询。
4.具有高度扩充性,已有大量的Library、Flow、Node供人下载。
如何启用Node-RED
想在Raspberry Pi上使用Node-RED,需先安装Node.js运行环境,如果是使用FRED,或是IBM Bluemix使用Node-RED,则不须安装。
安装Node-RED:在Raspberry pi的Bash输入「sudo npm install -g node-red」
2. 启动Node-RED:
(1) 在Bash输入「node-red」
(2) 在计算机上使用远程桌面联机(Pi须安装xrdp),打开Linux的浏览器进入http://localhost:1880,即可进入Node-RED编辑页面,这里跟Bash登入画面一样,输入Pi的帐号密码
进入编辑页面了
实作范例
Hello Node-RED
http://noderedguide.com/node-red-lecture-2-building-your-first-flows-15/
接下来,让我们来学习如何使用Node-RED的基本单位:Node,并使用Nodes来传送字符串「Hello Node-Red!」来跟Node-RED打声招呼吧!