2020-09-21 20:44:29 +00:00
|
|
|
#Modified by smartbuilds.io
|
|
|
|
#Date: 27.09.20
|
2020-10-03 18:46:38 +00:00
|
|
|
#Desc: This web application serves a motion JPEG stream
|
2020-09-21 20:44:29 +00:00
|
|
|
# main.py
|
|
|
|
# import the necessary packages
|
2022-05-05 11:40:27 +00:00
|
|
|
from flask import Flask, render_template, Response, request, send_from_directory
|
2020-09-21 20:44:29 +00:00
|
|
|
from camera import VideoCamera
|
2020-10-03 18:46:38 +00:00
|
|
|
import os
|
|
|
|
|
|
|
|
pi_camera = VideoCamera(flip=False) # flip pi camera if upside down.
|
|
|
|
|
|
|
|
# App Globals (do not edit)
|
2020-09-21 20:44:29 +00:00
|
|
|
app = Flask(__name__)
|
2020-10-03 18:46:38 +00:00
|
|
|
|
2020-09-21 20:44:29 +00:00
|
|
|
@app.route('/')
|
|
|
|
def index():
|
2020-10-03 18:46:38 +00:00
|
|
|
return render_template('index.html') #you can customze index.html here
|
|
|
|
|
2020-09-21 20:44:29 +00:00
|
|
|
def gen(camera):
|
2020-10-03 18:46:38 +00:00
|
|
|
#get camera frame
|
2020-09-21 20:44:29 +00:00
|
|
|
while True:
|
|
|
|
frame = camera.get_frame()
|
|
|
|
yield (b'--frame\r\n'
|
|
|
|
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')
|
2020-10-03 18:46:38 +00:00
|
|
|
|
2020-09-21 20:44:29 +00:00
|
|
|
@app.route('/video_feed')
|
|
|
|
def video_feed():
|
2020-10-03 18:46:38 +00:00
|
|
|
return Response(gen(pi_camera),
|
2020-09-21 20:44:29 +00:00
|
|
|
mimetype='multipart/x-mixed-replace; boundary=frame')
|
2020-10-03 18:46:38 +00:00
|
|
|
|
2022-05-05 11:08:12 +00:00
|
|
|
# Take a photo when pressing camera button
|
|
|
|
@app.route('/picture')
|
|
|
|
def take_picture():
|
|
|
|
pi_camera.take_picture()
|
|
|
|
return "None"
|
|
|
|
|
2020-09-21 20:44:29 +00:00
|
|
|
if __name__ == '__main__':
|
2020-10-03 18:46:38 +00:00
|
|
|
|
|
|
|
app.run(host='0.0.0.0', debug=False)
|