烹饪一道树莓派大餐—-私有云+网络监控二合一服务器
在这个漫天飞“云”的时代,谁不想拥有一块属于自己的私有云,可是,当大家看到私有云服务器的价格也都失去了兴趣,身为学生的笔者,利用强大的树莓派,低成本打造了集网络监控、家庭NAS于一身的“智汇云”系统。
原料:
- 树莓派 * 1
- USB摄像头(最好是LINUX免驱) * 1
- 硬盘(并口串口头可以) * 1
- 路由器(12V或5V) * 1
- 易驱线(并口/串口转USB) * 1
- 网线 * 1
- 电脑ATX电源(非必须) * 1
- 对技术狂热的心 * 1
炒:改装ATX电源
STEP1:
找一个旧电脑上面的ATX电源,在开工之前我们有必要了解开关电源引脚的定义,如图1。可能有的童鞋会问为什么一定要用ATX电源,笔者在这里和大家说明一下,本系统并非一定要有ATX电源,只要能给树莓派、硬盘、路由器等设备提供足够的电流即可,之所以这样做,一方面考虑系统以后有更好的扩展性,另一方面电源线变少了,看起来也更加整洁(笔者有轻微强迫症和完美主义)。
STEP2:
把多余的线用电烙铁拆下,引出下面几根线来,黑色 GND,红色 +5V,绿色 PS-ON,灰色 PW-OK,紫色 5VSB(可以留着以后用),还有一个就是硬盘的电源线(注意硬盘的电源接口,如果电源上没有串口硬盘的电源接口,恰好您用的又是串口硬盘,那么就会用到转接线了),如图2,
其他的线就可以拆下来了。经过简单改造便成了我们“智汇云”系统的电源了。
STEP3:
更换螺丝,把开关电源的两个对角的螺丝换成比较长的,这样做不仅固定了电源而且拆卸也不会太麻烦,如图3。
蒸:整机组装
STEP1:
树莓派没有串口和并口硬盘的接口,那么就要借助易驱线打通硬盘和树莓派,如图4。
STEP2:
感谢学校的大力支持,提供了这么好的“机箱”,首先在上面打好孔,依次固定好树莓派,硬盘,电源,并连好各类数据线和电源线,(网线一端连接树莓派,另一端连接路由器的LAN口)如图5、图6。
系统电源的连线图,(图6右下角,如果路由器是5V供电,请把电源的路由器单元更改为5V输出)开关控制整个系统的供电,5VSB不受开关的控制,只要电源连接上市电,就会产生稳定的5V。
给大家来一张全景预览,如图。
煮:**配置服务器的周边设备**
STEP1:
把硬盘在电脑上格式化成NTFS格式,这会比在树莓派上格式化快很多。
STEP2:
给树莓派分配静态的IP地址:系统上电,电脑连接路由器,有线或无线均可,并进入后台管理界面,查看客户端列表,找到树莓派,并复制其网卡的MAC地址,在“静态地址分配”这一栏点击“添加条目”,输入树莓派网卡的MAC和你想设定的IP地址,重启路由器,如图
STEP3:
在PC端用SSH软件(如PuTTy)远程登录树莓派,默认用户名pi、密码raspberry。如图。
STEP4:
登陆之后,运行sudo fdisk -l,然后会显示已挂载的硬盘的情况,如图7。
/dev/mmc是树莓派系统的分区,mmc指的是SD卡。/dev/sda就是我们插上的80GB硬盘了。
STEP5:
安装ntfs-3g模块,于是我们就能读写NTFS格式的硬盘了:
apt-get install ntfs-3g
STEP6:
创建目录,以这个目录作为挂载点挂载硬盘。
mkdir /media/software mkdir /media/materialmount -t auto /dev/sda2 /media/softwaremount -t auto /dev/sda5 /media/material
蒸:搭建基于SAMBA的文件服务器
STEP1:
运行以下命令安装SAMBA
sudo apt-get install samba sudo apt-get install samba-common-bin
STEP2:
备份并更改SAMBA设置
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak sudo nano /etc/samba/smb.conf
行首的#表示这一行是注释,也就是说这一行的配置不会生效。首先来启动用户安全,按下CTRL-W然后输入”security”,来找到相关的选项。去掉“security = user”这一行前面的注释符号,按CTRL+V使光标移动到文本末尾,添加网络共享,数目取决于自己的需求。格式如下:
[Cloud] //设置分享的目录的名称 comment = Test share path = /media/ valid users = @users force group = users create mask = 0660 directory mask = 0771 read only = no
如图
完成编辑之后,按CTRL+X,然后按y退出并保存编辑。
把pi这个用户添加到SAMBA并重启SAMBA服务:
sudo smbpasswd -a pi sudo service samba restart
STEP3:
测试网络存储功能,在计算机的上方地址栏输入树莓派的地址(上面设置过):
\\192.168.1.2
进入了树莓派的文件服务器界面,或点击网络找到树莓派,首次登录可能需要身份认证,默认用户名pi,密码raspberry,如图8。
STEP4:
不过不要高兴太早,如果重启了树莓派,你会发现原来挂载的硬盘不见了,那么就得重新手动挂载,不过,有了autofs就没问题了。
sudo apt-get install autofs sudo nano /etc/auto.master
在auto.master下面加入一行:
/media/ /etc/auto.ext-usb –timeout=10,defaults,user,exec,uid=1000
这样即便在树莓派重启过后也不会破坏配置了,如图
STEP5:
尽管树莓派的功耗极低,但是如果硬盘一直转的话不仅费电而且有损硬盘寿命,那么我们就利用hdparm这款软件让硬盘在空载的时候自动休眠,在有数据读写的时候自动恢复活跃状态。
首先检查是否已经安装hdparm:
sudo # hdparm -V
如果提示下面这样的信息,说明已安装成功安装。如图
如果不是如上结果请运行以下命令来安装hdparm:
sudo emerge hdparm
运行后再次检查hdparm,若未安装重复以上步骤。
进入系统初始化目录,创建硬盘休眠脚本:
cd /etc/init.d sudo nano hdparm.sh
在脚本中按如下格式写入,设置超时值使硬盘进入睡眠模式(XXX代表驱动器名称,num值(不含方括号)表示驱动器决定在关闭主轴电机以节约能耗之前等待多长时间(没有磁盘操作),值0表示"关",值1到240被指定为5秒的倍数,也就是超时可以从5秒到20分钟,值241到251指定30分钟的1到11倍,也就是超时可以从30分钟到5.5个小时,值252表示超时21分钟,253设置一个销售商定义的超时,255表示21分15秒。):
hdparm -S[num] /dev/XXX
如图,设置成10分钟无动作硬盘自动休眠。
为hdparm.sh设置可执行权限,并把脚本加入启动清单:
sudo chmod 755 /etc/init.d/hdparm.sh sudo update-rc.d hdparm(.sh) defaults
可能会显示警告,忽略即可,并重新启动树莓派:
sudo shutdown -r now
炖:搭建网络监控服务器
STEP1:
插好USB摄像头,运行如下命令查看树莓派当前已连接设备:
ls /dev
如图9。
video0就是摄像头在LINUX下的默认名称,如果没有显示的话,说明可能是LINUX下没有驱动,建议换几个摄像头试试。
STEP2:
访问Yeelink,注册新账户并登陆,点击右上角的用户中心,可以得到API-KEY并复制,如图10。
在用户中心增加一个设备, 再为之增加一个图像传感器,添加完成后,在用户中心的设备管理中,找到设备ID并记录下来,同时记录传但其ID,如图11。
STEP2:
安装和配置安装图片抓取软件fswebcam:
sudo apt-get install fswebcam
在/home/pi下创建yeelink.sh并编辑:
sudo nano yeelink.sh
写入如下内容并保存:
sudo fswebcam -d /dev/video0 -r 320x240 –bottom-banner –title “RaspberryPi @ Yeelink” –no-timestamp /home/pi/yeelink.jpg curl –request POST –data-binary @”/home/pi/yeelink.jpg” –header “U-ApiKey: [API-KEY]“http://api.yeelink.net/v1.1/device/\[device\_id\]/sensor/\[sensor\_id\]/photos
蓝色部分替换为自己的API-KEY,红色部分替换为自己的设备ID,绿色部分替换为传感器ID。
STEP3:
为yelink.sh增加可执行权限:
sudo chmod +x yeelink.sh
并设置拍照上传的时间间隔:
crontab -e
在最下面的一行加入如下内容, num值表示让树莓派隔多少分钟运行一次脚本(不含方括号),保存退出.
*/[num] * * * * /home/pi/yeelink.sh
看一下我们网络监控器的效果吧,如图
我的监控服务器查看地址http://www.yeelink.net/devices/12126
如果没有收到效果,官网有提供开发文档,大家可以仔细研究,肯定可以解决问题的。
至此,我们的大餐也就出炉了,抓紧享用吧!