查看原文
其他

项目分享| 树莓派远程监控

刘同学 达尔闻说 2021-01-17



最近接了个项目,项目中含远程监控的功能,并要求最好用网页就能查看摄像头画面。经过好几天各种翻阅资料,终于找到一个相对简单的解决方案,受达尔邀约分享给大家。

——南邮自动化科协刘同学



方案简介:借助名为“MJPG-Streamer”的web开源项目,可以在局域网中用web查看摄像头画面。之后再通过内网穿透的方式,将一个购买的域名映射到这个局域网,就可以通过web查看摄像头的画面。

经过一天一夜的测试,除了中间树莓派wifi断过一次导致网页访问失败,其余都十分顺利!我甚至还找来了放假回到全国各地的同班同学帮忙测试,测试结果也是没问题的,话不多说,接下上教程。
准备工作:树莓派烧录好系统、换源、调试好摄像头(原装或者usb摄像头都可),具备简单的终端操作知识。

正式开始,一共分两步:
01搭建“MJPG-Streamer

MJPG是MJPEG的缩写,全拼为“Motion Joint Photographic Experts Group”,一种视频编码格式。

Motion JPEG技术常用于闭合电路的电视摄像机的模拟视频信号“翻译”成视频流,并存储在硬盘上,典型的应用如数字视频记录器等。MJPEG不像MPEG,不使用帧间编码,因此用一个非线性编辑器就很容易编辑。MJPEG的压缩算法与MPEG一脉相承,功能很强大,能发送高质图片,生成完全动画视频等。但相应地,MJPEG对带宽的要求也很高,相当于T-1,MJPEG信息是存储在数字媒体中的庞然大物,需要大量的存储空间以满足如今多数用户的需求。因此从另一个角度说,在某些条件下,MJPEG也许是效率最低的编码/解码器之一。 
MJPEG 是 24-bit 的 “true-color” 影像标准,MJPEG 的工作是将 RGB 格式的影像转换成 YCrCB 格式,目的是为了减少档案大小,一般约可减少 1/3 ~ 1/2 左右。 
安装命令,在终端中输入:
sudo apt-get install cmake libjpeg8-dev wget https://github.com/jacksonliam/mjpg-streamer/archive/master.zipunzip master.zipcd mjp*g-*cd mjpg-*makesudo make install 

此时安装就成功了。

接下来开启这个局域网监控,在终端中输入:
/usr/local/bin/mjpg_streamer -i"/usr/local/lib/mjpg-streamer/input_uvc.so -n -f 30 -r 320x180" -o"/usr/local/lib/mjpg-streamer/output_http.so -p 8080 -w/usr/local/share/mjpg-streamer/www"

出现这个画面表示开启成功 ,画面中的320x180是分辨率,分辨率低才能不卡顿。注意:终端不能关,除非要结束监控。

在连接局域网或者同一wifi下的任意设备中,用浏览器打开:

http://192.168.137.45:8080/javascript_simple.html
将其中192.168.137.45换成自己的树莓派ip地址。(可通过vnc快速查看ip)
我用树莓派打开网址,看到的画面是这样的:

至此,MJPG-Streamer便搭建成功。

02内网穿透

什么是内网穿透?

有时候,我们在外想要访问家里主机的资料,要么由于主机处于家庭路由器下,是非公网IP,要么就是运营商随机分配的一个公网IP,这两种情况都很难直接连上主机获取资料。那么,有什么办法可以解决这一难题?答案就是内网穿透
这里我们借助花生壳来进行内网穿透。花生壳的优点:最简单省事的方式,不需要经常维护,随用随开;缺点:开通一年域名要6元。内网穿透的操作步骤如下:
1)首先在树莓派上下载花生壳的驱动:
http://service.oray.com/question/2680.html
2)安装:
dpkg -i phddns_rapi_3.0.3.armhf.deb

phddns_rapi_3.0.3.armhf.deb为安装包名称,可能安装包更新,名字会有变化。

3)安装成功后,将显示此树莓派的SN码、默认密码为admin以及远程管理地址。

4)配置花生壳,浏览器输入远程管理地址b.oray.com进入花生壳远程管理页面:
输入安装花生壳时生成的SN码及默认密码admin进入;
首次登录,需要进行初始化:重设密码,填写手机,发送验证码;
初始化成功,系统自动赠送一个免费域名,但是不支持内网穿透,如需使用内网穿透功能,要自行开通。
应用名称和域名自己填,映射类型选择HTTP,外网端口选默认80,内网主机填"127.0.0.1",内网端口填“8080”,然后点击开启映射服务。到这里内网穿透就完成了。
5)确保以上操作都已顺利完成,可以开始使用树莓派的远程监控服务了。
6)开始测试
首先打开一个终端输入:
/usr/local/bin/mjpg_streamer -i"/usr/local/lib/mjpg-streamer/input_uvc.so -n -f 30 -r 320x180" -o"/usr/local/lib/mjpg-streamer/output_http.so -p 8080 -w/usr/local/share/mjpg-streamer/www"

其次再打开一个终端,开启花生壳映射程序:

sudo phddns start
关闭用 :
sudo phddns stop

保持两个终端,不关闭。

此时用任意一个浏览器打开注册的域名,比如我的:http://286b3261x1.wicp.vip

如果不需要界面中这么多文字,可以点击提示中的“此处”就会出现以下画面:

最后,检验项目成果,远程测试:
我找了我初中同学——李同学来协助测试:

以下是他实时看到的画面(延迟可以忽略不计):
总结:树莓派远程监控系统的搭建有许多种方法,而我们分享的这个不需要编写代码,是最简单容易实现的方法。虽然技术含量不是很高,但可以快速满足项目开发。给正在准备玩树莓派远程监控的小伙伴们一点启示,希望对你们有帮助。
在开发项目时,我非常愿意分享自己的开发经验,附上刚刚起步的博客,希望大家一起交流:blog.csdn.net/qq_41923091
END

达尔闻项目分享系列——聚焦物联网、嵌入式、AI、FPGA等热门应用技术,开源分享原理图、代码等项目方案,做你手边的知识库。

项目分享系列集锦:

STM32物联网智能家居项目

树莓派+计算棒2完成实时人脸识别项目

嵌入式开发板的云计算平台搭建

STM32实现最简单空中鼠标

Arduino魔方机器人

STM32版“AI灵魂画手”

STM32电子相册制作

STM32+DDS自制信号发生器

利用树莓派与Web界面远程控制家电

STM32“云”音乐播放器


我们是妮mo,达尔闻创始人,只讲技术不撩汉的小姐姐。达尔闻在线教育平台旨在服务电子行业专业人士,提供技能培训视频,覆盖各细分领域热门话题,比如嵌入式,FPGA,人工智能等。并针对不同人群量身定制分层级学习内容,例如常用知识点,拆解评测,电赛/智能车/考研等,欢迎关注。

官网:www.darwinlearns.com

B站:达尔闻

QQ群:786258064

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存