如何从 Node-Red 在 Raspberry Pi 上触发 Python 脚本

How to trigger Python script on Raspberry Pi from Node-Red

我正在使用 Node-Red,托管在 Raspberry Pi 上用于 IoT 项目。

如何从 Node-Red 触发 raspi 上的 Python 脚本?我想要 运行 一个脚本来更新位于 Pi

上的 Adafruit LCD 屏蔽上的文本

我是否应该以某种方式将 Python 脚本公开为 Web 服务?

我正在使用 Raspberry Pi B+

Node-RED 提供一个 exec 节点作为其核心集的一部分,可用于调用外部命令,这可以调用您的 python 脚本。

将副本拖到 canvas 上时,可以在信息边栏中找到有关如何使用它的更多详细信息。

或者您可以将脚本包装为 Web 服务或简单的 TCP 套接字,两者都有可用于驱动它们的节点。

您可以使用 exec node 命令调用带参数的 Python 脚本:

python ~/script.py arg1 arg2

在您的 Python 脚本中,您可以使用 sys 模块捕获参数:

import sys

var1 = sys.argv[1]
var2 = sys.argv[2]

sys.argv[0]为脚本名保留。

  1. 我希望你已经安装了 red-node 和 Python。 如果没有,请在 Power shell 或 CMD 中使用以下命令安装它: npm install -g node-red-contrib-python3-function
  2. 启动node-red后,在node-red的节点面板中可以找到pythonshell节点。 拖放它并双击它以获得 "node properties" 面板, 在 Name 中输入 Python.exe path,在 Py File 中输入 Python File 然后点击 Done。
  3. 将 msg-payload 节点连接到它并部署。
  4. 点击 PythonShell 节点输入,您将执行 python 程序并显示在输出中。

我遇到了类似的挑战 Raspberry pi 4.

我使用执行节点解决了它。在命令槽中,输入python脚本的路径,如下所示。

sudo python3 /home/pi/my_script.py

将脚本路径更改为您的路径。使用注入节点 运行 脚本和调试节点查看输出。

确保您使用 sudo 授予超级用户权限并且您已安装 python3