想在python中的某个特定时间停止脚本吗

2024-05-23 07:25:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用raspberry pi构建一个自动浇水系统,我遇到了一些问题,当我在IDE中运行代码时,它会无限期运行,我想在一段时间后停止,如果你能建议我如何使用web服务器自动运行它。这是我的剧本。你知道吗

import RPi.GPIO as GPIO
import time
timeout = time.time() + 60*1

water_pump = 20
moisture_sensor = 21

GPIO.setmode(GPIO.BCM)

GPIO.setup(moisture_sensor, GPIO.IN)

GPIO.setup(water_pump,GPIO.OUT)
def callback(moisture_sensor):
 if GPIO.input(moisture_sensor):
    GPIO.output(water_pump, GPIO.LOW)
 else:
    GPIO.output(water_pump, GPIO.HIGH)

GPIO.add_event_detect(moisture_sensor, GPIO.BOTH, bouncetime=300)
GPIO.add_event_callback(moisture_sensor, callback)

Tags: importeventaddoutputgpiotime系统setup
1条回答
网友
1楼 · 发布于 2024-05-23 07:25:56

我使用Flask框架通过WEB控制GPIO。 下面是一个小例子:

import RPi.GPIO as GPIO
import time
from flask import Flask
timeout = time.time() + 60*1

app = Flask(__name__)

water_pump = 20
moisture_sensor = 21

GPIO.setmode(GPIO.BCM)

GPIO.setup(moisture_sensor, GPIO.IN)

GPIO.setup(water_pump,GPIO.OUT)
def callback(moisture_sensor):
 if GPIO.input(moisture_sensor):
    GPIO.output(water_pump, GPIO.LOW)
 else:
    GPIO.output(water_pump, GPIO.HIGH)

@app.route('/start')
def start():
    GPIO.output(water_pump, GPIO.HIGH)

@app.route('/stop')
def stop():
    GPIO.output(water_pump, GPIO.LOW)

GPIO.add_event_detect(moisture_sensor, GPIO.BOTH, bouncetime=300)
GPIO.add_event_callback(moisture_sensor, callback)
app.run()

相关问题 更多 >

    热门问题