python - 如何调整python脚本以关闭特定时间的灯
问题描述
我目前正在使用 Raspberry Pi 3 开展一个项目,我在网上找到了一个“工作”代码,但我遇到了一些问题。
我必须配置一个继电器板,以便它会在 18:00 自动打开外部灯,并在 06:00 关闭一个变量,所以时间每天都会改变几分钟,比如;
周一 18:00 - 6:00 周二 18:05 - 6:15
我正在使用 Python 来制作和运行脚本。
我的问题是,当我在这些时间之间运行脚本时,代码会打印当前的小时、分钟和秒,但不打开灯,我发现代码“等待”到第二天并在 18:00 开启。
我尝试修改条件 if == 但我没有太多编码经验
#!/usr/bin/python
import time
from random import randint
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
#Define Relay outputs
R1 = 19
#Define relay on times
R1ONH = 18
R1ONM = randint(5, 15)
R1ONS = 0
#Define relay off times
R1OFFH = 6
R1OFFM = randint(5, 15)
R1OFFS = 0
#Define GPIO mapping
Relay_ON = 19
GPIO.setmode(GPIO.BCM) #Use BCM GPIO numbers
GPIO.setup(Relay_ON, GPIO.OUT) #Relay enable
while True:
dt = list(time.localtime())
hour = dt[3]
minute = dt[4]
second = dt[5]
time.sleep(1)
print hour,minute,second;
if hour == R1ONH:
if minute == R1ONM:
if second == R1ONS:
GPIO.output(Relay_ON, GPIO.HIGH)
if hour == R1OFFH:
if minute == R1OFFM:
if second == R1OFFS:
GPIO.output(Relay_ON, GPIO.LOW)
GPIO.cleanup()
我想制作脚本:
-无论设备是否重新启动,代码都将在这些时间之间工作
- 使脚本可执行,以便在设备启动时运行(我尝试使用 rc.local)不知道这些是否是我唯一需要做的事情。