【树莓派】搭建局域网内网页实时视频监控
文章目录
- 前言
- 一、软硬件准备
- 1、硬件准备
- 2、软件准备
- 二、搭建流程
- 1、检查是否安装了picamera
- 2、使能摄像头模块
- 3、查询树莓派IP地址
- 4、创建python文件并传输到树莓派
- 5、运行python脚本
- 6、效果如下
- 总结
前言
上篇文章我们使用Smaba搭建了树莓派的文件共享系统,这里我们就用上这个文件编辑传输的功能吧,接下来使用摄像头搭建一个简单的实时监控。
一、软硬件准备
1、硬件准备
树莓派摄像头 |
---|
树莓派4B |
2、软件准备
VNC远程桌面 |
---|
二、搭建流程
1、检查是否安装了picamera
一般树莓派都默认安装了,但是为了保险起见,我们还是检查一下
安装参考链接
输入如下指令:
python -c "import picamera"
python3 -c "import picamera"
如果没有错误,那么我们可以进行下一步了,如果有如下类似情况,那你可能需要重新安装一下
/*错误内容示例*/
$ python -c "import picamera"
Traceback (most recent call last):File "<string>", line 1, in <module>
ImportError: No module named picamera
$ python3 -c "import picamera"
Traceback (most recent call last):File "<string>", line 1, in <module>
ImportError: No module named 'picamera'
在树莓派上安装picamera最好使用系统的包管理器,这样只需要新版本发布时,只需要apt正常的更新指令就能伴随着更新,如果想删除也能删除掉。
安装指令:
sudo apt-get update
sudo apt-get install python-picamera python3-picamera
升级指令:
sudo apt-get update
sudo apt-get upgrade
删除指令
sudo apt-get remove python-picamera python3-picamera
2、使能摄像头模块
在终端输入指令,进入设置:
sudo raspi-config
选择使能(enable)
最后完成后应该重启一下
sudo reboot
重启完成,输入如下指令,如果一切正常,相机应启动,相机的预览应显示在显示屏上,在延迟 5 秒后,应在关闭相机之前捕获图像imagei
raspistill -o image.jpg
3、查询树莓派IP地址
输入指令:
ifconfig
4、创建python文件并传输到树莓派
文件名可以随便取一个英文名,代码如下:
# Web streaming example
# Source code from the official PiCamera package
# http://picamera.readthedocs.io/en/latest/recipes2.html#web-streamingimport io
import picamera
import logging
import socketserver
from threading import Condition
from http import server
//从这里开始可以自定义设置自己的视频网页了
PAGE="""\
<html>
<head>
<title>Raspberry Pi - Surveillance Camera</title>
</head>
<body>
<center><h1>Raspberry Pi - Surveillance Camera</h1></center>
<center><img src="stream.mjpg" width="640" height="480"></center>
</body>
</html>
"""class StreamingOutput(object):def __init__(self):self.frame = Noneself.buffer = io.BytesIO()self.condition = Condition()def write(self, buf):if buf.startswith(b'\xff\xd8'):# New frame, copy the existing buffer's content and notify all# clients it's availableself.buffer.truncate()with self.condition:self.frame = self.buffer.getvalue()self.condition.notify_all()self.buffer.seek(0)return self.buffer.write(buf)class StreamingHandler(server.BaseHTTPRequestHandler):def do_GET(self):if self.path == '/':self.send_response(301)self.send_header('Location', '/index.html')self.end_headers()elif self.path == '/index.html':content = PAGE.encode('utf-8')self.send_response(200)self.send_header('Content-Type', 'text/html')self.send_header('Content-Length', len(content))self.end_headers()self.wfile.write(content)elif self.path == '/stream.mjpg':self.send_response(200)self.send_header('Age', 0)self.send_header('Cache-Control', 'no-cache, private')self.send_header('Pragma', 'no-cache')self.send_header('Content-Type', 'multipart/x-mixed-replace; boundary=FRAME')self.end_headers()try:while True:with output.condition:output.condition.wait()frame = output.frameself.wfile.write(b'--FRAME\r\n')self.send_header('Content-Type', 'image/jpeg')self.send_header('Content-Length', len(frame))self.end_headers()self.wfile.write(frame)self.wfile.write(b'\r\n')except Exception as e:logging.warning('Removed streaming client %s: %s',self.client_address, str(e))else:self.send_error(404)self.end_headers()class StreamingServer(socketserver.ThreadingMixIn, server.HTTPServer):allow_reuse_address = Truedaemon_threads = Truewith picamera.PiCamera(resolution='640x480', framerate=24) as camera:output = StreamingOutput()#Uncomment the next line to change your Pi's Camera rotation (in degrees)#camera.rotation = 90camera.start_recording(output, format='mjpeg')try:address = ('', 8000) //这里8000是端口号server = StreamingServer(address, StreamingHandler)server.serve_forever()finally:camera.stop_recording()
前面我们做过了树莓派文件共享系统,这里我们从电脑中将创建好的文件直接拖拽到树莓派中随意一个文件夹即可,这里选择了Videos文件夹
5、运行python脚本
这里可以直接一条指令完成
python3 ./Videos/rpi_camera_surveillance_system.py
也可以直接进入所在文件运行
6、效果如下
192.168.112:8000
总结
这是一个简单好玩的项目,不用安装其它任何依赖包,只要运行一个Python脚本就可以在局域网构建一个视频监控系统。这里使用到了摄像头,算是树莓派比较基础的一个硬件了吧,有条件可以动手试一下。在经过实际操作后,突然意识到这个没有映射到公网上,因而应该只能在同一局域网内才能查看,果不其然,的确只能局限在局域网中使用。
【树莓派】搭建局域网内网页实时视频监控相关推荐
- 树莓派搭建局域网内的静态网页
树莓派搭建局域网内的静态网页 1.更新软件源 使用以下两条命令更新软件源: sudo apt-get update sudo apt-get upgrade 2.安装Nginx服务器 Nginx介绍: ...
- 192、如何查询局域网内在线的监控设备IP
如何查询局域网内在线的监控设备IP?分享几种适用的方法,希望有所帮助. 方法一:通过电脑cmd命令查询局域网内设备IP 在电脑开始菜单[运行],输入cmd回车,在弹出的命令提示窗口输入ipconfig ...
- 【UE4】搭建局域网内VR直播 UE4.27
前言:(英伟达显卡)UE4.27的内网搭建360°相机直播,并在内网任意设备使用VR观看,理论上性能足够效果越好:此处使用的VR设备为Vive,梳理了整体构建流程,希望能帮到你!多图警告!图片教程比较 ...
- 树莓派搭建局域网NAS小记
基于树莓派4B搭建的个人局域网NAS 需求提出 所需设备 实现步骤 1.刷系统+SSH远程登录 2.更换软件源及安装更新 3.安装并配置Samba 结果测试 1.利用PC访问 2.利用IPad和手机访 ...
- Git本地远程仓库的搭建(局域网内也可提交)
寂书万卷 2018-07-09 16:02:06 13357 收藏 23 展开 Git本地远程仓库的搭建(windows 7专业版) 你是否也这样想过?可以在自己的两台或者多台电脑中创建一个仓 ...
- Java实现对局域网内PC的监控
JARVIS 功能 突破内网的限制,实现对局域网内PC的远程监控,目前已实现实时截图,发送关机指令功能 结构 Web应用(JARVIS)和Java应用(Server,PCClient)配合实现功能 J ...
- 树莓派控制局域网内笔记本电脑开关机
开机 配置电脑端 设置BIOS允许从网卡启动 打开网络和共享中心--以太网--属性--配置--电源管理--允许此设备唤醒计算机 配置树莓派 # 安装wakeonlan sudo apt install ...
- Windows下搭建局域网内简易git服务器
这里写自定义目录标题 概述 配置步骤 1.任意位置创建git 仓库 2.启动Git Daemon 3.其他电脑克隆工程 4.开机自动启动 5.其他配置 注意事项 概述 由于和朋友小规模制作项目,又使用 ...
- SSH远程树莓派:不同局域网内SSH远程树莓派 2/4
系列文章 SSH远程树莓派:局域网内SSH远程树莓派 1/4 SSH远程树莓派:公网SSH远程树莓派 2/4 SSH远程树莓派:Mac/linux系统ssh远程树莓派 3/4 SSH远程树莓派:配置固 ...
- JARVIS 手机监控局域网内PC
JARVIS 通过反向的Socket连接,实现通过手机(或任何可以发送Http请求的设备)对局域网内PC的监控.在外时可以远程监视家里PC任务的执行情况,甚至远程唤醒家里的PC提前打开游戏也可以实现( ...
最新文章
- OpenCv 金字塔之上采样与下采样
- 栈判断字符串是否为中心对称_数据结构和算法入门之判断括号字符串的合法性(valid parentheses)...
- Linux 查看CPU,内存,硬盘
- git 配置免密登陆
- 【Python学习】 caffe-master 之 mnist 详解
- 信息学奥赛一本通 1223:An Easy Problem | OpenJudge NOI 4.6 1455:An Easy Problem
- IterableThread
- Laravel 指定日志生成目录
- 全通教育回应深交所:巴九灵年赚7500万 没有吴晓波依然正常运作
- 解决微信小程序开发中wxss中不能用本地图片
- TensorFlow 学习(十一)—— 正则(regularizer)
- secoclient Linux安装
- AutoCAD Eagle的常规操作和PCB制板及拼板说明
- Excel 数据透视表教程大全之 01 什么是数据透视表 如何创建数据透视表
- 中国五笔 恶意软件清理助手
- 计算机博士有哪些专业方向,国内计算机专业博士研究方向-20210619140356.docx-原创力文档...
- python四子棋游戏
- 高等数学学习笔记——第六十讲——向量值函数的导数与积分
- CodeForces 416C 	Booking System
- IntelliJ IDEA注释字体形式修改