目录

一、材料准备

二、环境搭建

1.树莓派实现局域网监控画面传输

1、树莓派安装系统

2、将摄像头与树莓派连接

3、配置树莓派开发环境

4、让摄像头开始进行画面录制

5、将监控画面服务设置为开机自启

2、内网渗透

1、服务器端frp配置

2、将服务器端FRP设置为自动启动

3、配置宝塔面板

4、客户端FRP配置(树莓派)

5、客户端FRP自动启动

三、安装4g模块

1、将4G模块与USB转接版接好,然后与树莓派相连接。

2、检测硬件连接,网络连接

3、进行拨号设置

4、开机自动拨号

四、总结



一、材料准备

设备 数量
树莓派4B 1
树莓派摄像头(csi接口) 1
摄像头csi连接线 1
MicroHDMI连接线 1
网线(可以不需要) 1
Linux服务器 1
4G模块(华为me909s-821)+usb转接板 1

二、环境搭建

1.树莓派实现局域网监控画面传输

1、树莓派安装系统

本人下载的是树莓派官方深度定制的硬件驱动与软件程序,官方推荐系统——Raspberry Pi OS(Raspbian)系统下载链接

如果是第一次接触LInux系统的话,这里我推荐下载桌面版,方便小白进行调试。linux老手的话可以直接下载lite版,这样可以让树莓派减少一些资源的使用。

关于如何将系统下载进树莓派中,可以参考我的另一篇文章Windowns下安装树莓派系统到SD卡,以及远程登录树莓派的教程无多余显示器IP未知情况下登录树莓派。

2、将摄像头与树莓派连接

给树莓派供电,开机进入树莓派的桌面 ,点击桌面的左上角的树莓派图标,选择首选项,选择Raspberry Pi Configuration->interface。将Camera这一栏选择Enable,这样开启了树莓派的摄像头服务。

3、配置树莓派开发环境

1.安装MJPG-streamer和一些需要用到的依赖。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install subversion libjpeg8-dev imagemagick libv4l-dev cmake git unzip
git clone https://github.com/jacksonliam/mjpg-streamer.git

将上面的指令执行完后,MJPG-streamer软件包已近下载在你的树莓派里了,接下来我们需要对它进行一些配置。

cd mjpg-streamer/mjpg-streamer-experimental/
make all
sudo make install
cd $home

4、让摄像头开始进行画面录制

对软件进行编译完成后,我们回到根目录,输入以下指令:

/usr/local/bin/mjpg_streamer -i "/usr/local/lib/mjpg-streamer/input_uvc.so -n -f 45 -r 620x480" -o "/usr/local/lib/mjpg-streamer/output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www"

如果出现了这样的内容,则证明成功。此时树莓派已近将摄像头录制的画面上传至树莓派的8080端口。用一台与树莓派处于同一个网络的电脑打开浏览器,然后在网址栏输入以下来访问树莓派网络端口。

http://<树莓派IP>:8080/?action=stream

5、将监控画面服务设置为开机自启

sudo vim /etc/systemd/system/camera.service

输入上述代码后,将在system文件夹下自动创建一个名为camera.service的服务文件,并进入vim编辑模式,我们按键盘上的字母 i 进入插入模式,将下面代码写入到该文件中,然后按键盘上的ESC键退出插入模式,接着输入 :wq 退出并保存文本。

[Unit]
Description=camera daemon
After=syslog.target  network.target
Wants=network.target[Service]
Type=simple
ExecStart=/usr/local/bin/mjpg_streamer -i "/usr/local/lib/mjpg-streamer/input_uvc.so -n -f 30 -r 620x480" -o "/usr/local/lib/mjpg-streamer/output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www"
Restart=always
RestartSec=1min[Install]
WantedBy=multi-user.target

接下来我们重载服务并启动监控画面服务,设置为开机启动。

systemctl daemon-reload    #重新加载服务配置文件
systemctl start camera     #启动监控画面的传输
systemctl enable camera    #设置监控画面为开机自启

可以输入 systemctl status camera.service 这段代码来确定是否成功开启。

如果停止该服务,可以输入指令 sudo systemctl stop camera.service

如果要重启应用,可以输入指令 sudo systemctl restart camera.service

完成上面的操作之后,我们接下来将进行内网穿透,把监控画面上传至公网。

2、内网渗透

1、服务器端frp配置

在这里我使用的是华为云+宝塔面板,服务器上安装的是Debian系统(x64)。所以我下载的版本是frp_0.37.0_linux_amd64.tar.gz。如果你们的服务器和我的不一样,请选择适合自己的版本进行下载(FRP下载地址)。如果想要更详细的了解FRP,可以参考这个网站的说明(FRP说明文档)。

将该版本下载至服务器端后,使用下面的命令进行解压,,并cd进入该文件夹。

tar -zxvf frp_0.37.0_linux_amd64.tar.gz
cd frp_0.37.0_linux_amd64.tar.gz
接下来我们需要修改服务器配置文件 frps.ini ,同样是使用vim编译器进行编译。
vim frps.ini

然后在里面输入以下内容:

[common]
bind_port = 7000
vhost_http_port = 9000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
privilege_token = value

参数说明

bind_port:绑定的端口,需要与客户端中 server_port 参数保持一致

vhost_http_port:自己设定的http访问端口,之后将通过服务器IP+该端口来访问监控画面

dashboard_port:frp 后台服务页面的端口,如果设置7500,便可通过 http://yourip:7500 来访问 frps 的后台页面(yourip为你后面内容里设置的服务器ip)

dashboard_user:frp 后台服务页面的管理员用户名

dashboard_pwd:frp 后台服务页面的管理员密码

privilege_token:自定义值,必须与客户端中的 privilege_token 保持一致(一种验证机制)

编辑并保存好上面的参数之后,使用以下命令来启动frp服务端。

./frps -c ./frps.ini

2、将服务器端FRP设置为自动启动

上述操作完成后,我们将服务器端的frp设置为自动启动,输入以下命令即可。

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
#ExecStart=/home/vulcan/frp/frps -c /home/vulcan/frp/frps.ini(例如我的是这个)[Install]
WantedBy=multi-user.target

按上面的方法操作完成后,我们再输入启动frps和开启frps自动启动的指令。

systemctl start frps
systemctl enable frps

将上面操作完成后,我们可以输入 systemctl status frps 命令来查看是否配置成功。

3、配置宝塔面板

宝塔面板的具体使用可以参考宝塔的官方教程,找到对应自己的服务器配置进行安装即可。

宝塔链接

进入宝塔设置页面后,我们点击  安全  ,使用宝塔面板放行端口6000(远程ssh),7000(frp服务),7500(frp后台管理),8000(远程vnc),9000(监控画面)。

同时进入服务器后台,将以上端口添加进入方向规则,放行端口。

4、客户端FRP配置(树莓派)

1、下载适合你树莓派的frp版本,我的是树莓派4B,安装的系统是raspberry pi os32位的,内核是arm的(可以输入  arch 查看所属系统是什么内核的)。所以我下载frp_0.37.0_linux_arm64.tar.gz这个版本。(点击下载frp)

2、将下载好的文件解压,并使用cd命令进入解压出来的文件夹里。

tar -zxvf frp_0.37.0_linux_arm64.tar.gz
cd frp_0.37.0_linux_arm64

3、然后我们按照之前服务端的做法对客户端的配置文件frpc.ini进行修改。

vim frpc.ini

输入下面的代码(将注释删除),保存。ca

[common]
server_addr = xxx.xxx.xxx.xxx (这里为你服务器的ip,例如我的是124.aa.bb.cc)
server_port = 7000
token = value[ssh]                  (如果不需要ssh远程访问树莓派,这段可以删除)
type = tcp
local_ip = 127.0.0.1   (这里填你的树莓派在局域网中的ip,不知道的话就默认填127.0.0.1)
local_port = 22
remote_port = 6000     (ssh远程连接的端口)[vnc]                  (如果不需要vnc远程访问树莓派桌面,这段可以删除)
type = tcp
local_ip = 127.0.0.1   (这里填你的树莓派在局域网中的ip,不知道的话就默认填127.0.0.1)
local_port = 5900
remote_port = 8000     (vnc远程连接的端口)[web]
type = http
local_port = 8080
custom_domains = xxx.xxx.xxx.xxx (这里为你服务器的ip,之后通过这个ip+前面服务器端设置的vhost_http_port端口就能在外网访问摄像头的画面)

其中[ssh]和[vnc]作为可选项,看个人喜欢自由添加,[web]穿透摄像头画面。

4、配置好后,我们输入下面的代码,检查是否成功。

./frps -c ./frps.ini

在浏览器中输入124.aa.bb.cc:9000(你的服务器ip+端口9000)就能在外网访问摄像头画面啦。

5、客户端FRP自动启动

按照之前配置服务端的方法,对树莓派进行相同的操作就能完成客户端FRP的自动启动。

三、安装4g模块

1、将4G模块与USB转接版接好,然后与树莓派相连接。

2、检测硬件连接,网络连接

在树莓派中输入以下指令:

lsusb

如上图所示,可以看到华为模块已近被树莓派识别出来了,接下来我们再输入:

ifconfig

可以看到这个wwan0就是华为网卡。不过虽然网卡能识别出来,但是树莓派此时还不能通过该网卡进行联网,还需要先进行拨号才能联网。

3、进行拨号设置

在这里我是用wvdial来拨号连接4G网络,所以要先安装wvdial.。

sudo apt-get install wvdial

接下来配置联通卡的拨号信息

sudo vim /etc/wvdial.conf
[Dialer hw1]
Auto DNS = on
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0
Init3 = AT+CGDCONT=1,"IP","3gnet"
ISDN = 0
Modem Type = Analog Modem
New PPPD = yes
Phone = *99#
Modem = /dev/ttyUSB0
Username = guest
Password = guest
Baud = 9600

我这里的是联通卡的配置,如果是移动、电信则需要对phone和init3、username、pssword稍作修改。

运营商 APN 拨号号码 账号 密码
中国联通 3GNET *99# guest guest
中国电信 CTNET *99# ctnet@mycdma.cn(card) vnet.mobi(card)
中国移动 CMNET *99***1# card card

然后运行拨号命令:

sudo wvdial hw1

此时大概等待30s后,出现pppd的拨号信息后则证明成功。

此时树莓派已近可以正常上网了。(如果是用局域网登录树莓派的,可能还需要修改一下树莓派的默认网关,可以查看这篇文章进行配置)

4、开机自动拨号

首先在  /home/pi/.config 下创建一个文件夹,名称为 autostart,如果以及存在改文件夹,cd进入即可。

mkdir /home/pi/.config/autostart

然后在该文件下创建一个xxx.desktop文件,文件名后缀为.desktop,名字随便,我这里的是ppp.desktop,然后在里面添加以下代码:

[Desktop Entry]
Name=ppp0
Comment=wwan0
Exec=sudo wvdial hw1
Icon=/home/pi/python_games/4row_black.png
Terminal=false
MultipleArgs=false
Type=Application
Categories=Application;Development;
StartupNotify=true

该文件中的Name、Comment、Icon分别表示这个启动项目的名称、备注以及显示的图标,具体的值可自行设定;Exec表示调用的指令。

接下来重启系统,就可以生效了,整个项目的配置调试到此结束。

四、总结

在这个项目开发过程中,还是走了一些弯路。不过也借此学到了一些东西,收获颇多。写本文的原因有两个,一个是:在进行该项目的开发中,我也在互联网上查阅了大量的资料。其中有一些别人分享的资料中,也许是作者编写的疏忽,贴出的代码有一部分打错了。而身为小白的我自然是直接对着敲代码,导致我在该处运行中出现错误,浪费了不少时间才解决。于是我自己写了一篇教程,希望其他网友能少踩一些坑(不过我也不是神人,也不能保证我的文章代码都写对了),能让小白们多几份参考的资料。第二个是:我刚接触树莓派、linux、服务器时也是个小白,所以写这篇文章也是当作一份自己的成长录。

用树莓派搭建远程实时画面传输相关推荐

  1. 用树莓派搭建远程下载+私有云盘(中篇)

    用树莓派搭建远程下载+私有云盘(中篇) 上一篇介绍了跟树莓派的第一次亲密接触,如何给树莓派烧录系统.查找内网IP.如何SSH连接树莓派,本章介绍如何安装迅雷远程固件,将树莓派打造成迅雷远程下载服务器. ...

  2. 如何用树莓派搭建远程服务器 (zerotier)

    如何用树莓派搭建远程服务器 (zerotier) 文章目录 简述 什么是zerotier 安装 注册 树莓派端安装(linux类均可使用该方法) 安装软件 添加网络 配置自启动 安卓手机安装 添加网络 ...

  3. 用树莓派搭建远程下载+私有云盘(上篇)

    #用树莓派搭建远程下载+私有云盘(上篇) 本文将介绍如何使用树莓派搭建一个远程下载电影,连接智能电视播放电影,集私有云盘为一体的生活好助手哦: 文章目录 起因 完成效果 网络结构 关于硬件及价格 为树 ...

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

    /*本文系湛江市第十七中学星火创客团队及岭南师范学院物联网俱乐部原创部分参赛项目,转载请保留声明 */ 一.项目背景与目标: 此项目基于一个师弟的留言:如何实现在学校的校园网(办公网)内实现内网穿透. ...

  5. 树莓派搭建远程视频监控教程

    第一步安装CSI摄像头 请注意安装摄像头或是拆除摄像头树莓派都必须断电,否则会烧坏摄像头 第二步.更新数据 sudo apt-get update 第三步.运行树莓派配置工具来激活摄像头模块 sudo ...

  6. 【树莓派-网络监控(5)前端搭建】基于iframe标签,集成监控实时画面与遥控功能,完成网络监控的搭建与调试

    前期内容提要: [树莓派-网络监控(1)分析准备]基于树莓派搭建可视化可远程遥控网络监控--工程分析及前期准备 [树莓派-网络监控(2)画面传输]基于mjpg-stream实现监控画面的传输 [树莓派 ...

  7. 采用keras深度学习框架搭建卷积神经网络模型实现垃圾分类,基于树莓派上进行实时视频流的垃圾识别源代码

    一.项目概述 简介:该垃圾分类项目主要在于对各种垃圾进行所属归类,本次项目采用keras深度学习框架搭建卷积神经网络模型实现图像分类,最终移植在树莓派上进行实时视频流的垃圾识别. 前期:主要考虑PC端 ...

  8. 无线远距离WiFi模组,CV5200远程实时传输应用,无线mesh自组网方案

    无线传输是利用无线电磁波进行数据传输.在数字化高度发展的时代,有线的传输已经无法满足时代发展的需求,无线的到来成为解决有线所困扰的问题关键. 拥有低成本.高效快速搭建.智能灵活远程传输等功能,成为当前 ...

  9. 使用树莓派搭建直播平台实现b站实时直播

    手头有一个暂时闲置的树莓派,就想把他利用起来,于是就想用树莓派搭建一个直播平台实现b站24小时实时直播. 具体步骤: 参考鸣谢:https://blog.oliverxu.cn/2019/02/07/ ...

最新文章

  1. YCProgress自定义百分比进度条
  2. 自学python要看哪些书籍-学习Python编程的最好的7本书
  3. mysql 返回mysql,mysql函数返回表
  4. [云炬创业学笔记]第一章创业是什么测试8
  5. mysql关联查询去重_MySQL外键和高级查询(连接查询、联合查询、子查询、去重查询)...
  6. CAS (1) —— Mac下配置CAS到Tomcat(服务端)(转)
  7. sap.ca.ui.utils.busydialog - scenario1 - opportunity opened
  8. CSS定义字体间距 字体行与行间距
  9. AOJ 0525 Osenbei【穷竭搜索】
  10. 2008年具有高校自主选拔录取资格的考生名单 - 江苏版
  11. 二叉树前序中序,后序中序,公共最近祖先的实现
  12. 工作那些事儿(8)- 废旧立新
  13. 如何下载python模块_python中模块包的离线下载教程
  14. python实现一个QQ群聊天机器人
  15. studioone机架效果模板_studioone3机架效果包
  16. Windows优化大师下载| Windows优化大师下载
  17. excel如何全部取消隐藏_全部隐藏!
  18. 2021年Android发展前景怎么样?Android发展前景分析
  19. HTML、CSS面试题
  20. Nessus8.15安装不限IP(win10)

热门文章

  1. Navicat窗口很大怎么解决
  2. 周志华机器学习(二)
  3. 如何同时使用内网和外网
  4. 职场小故事,工作大道理——动物王国(11)
  5. 【综合类型第 21 篇】声明:更改 CSDN 博客昵称
  6. 银时之魂服务器端文件,银时之魂电脑版 银时之魂PC版安装教程
  7. 小清新的jQuery 幻灯片jQuery ck-slide 图片轮播
  8. 工行、建行、农行的 IT 架构是什么样的
  9. 更好用的运动搭档,轻松提升健身质量,咕咚X3RE运动手表体验
  10. fancybox 使用方法