13_Node-RED_树莓派实战_控制树莓派Led

735 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第9天,点击查看活动详情

前言

之前使用java实现了led的控制,今天尝试使用node-red来控制。

node-red是IBM开发的一个开源项目,现在已经成为一个开放的物联网开发工具。

安装node-red插件

  1. 安装并访问node-red,可以参考之前的文章: juejin.cn/post/708443…

  2. 打开node-red,如图 1.png

  3. 安装pi-gpio插件

    • 点击右上角,进入节点管理

      2.png

    • 搜索node-red-node-pi-gpio,并安装,如下图

      3.png

    • 安装后,在主界面可以看到节点

      4.png

连接led红绿灯

把红绿灯通过GPIO连接到树莓派上,针脚如图:

5.png

编写流程并部署

  1. 创建一个输入节点:拖拽一个inject节点,并配置输入值为1

    6.png

  2. 创建一个gpio操作节点:拖拽一个gpio输出节点,并配置红灯的BCM编码:23 7.png

  3. 连接两个节点 8.png

  4. 同样的操作,我有创建了绿灯、黄灯的开关操作,如下 9.png

  5. 点击右上角部署,效果图如下:

    10.gif

流程已导出,同学可以下载参考

        [
            {
                "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"
                    ]
                ]
            }
        ]