我正在开发Raspberry Pi车库门开启器。我到目前为止已经编写了基本代码,但我希望再添加一个,但我不知道如何。对于那些不知道的人,Raspberry Pi具有可以使用Python脚本设置的GPIO引脚。我使用的脚本将GPIO引脚设置为高电平(5伏输出),保持0.5秒,然后保持低电平。输出连接到继电器,继电器然后连接到我的车库门。
我想要做的是使用另一个GPIO引脚触发警报2秒钟,然后将第一个GPIO引脚的状态设置为高电平,从而打开门。这是我到目前为止所拥有的。
#!/usr/bin/python
# Import required Python libraries
import RPi.GPIO as GPIO
import time
# Use BCM GPIO references instead of physical pin numbers
GPIO.setmode(GPIO.BCM)
# init list with pin numbers
pinList = [2]
# loop through pins and set mode and state to 'low'
for i in pinList:
GPIO.setup(i, GPIO.OUT)
GPIO.output(i, GPIO.HIGH)
def trigger() :
for i in pinList:
GPIO.output(i, GPIO.LOW)
time.sleep(0.5)
GPIO.output(i, GPIO.HIGH)
GPIO.cleanup()
try:
trigger()
except KeyboardInterrupt:
print " Quit"
# Reset GPIO settings
GPIO.cleanup()
任何人都可以帮我弄清楚如何添加另一个GPIO引脚触发2秒,然后触发主继电器打开门吗?
答案 0 :(得分:0)
我在Raspberry Pi中使用了WiringPi来直接控制GPIO,并用它通过SPI和I2C连接其他设备。
这是python Libraries的link。
启动并运行库后,只需使用以下代码的变体:
import wiringpi
import time
wiringpi.pinMode(1,1) #Set GPIO 1 to Output
wiringpi.pinMode(2,1) #Set GPIO 1 to Output
wiringpi.digitalWrite(1,1) #Write HIGH to pin1
time.sleep(2) #2 sec delay
wiringpi.digitalWrite(2,1) #Write HIGH to pin2
输出和输入时要小心,因为Raspberry Pi GPIO的运行频率为3.3v而不是5v,如果用它驱动大的东西(GPIO的额定电流为16mA)或者有故障,你最终可能会破坏你的Raspberry Pi连接。