忘记过去,超越自己
- ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️
- ❤️ 本篇创建记录 2022-10-16 ❤️
- ❤️ 本篇更新记录 2022-10-16 ❤️
- 🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝
- 🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!
- 🔥 Arduino ESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志 🔥
1. 前言
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官方学习文档,虽然是纯英文
- 这里也有一个写得比较好的连载内容,当然博哥后面也会写一个
2. Node-RED 特点
Node-RED 是一种基于流的编程工具,最初由IBM 的新兴技术服务 团队开发,现在是OpenJS 基金会的一部分。
基于流的编程,是一种将应用程序的行为描述为黑盒网络
的方法,或者在 Node-RED 中称为“节点
”。
- 每个节点都有明确的用途;
- 它被赋予了一些数据,它对这些数据做一些事情,然后将这些数据传递给它。
- 网络负责节点之间的数据流。
2.1 基于浏览器的流程编辑
- Node-RED 提供了一个基于浏览器的流编辑器,可以使用调色板中的
各种节点
轻松地将流连接在一起。然后,只需单击一下即可将流部署到运行时。 - 可以使用富文本编辑器在编辑器中创建 JavaScript 函数。
- 内置库允许您保存有用的函数、模板或流程以供重复使用。
上面的图就是后面我们会看到的大概样子,可以把左边的节点拖拽到中间做一些业务逻辑。针对物联网体系来说,我们能做的事情包括且不限于:
-
dashboard
仪表盘功能 - 支持
http
,mqtt
,websocket
,tcp
,udp
协议
2.2 基于 Node.js 构建
-
轻量级运行时
基于 Node.js
(那就意味着我们需要搭建NodeJs环境了,这个也很简单,直接参考 【NodeJs-5天学习】第一天篇② —— 安装NodeJs环境以及VsCode开发工具),充分利用其事件驱动的非阻塞模型。这使得它非常适合在Raspberry Pi
(树莓派)、android
手机等低成本硬件以及运行在网络边缘的云。 -
Node的
软件包存储库
中有超过225,000个模块,可以轻松扩展面板节点的范围以添加新功能。(相当于第三方软件库,别人写好了,直接用)
2.3 利于发展的分享生态环境
- 在 Node-RED 中创建的流使用 JSON 存储,可以轻松导入和导出以与他人共享。
- 在线流程库使您可以与世界分享优秀的节点。今天仍有充满活力的用户和开发人员社区,核心致力于Node-RED代码本身,同时为流库贡献节点或流。
- 通过安装由社区创建的新节点,可以轻松扩展节点选项板,并且您创建的流可以轻松共享为 JSON 文件。
3. Node-RED 能用来做什么?
通过Node RED,物联网数据传输设备开启了一个新的时代,通过Node RED,我们在写功能时,可以通过拖拽编写好的功能,就能直接使用,然后通过节点,就能将功能与功能之间串联起来
。
通过这样的功能,使得开发速度更快!更容易上手。
3.1 案例一:控制LED灯
在这个简单的例子中,它是由3个节点组成。最左边不断触发一个时间流(左边节点),然后等待1s(中间节点),最后输出控制LED(右边节点)、
3.2 案例二:使用Node-RED的内置HTTP节点构建Web服务
它是由4个节点组成。第一个和最后一个节点是HTTP输入和输出节点,它们共同工作以侦听HTTP请求并发送HTTP响应。此流侦听来自任何源的HTTP请求,我们假设这里有一个常规浏览器。当它到来时,需要它查询你的Fitbit数据,然后使用一个模板节点建立一个HTTP页面,并通过对HTTP输出节点发送到网页浏览器之中。
3.3 案例三:利用dashboard构建监控UI面板
看一下别人使用dashboard制作的面板。后面我们自己也可以做出这样的效果。
4. Node-RED的局限性?
虽然它带来很多便利性,但肯定也是有局限性。
Node-RED可能并不是物联网应用程序开发的最佳工具。虽然功能强大且灵活,但并不一定是正确的解决方案。某些情况下,Node-RED可能不是首选,包括:
- 复杂多功能物联网应用。Node-RED
擅长于快速应用程序开发
,并充当连接事件到动作或传感器到执行器的粘合剂。然而,当应用程序达到一定的规模
时,通过Node-RED来可视化编程和管理变得非常复杂。 - 基于流的编程是一种通用模型,并
没有针对特定需求进行针对性或优化
,例如数据分析或用户界面开发。目前,Node-RED对这些类型的应用程序没有具体的支持,也没有简单的方法来添加这种支持。显然,Node-RED的底层技术是JavaScript,可以利用它的能力来满足这些需求。如果要使用Node-RED来做原型开发,可行的方案是在找一种更适合任务语言中实现部分或全部应用程序,并使用Node-RED作为整体控件。
虽然有一定局限性,但是目前阶段对于初学者来说完全够用。
5. 搭建本地Node-RED运行环境
前提条件:
Node-RED基于NodeJS,所以需要搭建NodeJs环境了,这个也很简单,直接参考 【NodeJs-5天学习】第一天篇② —— 安装NodeJs环境以及VsCode开发工具
5.1 使用npm 安装 Node-RED 环境
cmd输入命令:
npm install -g node-red
5.2 启动Node-RED
cmd输入命令:
node-red
在浏览器中打开 http://localhost:1880 就可以访问Node-RED的前台界面,进行编程。
后面我们就可以根据具体情况来学习使用这个工具,完成各式各样的功能。
5.3 停止Node-RED
直接ctrl + C
即可文章来源:https://www.toymoban.com/news/detail-678486.html
6. 总结
本文简单介绍了Node-RED工具以及它能给我们开发物联网带来那些功能效果,先搭建好环境,然后去玩转起来,静待后续篇章。文章来源地址https://www.toymoban.com/news/detail-678486.html
到了这里,关于【鸟哥杂谈】十分钟搭建自己的本地 Node-Red可拖拽图形化物联网的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!