基于树莓派的远程实时监控(内网穿透)

/*本文系湛江市第十七中学星火创客团队及岭南师范学院物联网俱乐部原创部分参赛项目,转载请保留声明 */

一、项目背景与目标:
此项目基于一个师弟的留言:如何实现在学校的校园网(办公网)内实现内网穿透。我在已经解决师弟所提出的难题以后,将这个技术知识点应用起来,用树莓派搭建一个简易的监控平台。
当前我们在市面上购买网络监控设备,往往会配备相关的App、Web端等相关的移动应用。但是,前通过Shodan搜索实现网络摄像头入侵、字典破解用户操作平台密码甚至是直接入侵监控制造商服务器等等方式爆破网络摄像头的事例已比比皆是。因此,搭建一台属于我们自己控制的网络监控就显得其存在的合理性和必要性了。
注:此次时间紧迫,视频监控和安全这块还没时间做得很完善,等面试完以后,有时间会做一个工程项目来教大家。

二、工程搭建
2.1 硬件准备
树莓派摄像头模组Raspberry PI csi接口
②树莓派4B/3B+
2.2树莓派系统烧写
系统烧写方法
2.3 工程搭建(局域网)
①开启摄像头接口

如果你之前已经使用过摄像头接口,直接看跳到下一步。如果还没有的用过的话,树莓派摄像头接口可能还没有打开,这是树莓派打开摄像头接口的方法:

(i)打开树莓派终端输入:

sudo raspi-config

(ii) 选中Interfacing Options按Enter键进入子菜单
在这里插入图片描述
(iii) 选中Camera,按Enter键,打开摄像头接口,确认打开后即可
在这里插入图片描述
②接入摄像头
给树莓派接上摄像头很容易。确保树莓派已经关机的情况下,用指甲轻轻抠开CSI接口卡扣,将有金属接触面的一面对准卡扣白色的一面,再按压扣紧卡扣就安装好摄像头了。
在这里插入图片描述
③找到树莓派的IP地址
在树莓派终端输入命令 ipconfig,wlan0即为树莓派的ip地址。
在这里插入图片描述
④ 下载脚本
Gitee链接地址为:https://gitee.com/qiqicancanqiqi/raspberry-pie/tree/master/Video_surveillance
⑤ 代码执行(python3自己安装)

python3 ~/rpi/rpi.python

此时监控系统以及开始工作了。局域网内的任何设备,打开浏览器地址栏输入 ip:端口,(冒号前的IP地址换成你自己树莓派的ip)即可打开网络监控系统。视频响应的延时取决于你的树莓派和路由器的性能,保持程序运行,下面将教大家如何通过外网访问用树莓派做的内网视频监控。

2.4 内网穿透
2.4.1服务器端配置(腾讯云+宝塔)
①寻找合适的frp版本,服务器为X64位
②使用tar指令解压tar.gz文件

tar -zxvf frp_0.36.2_linux_amd64.tar.gz

③使用cd指令进入解压出来的文件夹

cd frp/frp_0.36.2_linux_amd64/

④外网主机作为服务端,可以删掉不必要的客户端文件,使用rm指令删除文件。

rm -f frpc
rm -f frpc.ini

⑤接下来要修改服务器配置文件,即frps.ini文件。使用vim指令对目标文件进行编辑。

vim frps.ini
[common]
bind_port = 7000
vhost_http_port = 8000 #外部访问frp服务器的端口

[common]部分是必须有的配置,其中bind_port是自己设定的frp服务端端口,vhost_http_port是自己设定的http访问端口。

保存上面的配置后,使用以下指令启动frp服务端。(如果需要在后台运行,请往下翻阅关于后台运行的部分。)

./frps -c ./frps.ini

⑥使用systemctl来控制启动
这个方法比较好用,很方便

sudo vim /lib/systemd/system/frps.service

在frps.service里写入以下内容

[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/your/path/frps -c /your/path/frps.ini

[Install]
WantedBy=multi-user.target

然后就启动frps

sudo systemctl start frps

再打开自启动

sudo systemctl enable frps
  • 如果要重启应用,可以这样,sudo systemctl restart frps
  • 如果要停止应用,可以输入,sudo systemctl stop frps
  • 如果要查看应用的日志,可以输入,sudo systemctl status frps

⑦放行端口
使用宝塔面板让服务器放行7000,8000的端口
在这里插入图片描述

2.4.2客户端配置(树莓派)
①寻找合适的frp版本,树莓派安装32位
②使用tar指令解压tar.gz文件

tar -zxvf frp_0.36.2_linux_amd.tar.gz

③使用cd指令进入解压出来的文件夹

cd frp/frp_0.36.2_linux_amd/

④树莓派作为客户端,可以删掉不必要的客户端文件,使用rm指令删除文件。

rm -f frps
rm -f frps.ini

⑤接下来要修改客户端配置文件,即frp.ini文件。使用vim指令对目标文件进行编辑。

vim frpc.ini
[common]
server_addr = 服务器IP
server_port = 7000
#token = love2022.top


[你自己取个名字]
type = tcp
local_ip =  项目的内网ip地址(如local_ip = 127.0.0.1, 比如说要从外网访问宝塔面板,这里就填127.0.0.1,实在不知道填什么就填0.0.0.0)本人是192.168.xx.xx
local_port = 要转发的端口(如local_port = 80 ,宝塔面板填8888)本人是8000

remote_port = 外网访问的端口(端口范围是6000-65535 如果报错start error: port already used
就换一个端口 )本人是9000,此端口为在浏览器输入的端口

⑥保存上面的配置后,使用以下指令启动frp客户端。

./frpc -c ./frpc.ini

2.5 远程视频监控实现
在浏览器输入公网ip+外网端口-remote_port(请保持上面视频监控的代码运行!!!!)

总结:
客户端自运行的文件还没写,暂时没空了,整个项目先到这吧,有什么问题请给我留言,很久没出过博客了,希望这篇博客能帮助更多的人解决问题,同时希望更多人去爱上物联网这个行业。

本系统以树莓派3B+为嵌入式计算平台,与CSI摄像头、二自由度旋转云台结合,主体使用Python和PHP编程,应用I2C通信与OpenCV等前沿技术,通过Frp内网穿透打通内外网数据传输,实现具有远程实时视频监控、运动检测及画面截图邮件预警、远程控制云台摄像头转动、监控画面….zip嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,我会及时为你解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明,项目具体内容可查看下方的资源详情。 【附带帮助】: 若还需要嵌入式物联网单片机相关领域开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步。 【本人专注嵌入式领域】: 有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为你提供帮助,CSDN博客端可私信,为你解惑,欢迎交流。 【建议小白】: 在所有嵌入式开发中硬件部分若不会画PCB/电路,可选择根据引脚定义将其代替为面包板+杜邦线+外设模块的方式,只需轻松简单连线,下载源码烧录进去便可轻松复刻出一样的项目 【适合场景】: 相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可以基于此项目进行扩展来开发出更多功能
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小贤风帆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值