使用 Node-RED 进行开发
Node-RED 是一款强大的基于浏览器的工具,用于构建物联网 (IoT) 应用。其可视化编程环境使开发应用程序如同构建流一样简单。
获取新的 Intel® IoT Developer Kit,这是一个完整的硬件和软件解决方案,使开发人员能够使用 Intel® Galileo 和 Intel® Edison 板创建令人兴奋的新解决方案。访问 Intel® IoT 开发者中心。
Node-RED 是一款强大的基于浏览器的工具,用于构建物联网 (IoT) 应用。其可视化编程环境使开发应用程序如同构建流一样简单。了解 Node-RED 并学习如何使用流开发 IoT 应用。
编程语言的格局非常广泛,涵盖了各种编程风格和范式。命令式和面向对象语言主导着世界,但对于生产软件开发以及快速原型设计也有其他选择。
Node-RED 采用了一种不同的软件开发方法。首先,它是一种可视化编程语言。Node-RED 不将应用程序开发为一系列文本语句,而是侧重于将程序构建为流。这些流由相互连接的节点组成,每个节点执行一个特定功能(参见图 1)。尽管 Node-RED 是为物联网 (IoT) 设计的,但它是通用的,可用于许多应用程序类型。
Node-RED 是一个相对较新的环境,最初由 IBM 开发,然后于 2013 年开源。该工具专注于成为一种通用的 IoT 编程工具,但由于其简洁性和强大功能,它已广泛应用于各种应用程序。让我们看看 Node-RED 背后的理念以及如何利用它来开发 IoT 应用。
在 Node-RED 中开发一个简单的流
让我们回到图 1 来理解 Node-RED 中的应用程序开发。左侧是节点面板,列出了可用于您的应用程序的节点。中间面板是您构建流的地方。请注意,在此示例流中有两个节点已定义;第一个是 inject 节点,它以用户定义的间隔创建消息(我已将其配置为每 5 秒生成一个时间戳消息,如附图 2 所示)。此节点连接到一个 debug 节点,您可以使用该节点将数据发射到日志中。该节点名为 msg.payload,表示它将发射的内容。最后,右侧面板是调试输出。三个片段分别是来自 debug 节点的单个输出,您会注意到它们是间隔正好 5 秒的时间戳。
这是一个简单的流,用于说明 Node-RED 中的开发理念。inject 节点生成包含时间戳的消息,debug 节点接收消息并将有效负载发射到调试日志。
节点和节点类型
Node-RED 包含一套令人印象深刻的节点,可以让你立即投入生产。图 3 显示了输入和输出节点,它们允许订阅和接收 MQ Telemetry Transport (MQTT) 主题,并将 MQTT 主题输出到代理;通过 HTTP 请求开发 Web 服务(以及构建 HTTP 响应);以及更低级别的 TCP 和用户数据报协议服务,可以创建服务器、接收输入和生成输出。
图 4 显示了处理节点。使用这些节点,您可以编写自己的节点函数(用 JavaScript* 编写),根据时间生成触发消息,并延迟消息以限制流速率。您还可以通过使用 switch 和丰富的条件表达式来改变消息的路径,根据消息的内容改变消息的路径(或删除消息),以及根据用户定义的动作重新映射数值消息的范围。最后,您可以解释各种输入数据格式并进行转换。
最后一组标准节点是高级节点(图 5)。这些节点涵盖各种用例,包括接收和发送电子邮件,以及对推文进行情感分析。您可以从存储中发送或接收消息,并观察文件系统的变化。最后,您可以监视 RSS/Atom 提要以获取新条目,甚至可以生成或执行操作系统命令。
如果您找不到所需的功能(例如面部识别和各种物理设备的接口),您还可以下载新节点。现在,让我们看一下更复杂的流的开发。
在 Node-RED 中构建一个更复杂的流
Node-RED 的真正威力在于其在物联网中的应用。在本例中,您将读取嵌入式设备的传感器数据,然后将其分发以供使用。在下图 6 所示的以下流中,您首先注意到的是,您有两个流,分别用于您想要监视的两个传感器。第一个传感器的数据是定期收集的,然后进行过滤,仅当它超过某个范围(作为警报)时才使用一个函数进行报告。当超出范围时,您会将结果消息路由到 MQTT 作为警报主题,并路由到日志文件。
第二个传感器的数据也是定期收集的,但它总是很有趣,所以您总是将其路由到 MQTT 作为另一个主题,并路由到日志文件。Node-RED 在其编程模型中为您提供了这种并行性。
Node-RED 允许构建由许多节点组成的许多流,因此您可以使用它在嵌入式设备或服务器中执行本地数据收集和操作,以接受数据并执行更复杂的处理。
使用模型
Node-RED 依赖于 Node.js*,一个用于开发服务器端 Web 应用程序的开源运行时环境。它支持事件驱动模型,这非常适合 Node-RED 的异步基于流的环境。
您可以使用 Node-RED 构建在嵌入式边缘设备上运行的流,例如 Intel® Edison 计算模块和 Arduino*-认证的 Intel® Galileo 开发板。这些设备位于 IoT 生态系统的边缘,并直接与旧有和新的硬件接口(如温度传感器和驱动电机)进行交互。
您也可以在网关设备(如 Intel® IoT Gateway)上运行 Node-RED。在此模型中,您可以使用 Node-RED 与许多本地边缘计算设备通信,以收集和处理它们的数据,然后将这些数据分发到 MQTT 代理,以进一步传播供使用。
在这两种使用模型中的任何一种中,Node-RED 都在设备上执行:您只需通过网络将浏览器连接到设备即可构建和测试流。这样,开发和测试环境以及运行时都存在于设备上,只需要一个浏览器进行连接。
摘要
Node-RED 是一款强大的编程工具,可以以可视化的方式将收集、处理和分发数据的流连接在一起。Node-RED 提供了一套丰富的节点,可以帮助您入门编程模型,同时也提供了大量可下载并应用于您的应用程序的节点和流。最棒的是,您可以选择您喜欢的 Intel 开发板或 IoT 网关,安装 Node-RED,并用最少的时间和精力执行流。这使得 Node-RED 成为任何 IoT 生态系统的组成部分。
其他阅读
- 访问 Intel 开发者中心 传感器 网站了解更多信息。
- 访问 Intel® IoT Gateway 网站了解更多信息。
- 探索 IoT 网关产品,比较功能和需求。
- 访问 Wind River* Linux* 网站了解更多信息。