IOT视觉化开发工具Node-RED快速上手

现在有越来越多非专业背景但有创造热诚的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打声招呼吧!
使用左侧的inject与debug接成以下的流程:
inject node:我们使用这个node来输入各式的数值,举凡变量、数字、字符串、时间常数都可以,inject通常都是一个flow的开头。
debug node:这个node就像是示波器的探棒,会将流入此点的对象信息于右边的debug字段显示出来,我们使用这个node检视结果是否符合预期的结果。
实作结果:左侧node按下蓝色的按钮后,右侧的debug栏接收到input的讯息。
2. led灯开关
node-red有个很大的特色,就是可以方便地控制raspberrypi,在这之前,呼叫gpio都是使用python、c语言、java等等;而现在只要设定node-red就可以达到相同的效果,在这个流程输入开或关的讯息,判断式处理完后,会将1或0传入rpi pin node。
(rpi node预设只有rpi的node-red才有)
inject node:我们这边设定将”on"字符串输入给switch function。
function node:我们使用这个node作为撰写自定义函式的地方,使用的语法为javascript,这?边先写一个简单的判断函式确认是on或是off,最后将msg对象往下传。
rpi pin node:我们使用这个node来设定rpi的脚位输出,可分为数字输出与pwm;本次做数字输出,选择gpio17脚位。
raspberry pi3脚位图:
实作结果:
可能遇到的错误
1.无法使用npm指令
raspberry pi尚未安装node.js,需先安装node.js才能使用npm。
2.进入0.01:1880无法显示网页?
需先在raspberry pi的terminal输入node-red,启动服务器才能登入页面。
3.function node无法输入程序代码?
gnu/linux内建浏览器的bug,建议使用firefox的浏览器。
作者:何信昱

基于LabVIEW的汽车雨刮器综合控制系统
人工智能教育是什么?像学语言一样自然和必要从娃娃抓起
微间距显示屏的到来将会给我们带来什么改变
2022华为开发者大会开启松湖对话 共探开源鸿蒙产业未来
如何编译Linux内核
IOT视觉化开发工具Node-RED快速上手
脚的穴位图(足底脚面)
PN结的产生原理及单向导电性
林超文PCB设计:PADS教程,PADS视频教程
计算机视觉在智慧城市中的主要应用有哪些
豪华SUV凯雷德搭配38英寸曲面OLED屏幕,售价超150万
创基Type-C扩展坞让您随时随地乐享高效扩展
iphone8什么时候上市?iphone8最新消息:苹果内部信息曝光,iPhone8或将于9月17日发布!
AMD的历史
全球第一个基于二维半导体材料的内存处理器
艾睿光电与踏歌智行达成战略合作,车载红外热像仪赋能矿山无人驾驶
Arm构建Morello片上系统和演示板 LG化学NPG获得国际认证
旅游景区无线智能调频广播系统
双方“专利战”不断,董明珠:奥克斯天天在格力“挖人”
魅族Lipro LED智能吸顶灯两款产品将在Q1推出