我有一个树莓圆周率和我已经设法得到独立工作的独立元素。另一个是用Flask在我的本地网络上传输摄像头。你知道吗
然而,我希望这些同时运行,我一直在研究Flask脚本模块和Manger功能。我想我把它安装好了。但是,当我运行“runserver”命令时,实际上什么都没有发生。你知道吗
我想用Flask脚本做什么?如果我的方法是正确的,或者有什么更好的解决方法。你知道吗
谢谢
以下是我目前的python脚本:
from importlib import import_module
import os
from flask_script import Server, Manager
from flask import Flask, render_template, Response
from camera import Camera
from gpiozero import MotionSensor
import time
# Code to take a snapshot when motion is detected
def senseMotion():
pir = MotionSensor(4)
while True:
if pir.motion_detected:
print('Motion detected')
Camera.snapshot()
time.sleep(60)
app = Flask(__name__)
manager = Manager(app)
# Flask app to view video stream in browser
@app.route('/')
def index():
"""Video streaming home page."""
return render_template('index.html')
def gen(camera):
"""Video streaming generator function."""
while True:
frame = camera.get_frame()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
@app.route('/video_feed')
def video_feed():
"""Video streaming route. Put this in the src attribute of an img tag."""
return Response(gen(Camera()),
mimetype='multipart/x-mixed-replace; boundary=frame')
@manager.command
def runserver():
senseMotion()
app.run(host='0.0.0.0', threaded=True)
if __name__ == "__main__":
manager.run()
#if __name__ == '__main__':
#app.run(host='0.0.0.0', threaded=True)
你知道吗gpiozero.MotionSensor运动传感器具有在不同线程中运行代码的事件
when_motion
。你知道吗所以使用
pir = MotionSensor(4)
以及
pir.when_motion = MakeSnapshot
当然,您需要定义函数
MakeSnapshot()
阅读有关这个类的更多信息:https://gpiozero.readthedocs.io/en/stable/api_input.html#motion-sensor-d-sun-pir
相关问题 更多 >
编程相关推荐