gpt4 book ai didi

python - 独立于其他命令每 5 分钟运行一部分代码

转载 作者:太空宇宙 更新时间:2023-11-03 13:12:51 24 4
gpt4 key购买 nike

我想打开,保持打开 6 秒,每 5 分钟关闭一个继电器,同时其余代码正常运行。

例如:

GPIO.output(18, 1)
sleep(6)
GPIO.output(18, 0)
sleep(300)

但是在这个延迟中没有剩余的程序堆栈。我的 Python 代码是:

import RPi.GPIO as GPIO
from time import sleep

GPIO.setmode(GPIO.BOARD)
GPIO.setup(13, GPIO.IN, GPIO.PUD_UP)
GPIO.setup(7,GPIO.OUT)
GPIO.setup(37, GPIO.OUT)
Hologram = '/home/pi/Hologram/Hologram.mp4'

from subprocess import Popen

firstTimeOpen=0

while True:

doorIsOpen = GPIO.input(13)

if doorIsOpen==0 and firstTimeOpen == 0:
firstTimeOpen=1
GPIO.output(7, 0)
GPIO.output(37, 0)
sleep(0.5)

if doorIsOpen==1 and firstTimeOpen == 1:
GPIO.output(7, 1)
GPIO.output(37, 1)
omxp = Popen(['omxplayer' ,Hologram])
sleep(87)
GPIO.output(7, 0)
GPIO.output(37, 0)
firstTimeOpen=0
sleep(0.5)

最佳答案

线程提供了一种方便的方式来做到这一点。我通常创建一个threading.Thread 子类,其run 方法是要在单独的线程中运行的代码。所以你会想要这样的东西:

class BackgroundRunner(threading.thread):
def run(self):
while True:
GPIO.output(18, 1)
sleep(6)
GPIO.output(18, 0)
sleep(300)

然后,在开始运行主代码之前,使用

bg_runner = BackgroundRunner()
bg_runner.start()

关于python - 独立于其他命令每 5 分钟运行一部分代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38914104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com