python flask中添加多线程——树莓派远程控制

本文介绍了一种使用树莓派和Python Flask框架实现的红外热释电人体传感器远程监控系统。该系统利用多线程技术,定时检查传感器状态,并通过局域网提供实时监控界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python flask中添加多线程

这是我在写用树莓派通过局域网远程查看红外热释电人体传感器输出的一段代码,由于需要每隔一定时间查看一次红外热释电传感器的输出,我新建了一个线程在线程入口函数是body_thread,在入口函数中循环查看输入引脚的值。
刚开始在网上找到python多线程的写法是tb = Thread(target=body_thread(), args=())然后就一直运行这一个线程了运行不到app.run(),找了很久终于发现target的函数不能加括号如果加括号他就直接运行了都不需要start。

from threading import Thread

from flask import Flask, render_template, request, redirect, url_for
import RPi.GPIO as GPIO
import time

pin = 7

app = Flask(__name__)


def body_thread():
    while True:
        print("Body_thread is running!")
        if GPIO.getmode() == GPIO.BOARD:
            if GPIO.input(pin) == GPIO.HIGH:
                print("There are someone in my house!")
            else:
                print("There is no people!")
        time.sleep(3)


def thread():
    while True:
        print("Thread is running!")
        time.sleep(3)


@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        return redirect(url_for('body_off'))
    return render_template('index.html')


@app.route('/body_off', methods=['GET', 'POST'])
def body_off():
    GPIO.cleanup()
    if request.method == 'POST':
        return redirect(url_for('body_on'))
    return render_template('body_off.html')


@app.route('/body_on', methods=['GET', 'POST'])
def body_on():
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
    if request.method == 'POST':
        return redirect(url_for('body_off'))
    return render_template('body_on.html')


if __name__ == '__main__':
    tb = Thread(target=body_thread, args=())
    test = Thread(target=thread, args=())
    tb.start()
    test.start()
    app.run(host="0.0.0.0", port=5000, threaded=True)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值