零基础入门学用物联网 – MQTT应用篇 – 1-2-2 Node-RED信息传递详解

Node-RED流程是由一系列节点组成的。通常节点会有输入和输出端口。这些端口用于节点间的数据传输。

对于Node-RED来说,信息的传递是以消息对象(Message Object)的形式呈现的。

消息对象

Node-RED的每个节点从前一个节点接收消息对象,然后可以将此消息对象传递到流中的下一个节点。

在之前课程里接触过JSON数据。
http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-c/esp8266-nodemcu-web-client/json-basics/

Node-RED消息对象与JSON对象是相同的。

JSON 对象
JSON对象在大括号{}中书写,对象可以包含单个或者多个JSON数据。
对象(object) 是一个无序的数据集合(“‘名/值’对”集合)。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名/值’ 对”之间使用“,”(逗号)分隔。

在Node-RED中,人们常常使用属性来称呼数据。

以下是含有单个属性的JSON对象示例:

以下是含有多个属性的JSON对象示例。

从以上的示例我们可以看到,JSON对象中的属性使用逗号进行分隔。

使用Inject节点观察该节点所输出的对象

利用debug节点演示msg.payload属性。

然后打开debug节点的“与调试输出相同”的选项,观察inject节点所输出的信息对象(message object)全貌。

inject节点所输出的信息对象示例:
{
“_msgid”: “71eeb6db58eceb28”,
“payload”: 1676514874069,
“topic”: “”
}

以上示例中,有三个属性他们是_msgid,payload,topic。

_msgid是由Node-RED自动为inject节点输出数据所添加的编号。通常我们不会去用到它。

我们主要关心的是payload和topic两个属性内容。因为我们可以使用这两个属性进行信息传递。(视频演示如何通过修改inject节点的payload和topic,并且通过debug节点显示在调试窗口中)。

文件存储节点write file

通过write file节点,我们可以把Node-Red数据以文件的形式存储在电脑里,以便我们后面分析查阅。

– 注意选中那个“不存在就建立文件夹”的选项。
– 留意文件存储位置
– 最好让系统自己建立文件,而不是手动先建立好文件再让系统使用。

文件读取节点read file

可以从电脑中读取文件。这个节点可以让每次系统启动的时候,读取系统的初始变量。