在Raspberry Pi上使用Flask的物联网Python应用程序架构



我已经开始使用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调度器,这样你就可以安排如何以及何时运行这些任务。

如何在烧瓶中添加背景线?

线程池执行器

背景螺纹烧瓶应用

最新更新