简体   繁体   中英

Want to stop script in a certain time in python

I am building a auto watering system using raspberry pi, I am facing some problem, when I run the code in IDE it runs for infinite time, I want to stop that after a certain time, and if you can suggest me how I can run that automatically using web server. here is my script.

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)

I am using Flask framework for controlling GPIO via WEB. Here is little example:

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()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM