物联网 Python 应用架构与 Flask on Raspberry Pi

IoT Python application architecture with Flask on Raspberry Pi

我已经开始使用 Raspberry Pi,但遇到了架构问题。 我想制作 python 应用程序,它使用 GPIO 使 LED 闪烁,并有 Web 界面来启动和停止闪烁。 在网络上有很多关于如何使用 Flask 执行一项操作的示例(例如启用 LED、禁用 LED 等),但我还没有找到如何 运行 Flask 网络服务器以及 运行 并行“工作”以闪烁 LED 或通常 运行 定时器动作。

一个解决方案是针对这两个目的使用不同的应用程序。一个用于眨眼。还有一个用于 Flask 服务器。但是这种方法需要一个数据库来在应用程序之间共享数据,我不想在 IoT 设备中这样做 (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()

感谢任何想法!

如果我没理解错的话,你正在寻找背景中的东西运行ning;

这背后的主要思想是创建一个线程或任务,运行在后台检查标志以进入闪烁模式或将其关闭。 基本上,烧瓶端点只会设置该标志,您的后台任务会检查它并采取相应行动。

另一种选择是 Flask 调度程序,这样您就可以安排 运行 这些任务的方式和时间。

How can I add a background thread to flask?

还有线程池执行器

flask application with background threads