目录
引言
前面写过几篇博客介绍了Node-RED的使用。Node-RED使用起来已经很方便了,拖拉一下就可以生成程序流。当然,如果想偷懒,可以借助Kimi。
Kimi生成
Kimi不能生成图形,但是Node-RED支持JSON格式的保存和导入,我们可以让Kimi生成需要的JSON字符串,然后导入Node-RED。
我们可以在Kimi中输入如下提示词:
生成node-red的json文件,功能是通过mqtt访问mqtt服务器,订阅device002主题,将收到json数据,假定数据格式为{
"temp":30,
"hum":60
},则解析数据并在gauge组件中显示。
Kimi会做如下回答:
为了实现你描述的功能,我们需要在 Node-RED 中设置几个节点:一个 MQTT 输入节点用于订阅主题,一个函数节点用于解析 JSON 数据,以及一个仪表盘(gauge)节点用于显示温度和湿度。以下是配置这些节点所需的 JSON 文件示例:
json
[
{
"id": "1",
"type": "mqtt in",
"z": "2",
"name": "Subscribe to device002",
"topic": "device002",
"qos": "2",
"broker": "3",
"x": 110,
"y": 80,
"wires": [["4"]]
},
{
"id": "3",
"type": "mqtt-broker",
"z": "",
"name": "My MQTT Broker",
"broker": "mqtt.example.com",
"port": "1883",
"clientid": "",
"usetls": false,
"protocolVersion": "5",
"keepalive": "60",
"cleansession": true,
"birthTopic": "",
"birthQos": "0",
"birthPayload": "",
"birthMsg": {},
"willTopic": "",
"willQos": "0",
"willPayload": "",
"willMsg": {},
"closeTopic": "",
"closeQos": "0",
"closePayload": "",
"closeMsg": {}
},
{
"id": "4",
"type": "function",
"z": "2",
"name": "Parse JSON",
"func": "msg.payload = JSON.parse(msg.payload.toString());\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 290,
"y": 80,
"wires": [["5"]]
},
{
"id": "5",
"type": "ui_gauge",
"z": "2",
"name": "",
"group": "6",
"order": 4,
"width": 0,
"height": 0,
"label": "Temperature",
"format": "{{value}} °C",
"min": "0",
"max": "100",
"colors": [
"#00b500",
"#e6e600",
"#e60000"
],
"x": 470,
"y": 80,
"wires": []
},
{
"id": "6",
"type": "ui_group",
"z": "2",
"name": "Device Dashboard",
"tab": "7",
"order": 1,
"disp": true,
"width": "6",
"collapse": false
},
{
"id": "7",
"type": "ui_tab",
"z": "2",
"name": "Home",
"icon": "dashboard",
"order": "1"
}
]
在这个 JSON 文件中:mqtt in 节点订阅了 device002 主题。
mqtt-broker 节点配置了 MQTT 服务器的连接信息。
function 节点用于解析从 MQTT 接收到的 JSON 数据。
ui_gauge 节点用于在仪表盘组件中显示温度。
ui_group 和 ui_tab 节点用于在 Node-RED 的 UI 界面中创建一个仪表板。
请注意,你需要根据你的 MQTT 服务器的实际地址和端口,以及你的 Node-RED 环境进行适当的调整。此外,ui_gauge 节点的 label 属性设置为 "Temperature",你可以根据需要调整它以显示不同的标签或单位。要使用这个 JSON 文件,你可以在 Node-RED 编辑器中导入它,方法是点击菜单栏的 "导入 > 从剪贴板" 并粘贴你的 JSON 配置。这将自动创建相应的流。
导入Node-RED
按照Kimi的提示,我们可以将JSON文件导入Node-RED编辑器。
在Node-RED的菜单中选择导入。
在Node-RED中粘贴Kimi生成的JSON文件。
然后点击导入。Node-RED就会成功地导入全部节点。
这个功能和前面我们在博文Node-RED订阅巴法云的数据并展示_nodered 获取心知天气-CSDN博客中实现的功能差不多。