首页 > 编程知识 正文

树莓派支持的摄像头,树莓派运行摄像头

时间:2023-05-03 10:50:02 阅读:185738 作者:3929

最近闲下来,看了看从公司客户那里拿来的草莓馅饼,又想起了现在流行的各种智能硬件,突然想学草莓馅饼,于是用草莓馅饼做了家用网络摄像头,解闷。

首先,从网上知道,草莓馅饼的配置、价格等,做好前期工作,然后得到物理机器(草莓馅饼3B )。 几个零件也少不了,所以一起买了。 例如,电源线、机箱、风扇、草莓馅饼是tf卡) microSD )作为存储设备,所以tf卡也很重要,索性不在家也可以。最后,是CSI接口的照相机。 买官方的东西要100多元,而非正式的东西20多元就能买到。 作为初学者已经足够了。

拿到草莓馅饼后,我等不及要先装上。 先贴上散热片,装上风扇和摄像头,最后购买的9层双色盒子把草莓馅饼包得严严实实的,虽说严密,但需要暴露的接口也不少,以后添加新配件的时候,不需要把盒子完全拆开

硬件初步连接完成后,接下来是软件部分,首先是操作系统。 草莓派的操作系统非常多,大多是基于linux的。 为了安全起见,我选择从官网下载最新的系统映像。 当然,下载官方提供的形象是最好的。 因为网上大多数教程都是针对官方系统,第三方系统可能存在各种漏洞,对初学者不太友好。

是下载系统后将系统写入TF(microsd )卡的时候了。 我在用usb tool image。 这是一个带有Windows界面的图像画笔工具,非常直观和方便。 比以往的工具win32磁盘图像管理器更容易使用。 例如,压缩格式支持、中文目录名称支持等。 接下来的操作非常简单。 首先将存储卡放入卡片盒,插入电脑,启动usb tool image。 (可以在启动后插入。 )在界面左侧选择u盘图标,然后单击Restore按钮选择并确认下载的图像文件。 之后,根据机器的性能和tf卡的记忆速度,磨练和等待过程。 一般几分钟就结束了。 PS :文件加载完成后,可能会看到windows格式提示。 tf卡被读入系统映像,windows找不到已知良好的文件系统,请注意是否格式化。 在这种情况下请忽略。

系统终于完成了。 下一个工作是把tf卡插入树状图,连接HDMI视频电缆,最后连接电源线,正式启动树状图。 如果一切都OK的话,就可以在显示器上看到草莓派系统的整个启动过程。 因为是第一次启动,所以系统还无法连接任何网络,没有任何输入设备。 这里建议连接usb的鼠标和键盘,以便第一次操作草莓馅饼。 关于草莓派的桌面、配置、菜单等可以在网上搜索很多。 这里不再详细叙述,大家都能找到。 对我来说,摆脱鼠标、键盘、HDMI电缆的束缚是最重要的,所以第一个操作是连接到wifi。 然后,将wifi设置为在启动时自动连接,这在图形界面中很简单。 在右上角的菜单栏中选择wifi,输入密码即可。 当然,也可以如图所示编辑/etc/wpa _ supplicant/wpa _ supplicant.conf文件,然后在命令行中进行操作。 第二步,运行sudo raspi-config,根据需要打开ssh,通过另一台电脑连接草莓馅饼,打开ssh功能以便草莓馅饼可以通过网络远程操作。 如图所示,终于可以大功告成,摆脱鼠标键盘和HDMI电缆,制作出安静的小板子。

那么,下一个照相机出现了。 树莓的官方系统支持摄像头。 该有的软件都提供了,不需要用户额外开发,对于沉稳的老用户和初学者来说是非常朴素的事情。 当然,作为后期有更复杂APP的老用户,这还不够。 干脆官方系统提供关于python和摄像头操作的python开发包,让用户可以解决更高级的问题今天作为初学者,我们基本上用就可以了。 让我们看看附带的工具是如何使用照相机的。 首先启动摄像头模块,在sudo raspi-config命令后启动摄像头。 如图所示

接下来,用相机拍一下截图吧。 首先,使用raspistill命令运行raspistill -v -o /tmp/a.jpg。 这样就简单地用相机拍摄了图像。 真不敢相信你能把/tmp/a.jpg下载到自己的电脑上看。 -v参数表示详细进程的输出,-o表示输出文件路径,看起来非常简单。 当然,raspistill不仅仅是这两个参数。 可以使用raspistill —help命令了解更复杂的功能,例如图像参数旋转—rotation。

照相机

style="text-indent:50px;">

成像照片(由于是倒置的,所以拍出来的是反的,效果还行)

说完摄像头截图,该说一下截视频命令raspivid命令了,运行raspivid -o /tmp/myvideo.h264 -t 10000 -w 1280 -h 720 将输出一段1280x720, 并且时长为10秒的视频,raspivid 的输出是一段未压缩的 H.264 视频流。

虽然用了raspivid命令后能够截视频了,但离我们的网络摄像头还有一定的差距,我们不能每次都使用命令生成视频后下载到本地观看,这样也太笨拙了,我们需要的是可以实现网络查看的摄像头,说到这里,需要使用上新的工具:vlc,这是一款媒体播放器,并且可以通过网络以流的方式播放视频,这样就可以将raspivid与vlc结合起来实现网络摄像头的功能了。首先是安装vlc,sudo apt-get update;sudo apt-get install vlc,然后将raspivid的输出通过linux管道输出给vlc,然后由vlc传输给客户端进行实时播放,命令如下:

raspivid -o - -t 0 -w 640 -h 360 -fps 25|cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264

从命令上大致可分析出,我们的输出流为640x360的视频,从标准输出中输出,并且从vlc的标准输入中传输给vlc程序处理,网络端口为8090,接就是网络另一端的客户端,vlc支持的平台很多,我们可以在windows, ios, 安卓上都下载到它并使用,以ios手机为例,我们下载了vlc后,打开网络串流,输入http://192.168.1.247:8090 (地址为树莓派分配到的ip地址),这样就能在手机端实时的看到网络摄像头的视频了。

手机app截图

说到这里,我们已经有一个最简单的网络摄像头了,虽然没有存储,没有报警,没有转向功能,但至少已经可以通过网络实时看家里的情况了。。。。。。mmmmmm,但好像还缺了点什么,虽然可以看,但当我离开了家,我就无法使用192.168.1.247这个内网的ip地址访问摄像头了,而且现在ipv4资源那么紧张,家里的网络多数没有公网IP,做端口映射的机会都没有,这时,我就需要一个可以穿透内网,访问摄像头的工具了,首先进入脑海的就是大名鼎鼎的花生壳了,这是oray公司的主打产品,可提供内网穿透功能,我们只需要将花生壳运行在树莓派上,并且将刚刚的8090端口映射到公网,就能在任何地方访问我的树莓派摄像头了。

但是花生壳内网穿透功能,是利用服务器中转,所以速度上受限,而且所有人都可以访问到它,安全性也稍差,最重要的是花生壳是tcp应用层上的转发,所以只能针对特定应用,如果我要访问ssh,必须再添加一个映射,每访问一个新的应用就要添加一个,而且只支持tcp协议。所以使用花生壳的念头打消,转而使用oray公司的另一个产品“蒲公英”,这是一款智能组网产品,也就是人们常说的虚拟局域网(VPN),相对于我的应用,蒲公英的优势在于更私密,更快速,更全面。

更私密:不像花生壳,蒲公英只有被管理员加入到虚拟局域网的设备才能互相访问,而不是任何人都可以访问。并且支持加密传输。

更快速:蒲公英支持p2p,也就是说如果p2p打通,完全可以走用户自己的网络,而不受中转服务器的限制。

更全面:由于是虚拟局域网,所以就像局域网一样,几乎支持所有ip层以上的协议,不必像花生壳一样为每一个应用开一个映射。

蒲公英的产品众多,从软件支持windows,ios,Mac,安卓,linux开始,到硬件支持路由器,nas,第三方嵌入等,有众多的平台可供选择,而我选择了蒲公英路由器硬件,和众多的软件平台,为什么要选路由器呢,首先是家里的路由器太老了,正好想更换,另一方面我选择的蒲公英x5系列路由器是千兆网口,符合现在需求越来越高的网络环境,而且带usb口,可外接存储设备,以及2.4g/5gWifi,支持局域网开机,最最重要的是蒲公英路由器内还集成了花生壳功能,真是一举两得。

蒲公英路由器到手后,开始做一些初始工作,如配置wifi,局域网ip,管理员密码等。由于它是一款智能路由器,所以内部可用的功能很多,如行为管理,全端口,远程开机,花生壳,QoS,文件存储等,虽然没有一些专业路由器功能多,但对于我来说够用了,必尽人家蒲公英是以智能组网为卖点的产品。

初步工作完成后,下面就组网工作了,首先登录https://pgybox.oray.com,输入自己的oray帐号和密码,然后在蒲公英智能组网菜单,选择创建网络,网络类型选择对等网络即可。

默认情况下,免费版用户支持拥有5个成员组网,其中3台路由器,和两个客户端,对于我来说,已经够用了。由于之前在初始化我的路由器时,已经绑定了我的oray帐号,所以在可选成员列表中可以看到自己的蒲公英路由器,另外就是两个可用的客户端成员,不管怎么样,先将它们统一选入我的组,然后点击创建,完成。这时,我的路由器已经进入了组网状态了。然后我先在手机上下载蒲公英,同样使用自己的oray帐号登录,这时,你会发现组内就是我刚刚选入的组成员,包括我的路由器,试着在手机上使用网络工具ping一下我的路由器lan口ip,发现马上通了,如果不信,可以将手机上的蒲公英软件关闭,再ping一次(注意不要将手机连接在蒲公路由器的wifi下,这样测试毫无意义)。

测试成功后,该我的树莓派登场了,首先将树莓派连接上蒲公英的wifi,然后再尝试去ping,这时ping的将是树莓派的ip地址(10.168.1.247),你会发现同样能通,这时我们用手机自带的vlc,打开之前http://10.168.1.247:8090 ,同样也看到了树莓派的摄像头画面,这时就代表了我可以在任何地方查看家里的树莓派了摄像头。

由于我平时在公司的时间非常多,所以在公司的windows上安装一个蒲公英客户端很有用,一方面不用使用手机的流量,一方面也能获取更好的体验,必尽电脑的性能远远强于手机。于是下载了windows客户端,同样的方式,登录。发现windows版可以显示每个成员的连接方式,很明显我的公司电脑和家里的蒲公英使用了p2p连接,同时还能显示路由器下面接的子设备(包括我的树莓派)。这时再打开电脑上的vlc,查看摄像头,画面明显更流畅一些。大功告成。

 

终于完成了网络摄像头的基本功能,下面将是进一步的针对自己的情况进行优化,由于树莓派目前只是学习使用,不在家的时候一直开着也很麻烦,不仅浪费电,还有风扇噪音,但需要时,又希望能够马上打开,于是琢磨着买一个智能插座,说到智能插座,市面上太多了,这里我选择仍然是oray公司的向日葵智能插座,这款插座与一般的插座不一样的地方在于它除了定时和不定时启动关闭电源外,还支持网络wol开机,这样,通电和开机,能一体化搞定,于是拍下了这个宝贝。由于这个插座是向日葵产品,所以先要在手机上下载一个向日葵app,然后登录自己的oray帐号,选择设备,点击右上角的+号,选择添加智能硬件,并添加插座,按照提示顺利添加插座后,就可以通过手机随时控制家里的插座了。这时我的树莓派再次登场,将电源插在智能插座上,完美。

 

这样,一套可供我在公司随时学习树莓派,又能查看网络摄像头的完美方案做好了,每当我在公司希望查看树莓派时,首先在手机上操作向日葵插座让树莓派通电,然后在电脑上打开蒲公英,再打开vlc,就能查看到摄像头画面了,另外还可以通过putty这样的ssh工具进后树莓派后台了。

   

回想一下,这个方案仍然有一些不确定因素和不完美的地方,比如公司与家里的通讯速度,如果不能p2p,看视频不能很流畅,当然,这需要在树莓派上对网络视频输出有更好的压缩,所幸公司到家里的速度可以达到的70-80Mbits/s,在p2p模式还是很给力的。在公司看家里的nas电影都绰绰有余。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。