Я создаю систему автоматического полива с использованием raspberry pi, у меня возникла проблема, когда я запускаю код в среде IDE, он работает бесконечно долго, я хочу остановить это через определенное время, и если вы можете подсказать мне, как я могу запустить это автоматически с помощью веб-сервера. вот мой сценарий.
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)
Он не завис, он работает правильно, но я хочу запустить этот водяной насос на определенное время, например, на 2 минуты, а также запустить этот код через веб-сайт.
Помогите мне понять. Вы хотите настроить систему, в которой контакт датчика влажности поднимается высоко, насос запускается, а затем выключается через некоторое время. Почему бы просто не использовать time.sleep, а затем снова установить низкий уровень помпы?
Я новичок в python, и в этих системах вы не поможете мне с помощью кода.






Я использую фреймворк Flask для управления GPIO через WEB. Вот небольшой пример:
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()
Где застревает код?