配置远程GPIO
GPIO Zero 支持多种不同的引脚实现(直接处理 GPIO 引脚的底层引脚库)。默认情况下会使用 RPi.GPIO 库(假设系统中已安装),但也可选择指定一个库来使用。更多信息,请参阅 API - 引脚文档页面。
支持的引脚库之一 pigpio 提供了通过网络远程控制 GPIO 引脚的功能,这意味着你可以使用 GPIO Zero 控制网络上连接到 Raspberry Pi 的设备。你可以从另一台 Raspberry Pi,甚至从 PC 来实现这一功能。
有关如何使用远程引脚的示例,请参阅 远程 GPIO 方案 页面。
准备Raspberry Pi
如果您使用的是 Raspberry Pi OS(桌面版--非精简版),那么您已经拥有了使用远程 GPIO 功能所需的一切。如果使用的是 Raspberry Pi OS Lite 或其他发行版,则需要安装 pigpio:
sudo apt install pigpio
或者,也可以从 abyz.me.uk 下载 pigpio。
你需要启用远程连接,并在 Raspberry Pi 上启动 pigpio 守护进程。
启用远程连接
在 Raspberry Pi OS 桌面映像上,可以在 Raspberry Pi 配置工具中启用远程 GPIO:

或者,在命令行输入 sudo raspi-config 并启用远程 GPIO。这在功能上等同于桌面方法。
当使用 systemctl(见下文)启动 pigpio 守护进程时,它将允许远程连接(直至禁用)。它还将为当前会话启动 pigpio 守护进程。因此,当前会话不需要任何其他操作,但重启后则需要执行 systemctl 命令。
命令行:systemctl
要在启动时自动运行守护进程,请运行
sudo systemctl enable pigpiod
要使用 systemctl 运行一次守护进程,请运行
sudo systemctl start pigpiod
命令行: pigpiod
另一种方法是手动启动 pigpio 守护进程:
sudo pigpiod
这是单次会话使用的方法,重启后不会继续运行。不过,可以使用 -n 标志来允许来自特定 IP 地址的连接。例如
sudo pigpiod -n localhost # 仅允许 localhost
sudo pigpiod -n 192.168.1.65 # 仅允许 192.168.1.65
sudo pigpiod -n localhost -n 192.168.1.65 # 仅允许 localhost 和 192.168.1.65
请注意,运行 sudo pigpiod 不会影响远程 GPIO 配置设置(也就是说,如果没有 -n 标志,即使远程设置被禁用,它也会允许远程连接)。但除非进行相应配置,否则 sudo systemctl enable pigpiod 或 sudo systemctl start pigpiod 将不允许远程连接。
准备控制计算机
如果控制计算机(运行 Python 代码的计算机)是运行 Raspberry Pi OS 的 Raspberry Pi(或运行 Raspberry Pi Desktop x86 的 PC),那么你就拥有了所需的一切。如果使用的是其他 Linux 发行版、Mac OS 或 Windows,则需要在 PC 上安装 pigpio Python 库。
树莓派
首先,更新软件源列表:
sudo apt update
然后为 Python 3 安装 GPIO Zero 和 pigpio 库:
sudo apt install python3-gpiozero python3-pigpio
或 Python 2
sudo apt install python-gpiozero python-pigpio
或者使用 pip 安装
sudo pip3 install gpiozero pigpio
或 Python 2
sudo pip install gpiozero pigpio
Linux
首先,更新发行版的软件源列表。例如
sudo apt update
然后为 Python 3 安装 pip:
sudo apt install python3-pip
或 Python 2
sudo apt install python-pip
(或者使用 get-pip 安装 pip)。
接下来,为 Python 3 安装 GPIO Zero 和 pigpio:
sudo pip3 install gpiozero pigpio
或 Python 2
sudo pip install gpiozero pigpio
Mac OS
首先,安装 pip。如果使用 brew 安装了 Python 3,则已经安装了 pip。如果没有,请使用 get-pip 安装 pip。
接下来,用 pip 安装 GPIO Zero 和 pigpio:
pip3 install gpiozero pigpio
或者使用 Python 2
pip install gpiozero pigpio