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对象示例:
1 2 3 |
{ "name" : "taichi-maker" } |
以下是含有多个属性的JSON对象示例。
1 2 3 4 |
{ "name" : "taichi-maker", "website" : "www.taichi-maker.com" } |
从以上的示例我们可以看到,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
可以从电脑中读取文件。这个节点可以让每次系统启动的时候,读取系统的初始变量。