利用Raspberry 树莓派制作简单的图片监控系统+家庭小nas
最开始的时候接触树莓派应该是在4月初,但是因为家里被盗,于是产生了安装一个监控的想法:
于是乎上某东搜索了一番,因为家里已经装修好了, 如果需要布线太多的话,反而会破坏整体格局,非常显眼不说,还会破坏整体的环境,让人会有一种很突兀的感觉,首先想到的自然是无线监控神像头,从某东上找了很久,从现在来看,价格都还算好,300左右也能买到一些,但是当初4月份的时候我找的时候没有一个是低于450的,而且得配一个录像机或者用旧电脑当主机,用来存放视频资料,这样一来,还需要专门腾出一个空间来存放主机或者录像机,而且电费也是一笔不小的开支(相对于我选定的方案来说),考虑到视频文件传输的持续性,对无线路由器的考验也是一个方面,家里对wifi的使用还是有依赖性的:智能电视,手机,电脑,还有IPTV,如果加上视频监控,可能还要升级双频千兆无线路由器,这也是一笔开支;
经过咨询在本地电脑城做监控的同学,同学告知无线监控不够稳定,价格稍高,如果我要整的话,还不如用模拟头,他那里有一套旧的录像机和一个模拟头,放着也没用,如果要用,可以去拿。但是我去现场看了那个模拟头的效果,真心感觉就算我放在客厅的一头,从门里进来也看不清楚,感觉那像素就和电脑上用的摄像头差不多,不够清晰,可能只有50W左右的像素;遂放弃模拟头;如果选用高清网络摄像头(非WIFI),因为当初装修的时候,就是打定主意用的wifi网络,所以布线没考虑到监控,预留的线不够用,那就需要布线,此方案也被否定;
我觉得以现在的贼来说,如果安装了需要录像机的视频监控头,万一贼懂行,那就能破坏录像机或者硬盘,这样,视频监控就没有意义了。而且,从费用上来说,如果安装了普通的安防监控系统,一个监控头是不划算的, 最普通的录像机是四路的,从性价比上来说,装四个头是最划算的,这样一来,一次性的投资费用会比较高,虽然相较于被盗的损失来说不算什么,但是本着钱要花在刀刃上的原则,和领导一直商议决定放弃这个方案。
使用隐蔽的微型摄像头方案,据同学说,这种监控市场里是不允许公开叫卖的,只能上某宝淘一个,但是某淘的电子产品鱼龙混杂,说的天花乱坠,实际效果又可能用不上,而自己又想马上实现效果,于是就想到了能不能有一个系统,最好是利用wifi网络,存储在本地,但是如果需要,可以根据特定的条件,触发后传输到网络的某个地方,网盘,邮箱等。
正当我一筹莫展的时候,
刚好有在张大妈这里看到关于树莓派的资料,于是就想到利用树莓派结合官方的树莓派摄像整一个相对比较隐蔽的监控,同时把图片和视频上传到网上保存,这样,就算监控被破坏,数据不会被拿走。对破案会有很大的帮助,能最大限度的减少损失,最最称心的是,这个方案,只是需要给树莓派这个信用卡大小的主机找个安置的地方,另外给他一个电源就搞定了,其他的都利用现有的wifi和有线网络,加上自己的的网络编程能力,后期的扩展性会好很多,因为刚接触树莓派,对树莓派专用摄像头的性能不是很了解,对视频录制能力也存在疑问,但是对他500W像素的高质量照片倒是很满意,然后再网上也找到一个视频监控的替代方案:yeelink的图片监控,利用固定时间间隔的一张张照片组成一个时间轴,从一定程度上也和视频监控差多不。
这样一来,基本就确定了利用树莓派来架设我的监控系统的方案了:花钱少,布线少,家里布局改动小,虽然由视频监控改成了图片监控,但是后期还能继续改进
但是问题同样随之而来,yeelink平台是一个创业公司的初创平台,平台的稳定性和后期是否免费等问题也存在不可预知性,但是以目前的情况来说,用个一年应该没问题,利用这个时间,完全可以利用web方案把摄像头上保存的图片自己保存到自己的付费空间是上去,或者直接保存在树莓派上的外接硬盘里,甚至可以结合人体红外检测模块触发视频录制功能,这样一来,视频和图片监控相结合,即能节省存储空间和网络带宽,也能很好的起到防盗作用。
从刚开始啥都不懂,到处百度和google,网上找的资料都不是很如意,甚至yeelink官方的教程都不能用,无法正确上传文件。通过对网上资料的多次比对。终于整成功了。
好了。话不多说,系统的安装,网上的的教程很多,张大妈这里也一篇,我就不贴了。
本文主要讲图片监控和nas下载部分。
首先在注册Yeelink帐号,然后添加一个新设备:
然后新增一个传感器:
yeelink这边设置好了,下面来搞定树莓派上的设置,创建yeelink.sh文件:
vi /home/pi/yeelink.sh
很多人喜欢用nano,我喜欢用vi,因为之前玩freebsd的时候用习惯了。
raspistill -w 1024 -h 576 -o /home/pi/image.jpg
curl --request POST --data-binary @"/home/pi/image.jpg" --header "U-ApiKey:此处填写你的APIKEY" --url http://api.yeelink.net/v1.0/device/176/sensor/121/photos(这里用自己的url代替)
然后按Ctrl+X保存退出 其中http后面的连接,你要换成自己的。 如果用的是usb摄像头的话,
需要先安装fswebcam,它能实现用USB摄像头拍照的功能。
sudo apt-get install fswebcam
然后再创建yeelink.sh
sudo fswebcam -d /dev/video0 -r 320x240 --bottom-banner --title "RaspberryPi @ Yeelink" --no-timestamp /home/pi/image.jpg
curl --request POST --data-binary @"/home/pi/image.jpg" --header "U-ApiKey: 此处填写你的APIKEY" --url http://api.yeelink.net/v1.0/device/176/sensor/121/photos(这里用自己的url代替)
给这个脚本增加可执行权限
chmod +x /home/pi/yeelink.sh
现在执行下这个命令看上传成功了没有/home/pi/yeelink.sh
如果发现没有运行,请确定你给了yeelink文件可执行权限, 因为很多时候,安装系统之后,我们都会增加一个新的账户,所有的信息处理都是通过这个用户来处理的,而不是pi用户。 请把yeelink.sh文件保存到正确的用户目录并给予可执行权限。 既然做监控,当然不希望每次都来运行一下这个程序,开机自动运行是必须的: 运行 crontab -e 命令,输入以下内容:
*/1 * * * * /home/pi/yeelink.sh
这个是一份中一张图,这个频率其实不高,对贼来说,可能就已经晃过去, 所以,可以换成更小的时间,但是yeelink平台对此有限制。时间间隔不能小于10秒,否则Yeelink不认。
这样图片监控就算是完成了。
现在还有一个更稳定的图床空间:百度云,利用Python的授权功,可以直接保存到百度云盘里,而且,这个比较私密,不像yeelink一样,自己的传感器是公开的, 只有yeelink自家的传感器是不公开的。
接下来就是做一个家庭小nas,用来下载电影,并作为家庭视频存储中心。
我买的B型树莓派,内存是512M的,如果光光运行一个CPU和内存占用都可以忽略不计的图片监控来说。未免也太浪费了,不符合DIY,不浪费的宗旨,况且,家里20M的光纤也是白天没人用,就晚上的用这几个小时,忒浪费了。严重浪费了给电信交那么多银子时候的纠结和”伟大的抱负的心“。
对于一个拥有智能电视,又喜欢看电影和美剧的家庭来说,卡顿是不可忍受的,能看到最近的剧集也是最起码的要求,最好是有个机器人在我上班的时候帮我们把节目给准备好。我回家的时候就能看到新鲜出炉的美剧,最最关键的是,我在单位突然听说某某电影已经出来了,也有人给了种子的时候,我能立马安排他进行下载。
嗯,有了树莓派,这些不都是小菜一碟了么?
在树莓派里面装一个bt下载软件不就可以了?,在结合手机端APP,进行远程控制,这就是一个智能影音系统的雏形嘛。
于是乎就开始搜索软件,很多人都习惯了用迅雷下载,但是很多的PT原盘是不支持迅雷下载的,但是我又不能几个软件多装,毕竟这会影响树莓派的性能,不要和我迅雷离线,你从迅雷离线上下载的东西下载到本地也是需要时间的,最最主要的是迅雷离线是需要软妹币支持的,如果你有,恭喜你,那么你就爽了。
这时Aria2和transmission进入了我的视线。
这两个软件的用户群都很大,两个都可以通过手机app和软件进行管理。前者的web客户端功能似乎更强大一点,还能支持迅雷离线,如果你是土豪,有迅雷会员,首选Aria2。
很可惜我不是土豪。所以我选择了transmission。
我并没有因为选择transmission而降低了生活品质,因为transmission已经能实现我所有的关于家庭影院的梦想了。
既然要做nas和下载机,那么还有一个软件是必须的那就是samba。他就是为了共享而生的。不论windows还是安卓,又或者是其他系统,都可以通过他访问树莓派上的影视文件。就一句话,跨平台的东西就是酷!
因为有了samba的跨平台能力,树莓派的外接硬盘就可以不用ntfs格式,因为前面还安装了监控系统,又是放在一个比较隐蔽的地方,当然不能天天去把硬盘拿下来,对吧?就让她当一个安静的地下工作者呗。
好了,废话已经说了很多了,开工:
首先,把硬盘给格式化成ext4格式,在windows或者树莓派里格式化都可以。
在插入硬盘后直接运行 sudo fdisk -l 命令,就可以看到硬盘设备了。
其中的 /dev/sda1 就是硬盘的设备号
sudo fdisk /dev/sdb1
进入命令行状态:
输入m 会出来菜单
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition 注:这是删除一个分区的动作;
l list known partition types 注:l是列出分区类型,以供我们设置相应分区的类型;
m print this menu 注:m 是列出帮助信息;
n add a new partition 注:添加一个分区;
o create a new empty DOS partition table
p print the partition table 注:p列出分区表;
q quit without saving changes 注:不保存退出;
s create a new empty Sun disklabel
t change a partition's system id 注:t 改变分区类型;
u change display/entry units
v verify the partition table
w write table to disk and exit 注:把分区表写入硬盘并退出;
x extra functionality (experts only) 注:扩展应用,专家功能;
用 p 查无分区
Device Boot Start End Blocks Id System
如果无分区就新建,用n ,如果有分区,则全部删除 d。
选择 n 新建一个分区
#n 添加
#p 扩展为e;
主分区为p#1
创建第一块分区
#回车 取默认值
回车
然后#P 查看到 创建了sdb1的分区
#w 保存 并退出
格式化之前要先卸载硬盘 用umount 命令
然后格式化成ext4格式
#mkfs.ext4 -L usbdisk /dev/sdb1 带usbdisk的标签格式化
然后加载一次,mount /dev/sda1 L /media/usbdisk
ext4格式的硬盘这样加载一次后就不需要每次都设置自动加载。因为系统会自动加载,如果在用fstab里面添加命令加载会出错,导致系统无法启动到正常状态(这个具体是什么原因不知道,我自己测试的时候是这样的,可能和之前用ntfs格式的时候的设置有关系)。
reboot 重启系统,
然后 更改usbdisk目录的 用户属组合 sudo chown pi:root /media/usbdisk
然后文件夹的具体读写权限。 sudo chmod -R 777 /media/usbdisk
其中-R是把子文件夹全部递归更改权限为777
我用class10的SD卡,测试ext4格式的硬盘,拷贝速度可以达到6M +
NTFS格式的只有几百K,而且下载视频的时候cpu占用资源极高,最高有89%,时间长了之后,比如两天后,就容易死机。
so 这就是我直接选择ext4 的原因,如果要经常拿来和windows系统进行文件操作的话,还是忍忍性能用NTFS格式吧。
当然要用这个格式,还得需要安装ntfs-3g,而且需要进行设置进行自动挂载硬盘。
但是我不建议这么做,毕竟还是有windows下的ext格式文件的读取软件,虽然没有直接操作方便,一样可以替代。
综上所述,用ext4是完美的方案啦。
硬盘准备好了。那就开始软件的安装吧:
首先安装 samba:
sudo apt-get install samba samba-common-bin
然后修改配置文件:/etc/samba/smb.conf 。
因为是家庭内部共享,所以也就没必要进行安全设置,所以,删除所有配置,用以下代码替代就可以了:[global]
workgroup = WORKGROUP
netbios name = jiazhoulvke
server string = Linux Samba Server
security = share
[samba]
path = /media/usbdisk/
writable = yes
browseable = yes
guest ok = yes
改好后重启 samba 服务:
sudo /etc/init.d/samba restart
这样smb也就安装好了,现在我们已经有了一台低功耗的 NAS。
接下来就是安装BT 下载软件: transmission
她不仅仅是支持手机app,更棒的是它还可以通过 Web 界面控制!
1)首先安装 transmission :
sudo apt-get install transmission-daemon
2)然后创建下载目录,一个是下载完成的目录,一个是未完成的目录,具体目录根据你的情况决定:
mkdir -p /media/usbdisk/incomplete # for incomplete downloads
mkdir /media/usbdisk/complete # finished downloads
3)还要配置目录的权限:
sudo usermod -a -G debian-transmission pi
因为ext4格式是默认加载的,会出现无权限的情况,只要手动添加权限就好了。
chgrp debian-transmission /media/usbdisk/incomplete
chgrp debian-transmission /media/usbdisk/complete
chmod 770 /media/usbdisk/incomplete
chmod 770 /media/usbdisk/complete
4)修改配置文件 /etc/transmission-daemon/settings.json ,这是一个 json 格式的文件,配置项很多,但重点改下面这些:
下载目录位置:
"download-dir": " /media/usbdisk/complete",
未完成的下载目录
"incomplete-dir": " /media/usbdisk/incomplete",
允许Web访问的白名单地址
"rpc-whitelist": "192.168.1.*",
这个IP段要看你的路由器设置了,你懂的。
如果你需要在用手机来控制,而且在单位或者外地的时候进行控制,那么还要更下下面的设置:
"rpc-whitelist-enabled": false,
如果要更改用户名和密码:
更改一下设置:
"rpc-password":"密码" 这里直接写明码的密码就可以,重新启动后会自动加密
"rpc-username":"新用户名"
5)最后,配置好之后重启 transmission,注意以下两个命令按顺序执行,单独 restart 的话配置不会保存:
sudo service transmission-daemon reload
sudo service transmission-daemon restart
现在就好了,在浏览器中访问 IP 加 9091端口:比如: http://192.168.1.3:9091/ 。访问时输入用户名和密码,默认都是:transmission 。
你现在已经有了一个独立的 BT 下载服务器了!界面功能完备,可以做限速等设置。
关于 transmission 配置的详细信息请参考:EditConfigFiles 。
修改 transmission 用户名和密码的方法:
1)先停止服务: sudo service transmission-daemon stop
2)再此启动服务 :sudo service transmission-daemon start 。启动的时候 transmission 会自动把新密码加密。
另外,transmission 默认监听 51413 端口,最好在路由器上做个端口转发,把这个端口转到它的 IP 地址。
如果要用手机来管理transmission ,那么还要有一个支持花生壳服务的路由器,登陆花生壳并设置端口转发。
这个就是最终的成品了,从一个旧的监控摄像头上拆了两个固定杆下来,直接把官方树莓派摄像头固定在了外壳上。就是有些不雅观,重新找外壳中。
因为时间关系,人体红外检测模块一直都没有安装上去。等安装完成后,我会继续晒出百度云的使用方案。最近也入手了一个香蕉派的微信摄像头,这个摄像头还能单独使用,到时候应该能和这个摄像头组成一个监控群了~嘿嘿~
bg4xwm
校验提示文案
躺着舒服
校验提示文案
大海里的小鱼儿
校验提示文案
彩半闲
校验提示文案
agostop
校验提示文案
agostop
校验提示文案
ivxzhao
校验提示文案
小小诸葛
校验提示文案
小小诸葛
校验提示文案
武当山a
校验提示文案
美好的童年
校验提示文案
lilinana
校验提示文案
生生不息450
校验提示文案
noalone
校验提示文案
DOSSTONED
校验提示文案
虛無
校验提示文案
MAG2020
校验提示文案
cmp2027
校验提示文案
Davee
校验提示文案
昵称54838828
校验提示文案
女乃并瓦
校验提示文案
用UC快速省流量
校验提示文案
值友7258887228
校验提示文案
孖宝特供
校验提示文案
大海里的小鱼儿
校验提示文案
七月的水瓶
校验提示文案
天没亮
校验提示文案
Mithrill
校验提示文案
梦溺残沙里
校验提示文案
草芥7
请教一下,磁盘连接树莓派,那硬盘接口是什么?还有samba协议,只能理解为LINUX的共享磁盘。而NAS应该是网络文件系统的概念,比如mount 192.168.1.100:aaa .xxx这种。那么基于samba的文件共享,传输速度能达到多少?
校验提示文案
躺着舒服
校验提示文案
milkrong
校验提示文案
秋来春去
校验提示文案
路边的小野牵牛花
校验提示文案
david_lovey
校验提示文案
时光漫步rwl321
校验提示文案
kobe8tang
校验提示文案
好理由
校验提示文案
bg4xwm
校验提示文案
myicedcola
校验提示文案