Node-RED开源物联网低代码工具:基础教程1 – Node-RED简介_技术文章

Node-RED 是用于构建物联网 (IoT) 应用程序的强大工具,重点是简化代码块的“连接”以执行任务。它使用可视化编程方法,允许开发人员将预定义的代码块(称为“节点”)连接在一起以执行任务。连接的节点通常是输入节点、处理节点和输出节点的组合,当连接在一起时,构成一个“流”。
最初是在 2013 年底作为 IBM 的开源项目开发的,以满足他们将硬件和设备快速连接到 Web 服务和其他软件的需求(作为 IoT 的一种粘合剂),它已迅速发展成为通用 IoT 编程工具。重要的是,Node-RED 已经迅速发展了一个重要且不断增长的用户群和一个活跃的开发人员社区,他们正在贡献新的节点,使程序员可以重用 Node-RED 代码来执行各种任务。
尽管Node-RED最初设计用于与物联网(即交互和控制现实世界的设备)配合使用,但随着它的发展,它已对一系列应用程序变得有用,并且现在被认为是卓越的低功耗无代码可视化开发工具。
Node-RED历史
Node-RED 是构建 IoT 应用程序和服务的强大工具。它的诞生正是由快速构建 IoT 应用程序原型的需求触发的,Node-RED 是由 IBM 新兴技术小组(特别是两位研究人员 Nick O’Leary 和 Dave Conway-Jones)创建的开源项目。他们最初创建 Node-RED 是为了自己开发 IoT 项目,并“在为客户构建概念验证技术时寻找一种简化系统和传感器连接过程的方法”。
Node-RED 的初始版本于 2013 年底作为开源项目发布,并在 2014/2015 年间建立了一个规模虽小但活跃的用户和开发人员群体。随后,它已发展成为在许多领域使用的强大的无代码/低代码工具。它已成为物联网领域的快速原型设计工具,现在被许多开发人员和制造商用于物联网边缘设备,并作为连接物联网设备和后端服务的粘合剂。它还被广泛应用于不同的领域,例如机器人、DevOps、Web 服务、聊天机器人等等——事实上,很难说出哪个领域不能使用 Node-RED 进行开发。
这些来自不同领域的丰富用户是 Node-RED 的优势之一——如今,有一个充满活力的用户和开发人员社区,有一个致力于 Node-RED 代码本身的核心小组,大多数开发人员都向 Node-RED 贡献节点或流程。来自不同领域的流库。从而确保无论您的目标是什么,您都能够找到现有的节点,甚至现成的流程等待您使用!
Node-RED和物联网
当 IBM 人员创建 Node-RED 时,他们主要关注物联网,即将设备连接到处理以及将处理连接到设备。作为物联网快速应用开发的工具,Node-RED 既强大又灵活。它有以下两个主要特点:
  • Node-RED 是基于流的编程模型 – 表示事件在节点之间流动的消息,触发导致输出的处理。基于流的编程模型很好地映射到典型的物联网应用程序,其特点是现实世界的事件触发某种处理,进而导致现实世界的操作。Node-RED 将这些事件打包为消息,当事件在组成流的节点之间流动时,这些消息为事件提供简单且统一的模型。
  • 预置建节点集是 Node-RED 另外一个特点,通过构建一组强大的输入和输出节点(每个节点都隐藏了与现实世界交互的大部分复杂性),Node-RED 为开发人员提供了强大的构建块,使他们能够快速组合完成大量工作的流程,而无需担心编程细节。
这两个特点使 Node-RED 成为物联网应用程序开发的强大工具。结合创建和使用节点(例如函数节点)的灵活性,开发人员可以快速编写任意 JavaScript,再加上不断创建和共享新节点的 Node-RED 社区。
然而,Node-RED 并不总是物联网应用程序开发的最佳工具。虽然功能强大且灵活,但它并不总是正确的解决方案。Node-RED 可能不是首选的原因包括:
  • 复杂的多功能物联网应用。Node-RED 擅长快速应用程序开发,并且擅长充当连接事件与操作、或传感器与执行器(如果您愿意)的粘合剂。然而,当应用程序超过一定大小时,通过 Node-RED 进行可视化编程和管理就会变得复杂。有一些功能可以帮助解决这个问题,例如子流程,但最终 UI 成为瓶颈。
  • 基于流的编程是一种并不总是最适合应用程序开发的编程模型。就像某些编程语言在某些任务上表现出色但在其他任务上表现不佳一样,基于流的编程也有其弱点。循环就是一个很好的例子:Node-RED 在处理循环时很麻烦。
  • 具体用例。基于流的编程是一种通用模型,并未针对特定需求(例如数据分析或用户界面开发)进行针对性或优化。目前,Node-RED 没有对这些类型的应用程序的具体支持,也没有简单的方法来添加此类支持。显然,由于 Node-RED 的底层技术是 JavaScript,因此您可以利用其功能来满足这些需求。如果想要使用 Node-RED 进行原型设计,一种方法是用另一种更适合您任务的语言实现部分或全部应用程序,并使用 Node-RED 进行整体控制。

 

 

 

云腾五洲-小A
「云腾五洲」致力于通过AIoT与边缘计算的深度融合,打造下一代智能物联基础设施。以强大的物联网平台xAI边缘计算引擎为核心,赋能工业、能源、交通、城市等全场景智改数转,帮助企业突破数据与算力边界、推动IT与OT的融合,实现更高效、更智能的未来。