首先测试摄像头保证能顺利拍照 raspistill -o a.jpg

安装flask sudo pip install flask

确认无误之后向下进行。

文件夹结构:

CapPic
----static
>a.jpg
----templates
>index.html
----main.py

原理:利用flask搭建一个网页,利用python的os库函数执行raspistill命令进行拍照,并显示出来。其中点击"get a picture"会跳转到on页面进行自动拍照。

代码:

//写的巨丑

<!DOCTYPE html>
<!-- saved from url=(0021)http://192.168.2.202/ -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Show Picture</title>
<style type="text/css">
body{
background: #ccc;
}
div {
width: 150px;
border: 2px solid black;
padding: 5px;
margin: 5px; font-size: 20px;
font-weight: bold;
background-color: #ccc;
}
div a{
text-decoration: none;
color: #000;
}
</style>
</head>
<body>
<div >
<a href="/on">get a picture</a>
</div>
<img src="static/a.jpg" width="50%" height="auto">
</body>
</html>

index.html

from flask import Flask,render_template
import os
app = Flask(__name__) @app.route('/')
def hello_world():
#return 'Hello World!'
return render_template('index.html') @app.route('/on')
def get_pic():
os.system("raspistill -o a.jpg")
os.system("mv a.jpg static")
return render_template('index.html') if __name__ == '__main__':
app.run(host='0.0.0.0',port=80)

main.py

运行:

执行 sudo python main.py

浏览器访问 本机IP:80,局域网内的设备均可。

备注:

1. flask 的app.run填0.0.0.0,不然只有树莓派本身能访问,其他设备不同访问网页

2. 静态文件必须放在 static 文件夹中,例如图片、CSS

参考链接:

1. https://www.cnblogs.com/ttssrs/p/4890635.html

2. https://blog.csdn.net/weixin_40929147/article/details/83795154

web控制树莓派摄像头的更多相关文章

  1. 简单的实现树莓派的WEB控制

    最终效果如图: 用到的知识:Python Bottle HTML Javascript JQuery Bootstrap AJAX 当然还有 linux 我去,这么多--我还是一点一点说起吧-- 先贴 ...

  2. C#控制树莓派入门

    何为树莓派 许久没有写博客了,十二月份西安疫情的影响,居家隔离了一个多月,在其期间,学习了一下树莓派,觉得硬件还是挺有意思的,刚好也看到了巨硬有提供使用c#用来开发树莓派应用的解决方案叫Net Iot ...

  3. 使用opencv去操作树莓派摄像头保存图片和视频

    利用树莓派的摄像头去学习opencv的基本操作 —— 保存图片和视频 1.使用Opencv去控制树莓派的摄像头拍照并保存到本地,主要使用cv2和numpy库 #!/usr/bin/python3 # ...

  4. 基于boa服务器的web控制mini2440的GPIO口

    win7 系统  虚拟机:ubuntu12.04 开发板:mini2440 上一篇已经详细的讲解了如何配置boa服务器,在这里我们就要利用boa服务器带来的便利,利用web控制开发板上的GIPO口,这 ...

  5. node 控制 树莓派做的天气闹钟

    node 控制 树莓派做的天气闹钟 在成都上班,下雨天堵车,迟到的概率会很大. 正好手上有一块树莓派 ,做了一个晴雨闹钟. 下雨天 早上 7:00叫我起床 晴天 早上 7:30叫我起床 将自己喜欢的歌 ...

  6. 树莓派3中没有/dev/video0的解决方法(使用OpenCV编程调用树莓派摄像头的方法)

    一.问题 使用下列方法调用OpenCV编程调用树莓派摄像头时总是失败,提示调用Grabber的start()时失败. import org.bytedeco.javacpp.opencv_core; ...

  7. 云中树莓派(3):通过 AWS IoT 控制树莓派上的 Led

    云中树莓派(1):环境准备 云中树莓派(2):将传感器数据上传到AWS IoT 并利用Kibana进行展示 云中树莓派(3):通过 AWS IoT 控制树莓派上的Led 云中树莓派(4):利用声音传感 ...

  8. 树莓派进阶之路 (023) - Windows下用串行连接控制树莓派(转)

    转载:http://shumeipai.nxez.com/2014/05/04/under-windows-serial-connection-control-raspberry-pi.html 在没 ...

  9. (13)使用python+flask实现树莓派的WEB控制

    https://blog.csdn.net/qq_34803821/article/details/86240096 如果你想在网页上点击按钮,并且让树莓派接收到响应,并做响应的处理,实现网页上与树莓 ...

随机推荐

  1. 05-01 seaborn

    1.Seaborn 在上节中我们学习了matplotlib,这节课我们来看看另一个可视化的模块seaborn,它是基于matplotlib的更高级的开源库,主要用作于数据可视化,解决了matplotl ...

  2. c#DateTime与unix时间戳互相转换

    public class UnixTimeUtil { /// <summary> /// 将dateTime格式转换为Unix时间戳 /// </summary> /// & ...

  3. Unreal Engine 4 系列教程 Part 8:粒子系统教程

    .katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...

  4. 解决python3.7 ModuleNotFoundError: No module named bz2

    解决: ModuleNotFoundError: No module named  bz2 ModuleNotFoundError: No module named '_lzma' 1.在操作系统中安 ...

  5. java基本类型包装类之间的值比较问题

    废话不多说,先看代码 Integer a = 2;Integer b = 2;if(a==b){ System.out.println("相等");}else{ System.ou ...

  6. 【前端知识体系-JS相关】深入理解JavaScript原型(继承)和原型链

    1. Javascript继承 1.1 原型链继承 function Parent() { this.name = 'zhangsan'; this.children = ['A', 'B', 'C' ...

  7. 小程序开发笔记(八)—Js数组按日期分组显示数据

    数据分组展示有两种方式,一种是后端直接传入分组格式的Json数据,另一种是我们在前端自己转换格式,这里我们在前端处理转换按日期分组的数据格式 1.例如后端返回数据格式为: [{createtime:' ...

  8. Kubernetes Ingress 部署

    Kubernetes Ingress 部署 Pod与Ingress的关系• 通过service相关联• 通过Ingress Controller实现Pod的负载均衡- 支持TCP/UDP 4层和HTT ...

  9. FreeMarker实现网页静态化

    1.FreeMarker实现网页静态化. FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器无关,即在Web运行时,它并不知道Servl ...

  10. .NetCore+WebUploader实现大文件分片上传

    项目要求通过网站上传大文件,比如视频文件,通过摸索实现了文件分片来上传,然后后台进行合并. 使用了开源的前台上传插件WebUploader(http://fex.baidu.com/webupload ...