我已经开始使用Raspberry Pi,我遇到了架构问题。我想制作一款python应用程序,它使用GPIO闪烁LED,并具有启动和停止闪烁的Web界面。在网络上有很多关于如何使用Flask进行一个操作的例子(例如启用LED、禁用LED等(,但我还没有找到如何运行Flask网络服务器以及并行运行"Flask"的例子;工作;使LED闪烁或通常通过计时器运行动作。
一种解决方案是针对这两个目的使用不同的应用程序。一个用于眨眼。还有一个用于Flask服务器。但这种方法需要一个数据库来在应用程序之间共享数据,我不想在物联网设备(Raspberry Pi(中这样做。所以我更喜欢单一的应用程序。
有人能帮助我了解如何在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()
谢谢你的任何想法!
如果我理解得对,那么您正在寻找在后台运行的东西;
这背后的主要想法是创建一个在后台运行的线程或任务,检查标志是否进入闪烁模式或将其关闭。基本上,烧瓶端点只会设置该标志,您的后台任务会对其进行检查并采取相应的行动。
另一种选择是Flask调度器,这样你就可以安排如何以及何时运行这些任务。
如何在烧瓶中添加背景线?
线程池执行器
背景螺纹烧瓶应用