首页 > 解决方案 > 如何调整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)不知道这些是否是我唯一需要做的事情。

标签: pythontimerraspberry-pi

解决方案


推荐阅读