手把手教你树莓派实现简易室内监控系统(A) - Bonjour_Monde

时间:2024-04-17 21:30:47

    第一次写博文,有很多疏漏之处,然后受逼乎影响较深,希望大家多多包涵!

_______________________________________________分割线是这样画的吧___________________________________________________________________________________________________

    首先,你得有一个树莓派,而且已经配好ssh(推荐xshell5),这里我不推荐用什么远程桌面,因为很卡。

    第一步,打开摄像头ENABLE选项(不然摄像头没法工作)

    输入

1 sudo raspi-config 

   按照 5.interfacing  options ->P1 camrea->select->enable->ok就可以打开摄像头了,是不是很简单呢?

    第二步,下载必要的库,mjpg-sreamer是必须要的。

   大家可以到https://github.com/jacksonliam/mjpg-streamer/archive/master.zip上下载必须的库文件,然后要导入到树莓派上,我用的是FlashFXP,很方便的就把文件移到树莓派上了。

            

                但是这款软件要钱啊,很贵。大家也可以直接这样:

wget https://github.com/jacksonliam/mjpg-streamer/archive/master.zip

    直接在树莓派上下载。

    第三步:安装辅助工具,敲下如下两行。

sudo apt-get install libjpeg8-dev
sudo apt-get install cmake

    其中编译mjpg-streamer需要上面那个库。对于一个大工程,编写makefile实在是件复杂的事,于是人们又想,为什么不设计一个工具,读入所有源文件之后,自动生成makefile呢,于是就出现了cmake工具,它能够输出各种各样的makefile或者project文件,从而帮助程序员减轻负担。

    这里,小编有时候会忘了自己是否已经安装了这个那个库,不妨用这个技巧:

dpkg -l               

                                                           

    你所有安装的库都会显示出来。也可以用以下命令去具体查询哪一个软件。

dpkg -l|grep 你要查的软件名   

                                     

    如图,这种情况说明你已经安装了vim。

    第四步,解压和编译mjpg-streamer工程文件。

 

   下载的是压缩包需要先解压

unzip master.zip

 

         首先,我们先找到安装文件的位置,可以直接ls,找到之后就敲:

cd  mjpg-streamer-master/mjpg-streamer-experimental/

       再接着:

make clean all

哗哗出现一大堆东西,只要没有error,你就可以进行下面操作:

 

   第五步:开启摄像头(raspicam;USB摄像头)

  

./mjpg_streamer -i"./input_uvc.so" -o"./output_http.so -w ./www"

    对于USB摄像头:

./mjpg_streamer -i "input_uvc.so" -o "output_http.so -w ./www"

下面以树莓派摄像头为例说明:

 

    这个命令是直接利用的8080端口,显示的是demo网站,在你的地址栏敲http://你树莓派的ip:8080/stream.html,不出意外,你就能看见:(我用的是火狐浏览器)

很帅的小伙啊,有木有。(不会告诉你那就是我啦!)

————————————————————————————————————认真的分割线————————————————————————————————

如果只是想看画面的画还有一个命令:

./mjpg_streamer -i "input_rpicam.so" -o "output_http.so -p 8090"

这个可以指定端口输出:

 

之前还出现图像模糊的情况,结果发现是镜头纸忘了取了,/emoji

之后我想起来,网上很多教程是命令带参数的,但是我怎么敲都不行。我看了一下帮助

 ./mjpg_streamer -h

这应该是最最官方的说明吧。出现很多信息,这说明你的摄像头正在运行。我运行USB摄像头也行,但是也有很多bug,这是因为我的usb摄像头只支持YUV格式的。

 1 MJPG Streamer Version.: 2.0
 2 i: Using V4L2 device.: /dev/video0
 3 i: Desired Resolution: 640 x 480
 4 i: Frames Per Second.: -1
 5 i: Format............: JPEG
 6 i: TV-Norm...........: DEFAULT
 7 i: Could not obtain the requested pixelformat: MJPG , driver gave us: YUYV
 8     ... will try to handle this by checking against supported formats.
 9     ... Falling back to YUV mode (consider using -yuv option). Note that this requires much more CPU power
10 UVCIOC_CTRL_ADD - Error at Pan (relative): Inappropriate ioctl for device (25)
11 UVCIOC_CTRL_ADD - Error at Tilt (relative): Inappropriate ioctl for device (25)
12 UVCIOC_CTRL_ADD - Error at Pan Reset: Inappropriate ioctl for device (25)
13 UVCIOC_CTRL_ADD - Error at Tilt Reset: Inappropriate ioctl for device (25)
14 UVCIOC_CTRL_ADD - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
15 UVCIOC_CTRL_ADD - Error at Focus (absolute): Inappropriate ioctl for device (25)
16 UVCIOC_CTRL_MAP - Error at Pan (relative): Inappropriate ioctl for device (25)
17 UVCIOC_CTRL_MAP - Error at Tilt (relative): Inappropriate ioctl for device (25)
18 UVCIOC_CTRL_MAP - Error at Pan Reset: Inappropriate ioctl for device (25)
19 UVCIOC_CTRL_MAP - Error at Tilt Reset: Inappropriate ioctl for device (25)
20 UVCIOC_CTRL_MAP - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
21 UVCIOC_CTRL_MAP - Error at Focus (absolute): Inappropriate ioctl for device (25)
22 UVCIOC_CTRL_MAP - Error at LED1 Mode: Inappropriate ioctl for device (25)
23 UVCIOC_CTRL_MAP - Error at LED1 Frequency: Inappropriate ioctl for device (25)
24 UVCIOC_CTRL_MAP - Error at Disable video processing: Inappropriate ioctl for device (25)
25 UVCIOC_CTRL_MAP - Error at Raw bits per pixel: Inappropriate ioctl for device (25)
26 o: www-folder-path......: disabled
27 o: HTTP TCP port........: 8090
28 o: HTTP Listen Address..: (null)
29 o: username:password....: disabled
30 o: commands.............: enabled
31 [-fps | --framerate]...: set video framerate, default 5 frame/sec
32 [-x | --width ]........: width of frame capture, default 640
33 [-y | --height]........: height of frame capture, default 480
34 [-quality].............: set JPEG quality 0-100, default 85
35 [-usestills]...........: uses stills mode instead of video mode
36 [-preview].............: Enable full screen preview
37 [-timestamp]...........: Get timestamp for each frame
38 -sh  : Set image sharpness (-100 to 100)
39 -co  : Set image contrast (-100 to 100)
40 -br  : Set image brightness (0 to 100)
41 -sa  : Set image saturation (-100 to 100)
42 -ISO : Set capture ISO
43 -vs  : Turn on video stablisation
44 -ev  : Set EV compensation
45 -ex  : Set exposure mode (see raspistill notes)
46 -awb : Set AWB mode (see raspistill notes)
47 -ifx : Set image effect (see raspistill notes)
48 -cfx : Set colour effect (U:V)
49 -mm  : Set metering mode (see raspistill notes)
50 -rot : Set image rotation (0-359)
51 -stats : Compute image stats for each picture (reduces noise for -usestills)
52 -drc : Dynamic range compensation level (see raspistill notes)
53 -hf  : Set horizontal flip
54 -vf  : Set vertical flip
55 ---------------------------------------------------------------

但是上面也有很多有价值的参数 比如-x -y -fps,这样我试着敲

./mjpg_streamer -i "input_raspicam.so -quality 100 -x 800 -y 640 -fps 20 " -o "output_http.so -w ./www"

 

成功了!但是画面很卡,多少帧每秒,大家试试就知道啦。

然后教程就到这里了,如果要结束监控,敲ctrl + c就行了。

如果有什么问题,或者有更好的方法欢迎留言!

做监控的话,还要开发一下这个界面,能实现拍照,截屏,保存的基本功能。

下一篇:内网穿透实现外网访问

参考资料:(感谢各位大佬)

 1 https://jingyan.baidu.com/article/c33e3f48e88806ea14cbb57b.html
 2 
 3 http://tieba.baidu.com/p/3981484977?traceid=
 4 
 5 http://shumeipai.nxez.com/2017/05/14/raspberry-pi-mjpg-streamer-installation.html
 6 
 7 http://shumeipai.nxez.com/2014/09/21/raspicam-documentation.html
 8 
 9 https://dotblogs.com.tw/bowwowxx/2015/06/08/151511
10 
11 https://github.com/jacksonliam/mjpg-streamer
12 
13 http://blog.****.net/blueslime/article/details/12429411
14 
15 http://blog.****.net/zhaole20094463/article/details/7026252