一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第9天,点击查看活动详情。
前言
之前使用java实现了led的控制,今天尝试使用node-red来控制。
node-red是IBM开发的一个开源项目,现在已经成为一个开放的物联网开发工具。
安装node-red插件
-
安装并访问node-red,可以参考之前的文章: juejin.cn/post/708443…
-
打开node-red,如图
-
安装pi-gpio插件
-
点击右上角,进入节点管理
-
搜索node-red-node-pi-gpio,并安装,如下图
-
安装后,在主界面可以看到节点
-
连接led红绿灯
把红绿灯通过GPIO连接到树莓派上,针脚如图:
编写流程并部署
-
创建一个输入节点:拖拽一个inject节点,并配置输入值为1
-
创建一个gpio操作节点:拖拽一个gpio输出节点,并配置红灯的BCM编码:23
-
连接两个节点
-
同样的操作,我有创建了绿灯、黄灯的开关操作,如下
-
点击右上角部署,效果图如下:
流程已导出,同学可以下载参考
[
{
"id": "c96a2e4a3aed3e67",
"type": "tab",
"label": "流程 1",
"disabled": false,
"info": "",
"env": []
},
{
"id": "ccb55d8cba5263e3",
"type": "rpi-gpio out",
"z": "c96a2e4a3aed3e67",
"name": "R",
"pin": "23",
"set": true,
"level": "0",
"freq": "",
"out": "out",
"bcm": true,
"x": 590,
"y": 160,
"wires": []
},
{
"id": "ce96f643fba6d87d",
"type": "inject",
"z": "c96a2e4a3aed3e67",
"name": "开",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "1",
"payloadType": "num",
"x": 220,
"y": 140,
"wires": [
[
"ccb55d8cba5263e3"
]
]
},
{
"id": "4ee55fc8ba81449c",
"type": "inject",
"z": "c96a2e4a3aed3e67",
"name": "关",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "0",
"payloadType": "num",
"x": 220,
"y": 220,
"wires": [
[
"ccb55d8cba5263e3"
]
]
},
{
"id": "aebb253297048449",
"type": "rpi-gpio out",
"z": "c96a2e4a3aed3e67",
"name": "Y",
"pin": "24",
"set": true,
"level": "0",
"freq": "",
"out": "out",
"bcm": true,
"x": 590,
"y": 300,
"wires": []
},
{
"id": "2ea236ef795b02bc",
"type": "inject",
"z": "c96a2e4a3aed3e67",
"name": "开",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "1",
"payloadType": "num",
"x": 220,
"y": 280,
"wires": [
[
"aebb253297048449"
]
]
},
{
"id": "d1411563b6ca56e2",
"type": "inject",
"z": "c96a2e4a3aed3e67",
"name": "关",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "0",
"payloadType": "num",
"x": 220,
"y": 360,
"wires": [
[
"aebb253297048449"
]
]
},
{
"id": "ab02b8fd1fa3bfb3",
"type": "rpi-gpio out",
"z": "c96a2e4a3aed3e67",
"name": "G",
"pin": "25",
"set": true,
"level": "0",
"freq": "",
"out": "out",
"bcm": true,
"x": 590,
"y": 460,
"wires": []
},
{
"id": "66c559cea189fdd0",
"type": "inject",
"z": "c96a2e4a3aed3e67",
"name": "开",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "1",
"payloadType": "num",
"x": 220,
"y": 420,
"wires": [
[
"ab02b8fd1fa3bfb3"
]
]
},
{
"id": "2e588981da3fd2ac",
"type": "inject",
"z": "c96a2e4a3aed3e67",
"name": "关",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "0",
"payloadType": "num",
"x": 220,
"y": 500,
"wires": [
[
"ab02b8fd1fa3bfb3"
]
]
}
]