忘记过去,超越自己
- ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️
- ❤️ 本篇创建记录 2022-10-16 ❤️
- ❤️ 本篇更新记录 2022-10-16 ❤️
- 🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝
- 🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!
- 🔥 Arduino ESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志 🔥
Node-RED最初是IBM在2013年末开发的一个开源项目,以满足他们快速连接硬件和设备到Web服务和其他软件的需求——作为物联网的一种粘合剂,它很快发展成为一种通用的物联网编程工具。
Node-RED 是一种编程工具,用于以新颖有趣的方式将
硬件设备、API 和在线服务连接在一起。这句话会随着把这个东西用起来之后会慢慢理解。
重要的是,Node-RED已经迅速形成一个重要的、不断增长的用户基础和一个活跃的开发人员社区,他们正在开发新的节点(目前项目上也集成了非常多有用的节点,包括HTTP节点、MQTT节点以及DashBoard仪表盘等等功能),同时允许程序员复用Node-RED代码来完成各种各样的任务。
Node-RED 是构建物联网(IOT, Internet of Things)应用程序的一个强大工具,其重点是简化代码块的“连接”以执行任务。它使用可视化编程方法,允许开发人员将预定义的代码块(称为“节点”,Node)连接起来执行任务。连接的节点,通常是输入节点、处理节点和输出节点的组合,当它们连接在一起时,构成一个“流”(Flows,一个事件从一个节点陆续流入一个节点,每个节点会处理一些业务逻辑)。
简单来说,Node-RED就是一个
基于浏览器可以实现可视化拖拽编程物联网的工具,对于部分初学者来说是一个福音,功能上类似于OneNet的可视化仪表盘、阿里云物联网上面的可视化web页面等等。它提供了一个基于浏览器的编辑器,在浏览器中,通过将节点从调色板拖到工作区并开始将它们连接在一起来创建应用程序。只需单击一下,即可将应用程序部署回运行它的运行时。

没错,最好的学习资料:
Node-RED 是一种基于流的编程工具,最初由IBM 的新兴技术服务 团队开发,现在是OpenJS 基金会的一部分。
基于流的编程,是一种将应用程序的行为描述为黑盒网络的方法,或者在 Node-RED 中称为“节点”。
各种节点轻松地将流连接在一起。然后,只需单击一下即可将流部署到运行时。
上面的图就是后面我们会看到的大概样子,可以把左边的节点拖拽到中间做一些业务逻辑。针对物联网体系来说,我们能做的事情包括且不限于:
dashboard 仪表盘功能http,mqtt,websocket,tcp,udp协议轻量级运行时基于 Node.js(那就意味着我们需要搭建NodeJs环境了,这个也很简单,直接参考 【NodeJs-5天学习】第一天篇② —— 安装NodeJs环境以及VsCode开发工具),充分利用其事件驱动的非阻塞模型。这使得它非常适合在 Raspberry Pi (树莓派)、android手机等低成本硬件以及运行在网络边缘的云。


Node的软件包存储库中有超过225,000个模块,可以轻松扩展面板节点的范围以添加新功能。(相当于第三方软件库,别人写好了,直接用)

通过Node RED,物联网数据传输设备开启了一个新的时代,通过Node RED,我们在写功能时,可以通过拖拽编写好的功能,就能直接使用,然后通过节点,就能将功能与功能之间串联起来。
通过这样的功能,使得开发速度更快!更容易上手。


在这个简单的例子中,它是由3个节点组成。最左边不断触发一个时间流(左边节点),然后等待1s(中间节点),最后输出控制LED(右边节点)、

它是由4个节点组成。第一个和最后一个节点是HTTP输入和输出节点,它们共同工作以侦听HTTP请求并发送HTTP响应。此流侦听来自任何源的HTTP请求,我们假设这里有一个常规浏览器。当它到来时,需要它查询你的Fitbit数据,然后使用一个模板节点建立一个HTTP页面,并通过对HTTP输出节点发送到网页浏览器之中。
看一下别人使用dashboard制作的面板。后面我们自己也可以做出这样的效果。



虽然它带来很多便利性,但肯定也是有局限性。
Node-RED可能并不是物联网应用程序开发的最佳工具。虽然功能强大且灵活,但并不一定是正确的解决方案。某些情况下,Node-RED可能不是首选,包括:
擅长于快速应用程序开发,并充当连接事件到动作或传感器到执行器的粘合剂。然而,当应用程序达到一定的规模时,通过Node-RED来可视化编程和管理变得非常复杂。没有针对特定需求进行针对性或优化,例如数据分析或用户界面开发。目前,Node-RED对这些类型的应用程序没有具体的支持,也没有简单的方法来添加这种支持。显然,Node-RED的底层技术是JavaScript,可以利用它的能力来满足这些需求。如果要使用Node-RED来做原型开发,可行的方案是在找一种更适合任务语言中实现部分或全部应用程序,并使用Node-RED作为整体控件。虽然有一定局限性,但是目前阶段对于初学者来说完全够用。
前提条件:
Node-RED基于NodeJS,所以需要搭建NodeJs环境了,这个也很简单,直接参考 【NodeJs-5天学习】第一天篇② —— 安装NodeJs环境以及VsCode开发工具
cmd输入命令:
npm install -g node-red

cmd输入命令:
node-red

在浏览器中打开 http://localhost:1880 就可以访问Node-RED的前台界面,进行编程。

后面我们就可以根据具体情况来学习使用这个工具,完成各式各样的功能。
直接ctrl + C即可
本文简单介绍了Node-RED工具以及它能给我们开发物联网带来那些功能效果,先搭建好环境,然后去玩转起来,静待后续篇章。