我已经开始与Raspberry Pi合作,我也面临着架构问题。我想让python应用程序闪烁的LED使用GPIO和有Web接口开始和停止闪烁。在网络中,有很多例子说明如何使用水瓶进行一次操作(例如启用LED、禁用LED等)。但我还没有找到如何运行Flask服务器的例子,也没有运行并行的“作业”来闪烁LED,或者一般情况下通过计时器运行动作。
一种解决方案是为此目的有不同的应用程序。一只因为眨眼。还有一个用于烧瓶服务器。但是这种方法需要一个数据库来在应用程序之间共享数据,我不想在IoT设备(Raspberry )中这样做。所以我更喜欢单一的单曲应用。
有人能帮助我如何在Flask应用程序中通过计时器运行操作吗?这是伪码来展示我所期望的。
# main.py
import time
import Flask
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(8, GPIO.OUT, initial=GPIO.LOW)
app = Flask()
def blinking():
while True: # Run forever
GPIO.output(8, GPIO.HIGH) # Turn on
time.sleep(1) # Sleep for 1 second
GPIO.output(8, GPIO.LOW) # Turn off
time.sleep(1)
if __name__ == 'main':
app.run_in_background()
blinking()谢谢你的想法!
发布于 2021-11-26 23:30:49
如果我理解得对,你是在寻找背景中运行的东西;
这背后的主要想法是创建一个线程或在后台运行的任务,检查标志进入闪烁模式或关闭它。基本上,烧瓶端点只需设置标志,您的后台任务将检查它,并采取相应的行动。
另一个选项是Flask调度程序,您可以通过这种方式来安排如何和何时运行这些任务。
How can I add a background thread to flask?
也是线程池执行器。
https://stackoverflow.com/questions/70130755
复制相似问题