配置远程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 将不允许远程连接。