远程GPIO用法
以下示例演示了 GPIO Zero 库远程 GPIO 功能的部分功能。在开始学习这些示例之前,请先阅读有关准备 Pi 和主机以使用 配置远程GPIO 的知识。
请注意,所有示例都是假设 Python 3 编写的。这些示例在 Python 2 下可能也能运行,但不能保证!
LED+按钮
让一个 Raspberry Pi 上的 Button 控制另一个 Raspberry Pi 上的 LED:
from gpiozero import Button, LED
from gpiozero.pins.pigpio import PiGPIOFactory
from signal import pause
factory = PiGPIOFactory(host='192.168.1.3')
button = Button(2)
led = LED(17, pin_factory=factory)
led.source = button
pause()
LED+2个按钮
按下两个按钮时,LED 会亮起:
from gpiozero import Button, LED
from gpiozero.pins.pigpio import PiGPIOFactory
from gpiozero.tools import all_values
from signal import pause
factory3 = PiGPIOFactory(host='192.168.1.3')
factory4 = PiGPIOFactory(host='192.168.1.4')
led = LED(17)
button_1 = Button(17, pin_factory=factory3)
button_2 = Button(17, pin_factory=factory4)
led.source = all_values(button_1, button_2)
pause()
多房间运动警报
在家里的每个房间都安装一个带有运动传感器(MotionSensor)的 Raspberry Pi,当每个房间有动静时,LED 指示灯就会显示出来:
from gpiozero import LEDBoard, MotionSensor
from gpiozero.pins.pigpio import PiGPIOFactory
from gpiozero.tools import zip_values
from signal import pause
ips = ['192.168.1.3', '192.168.1.4', '192.168.1.5', '192.168.1.6']
remotes = [PiGPIOFactory(host=ip) for ip in ips]
leds = LEDBoard(2, 3, 4, 5) # leds on this pi
sensors = [MotionSensor(17, pin_factory=r) for r in remotes] # remote sensors
leds.source = zip_values(*sensors)
pause()
多房间门铃
在希望听到门铃声的每个房间安装一个 Raspberry Pi,并连接一个蜂鸣器(Buzzer),然后使用一个按钮(Button)作为门铃:
from gpiozero import Button, Buzzer
from gpiozero.pins.pigpio import PiGPIOFactory
from signal import pause
ips = ['192.168.1.3', '192.168.1.4', '192.168.1.5', '192.168.1.6']
remotes = [PiGPIOFactory(host=ip) for ip in ips]
pin = 17
button = Button(pin) # button on this pi
buzzers = [Buzzer(pin, pin_factory=r) for r in remotes] # buzzers on remote pins
for buzzer in buzzers:
buzzer.source = button
pause()
它还可以用作内部门铃(从厨房告诉人们晚餐时间到了)。