300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

2016-07-01 09:00:17 207点赞 1150收藏 132评论

追加修改(2016-07-02 12:59:46):
更正: 安装中文字库和中文输入法命令为: sudo apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy sudo apt-get install scim-pinyin

自从知道了什么值得买,就发现什么都值得买了。张大妈的信仰伴随我多年,今天终于鼓起勇气露(pian)露(jin)面(bi),第一次发原创希望给通过啊啊啊…300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

好了废话不说,进入正题。

本帖需要有DIY精神,计算机及网络基础也是必须的啦,还需要闲置的移动硬盘。

<<<<<<<<<<<<<<<分割线>>>>>>>>>>>>>>

晒一下我的树莓Server,树莓派3B相比前几代配置提升很大,但为何还是百兆网口,这便将有线网络传输速率死死地限制在12.5MB/s的速率以内。

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

手机控制端截图,已经在用Yeelink的小伙伴们可以看到我,目前只有CPU负载数据不全

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

迅雷远程下载页面

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

访问Samba/FTP共享服务(移动硬盘)截图

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

移动端访问FTP服务(移动硬盘)截图

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

从电脑拷贝文件到树莓派截图(这是树莓派是有线连接到路由器的,如果用树莓派无线连路由器速度峰值4MB/s,均值估计3MB/s)

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

从树莓派拷贝文件到电脑截图(树莓派是有线连接路由器)

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

树莓派稳定运行30天截图

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

<<<<<<<<<<<<<<<分割线>>>>>>>>>>>>>>

〇、我为什么要这样做?

(1)一块硬盘集中存储数据,让WLAN内电脑或便携设备能随时存取数据,也想过买NAS或者攒NAS,但觉得贵而且估计买来用得少,毕竟我对数据的速率要求不高,毕竟主要用来存取文档;

(2)工作之余,也要看个电影美剧什么的,所以还需要下载,而且必须是远程下载,这样在任何地方发现好资源都可以提前下载(不限于电影);

(3)单位在外地,网速快方便下载电影,如果在单位看不完也可以带回家再看,但总不能抱着NAS来回跑吧,所以需要移动硬盘。还要有权限管理移动硬盘上的数据,比如空间不够删个电影什么的,因为取消挂载和挂载两个步骤比较烦人,建议用Yeelink的开关型数据控制挂载和取消挂载;

(4)远程监测树莓派服务器,查看温度啊负载啊之类的,远程开启或关闭业务,比如下载业务和共享业务,避免敲命令,也可以实现终端APP控制。(基于Yeelink)

<<<<<<<<<<<<<<<分割线>>>>>>>>>>>>>>

一、实现功能

(1)迅雷远程下载到与树莓派相连的移动硬盘;

(2)一个账号实现在移动硬盘上Samba/FTP文件共享及管理权限;

(3)远程监控树莓派,远程开启或关闭树莓派上的服务。

<<<<<<<<<<<<<<<分割线>>>>>>>>>>>>>>

二、所需材料

(1)树莓派3B,电源肯定是需要的,建议再配个外壳加风扇(可以在某宝买,主要是便宜);

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享2016年新款树莓派3代B型 Raspberry Pi Model 3 B树莓派3B¥298京东

(2)移动硬盘;

(3)网线;

(4)PC/Mac,需安装putty或SecureCRT等SSH软件。

<<<<<<<<<<<<<<<分割线>>>>>>>>>>>>>>

三、文件共享服务部署流程

(1)连接以下设备

树莓派——无线路由器LAN口(RJ45网线)(也可以用无线,但是速度慢);

树莓派——移动硬盘(USB线);

把TF卡插入树莓派卡槽内,需提前在TF卡上写好raspbian镜像(树莓派官网有提供,写入方法自行百度)。

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享闪迪(SanDisk)至尊高速移动MicroSDHC UHS-I存储卡 TF卡 16GB Class10 读速80Mb/s闪迪TF卡¥33.5京东

接下来就是给树莓派树上电开机,在无线路由器里查看树莓派获取的IP地址,例如是192.168.1.17。打开PC/Mac的SSH软件,新建连接:

IP地址:192.168.7.17,端口:22

用户名:pi

密码:raspberry

到这里就可以敲命令了。

(2)基本配置(nano编辑器的用法请自行百度)

扩展TF可用空间,执行:sudo raspi-config

选择Expand Filesystem;

修改更新源,执行:sudo nano /etc/apt/sources.list

添加以下代码:

deb https://mirror.sysu.edu.cn/raspbian/raspbian/ jessie main contrib non-free

deb-src https://mirror.sysu.edu.cn/raspbian/raspbian/ jessie main contrib non-free

保存退出;

升级软件,执行:

sudo apt-get update

sudo apt-get upgrade

花时较长,需耐心等待;

安装中文字库与中文输入法,执行:

deb https://mirror.sysu.edu.cn/raspbian/raspbian/ jessie main contrib non-free

deb-src https://mirror.sysu.edu.cn/raspbian/raspbian/ jessie main contrib non-free

安装exFAT和NTFS支持软件,执行:

sudo apt-get install exfat-fuse

sudo apt-get install fuse-utils ntfs-3g

(3)设置共享用户,挂载硬盘

创建共享用户share,设置它属于users用户组,设置密码为share,创建/home/share文件夹,执行:

useradd share -m -G users

passwd share

尝试挂载移动硬盘到/home/share下,执行:sudo fdisk -l

查看移动硬盘的路径,一般来讲是/dev/sdb1,此时执行:

sudo mount -o uid=1001,gid=1001 /dev/sdb1 /home/share

(添加-o 参数是针对exFAT和NTFS移动硬盘,因为exFAT和NTFS格式的硬盘没有Linux/Unix权限,有条件的话可以把硬盘格式化成ext3或ext4,没条件就算了,我用的exFAT和NTFS也OK。)

(4)部署Samba服务

部署Samba服务,执行:sudo apt-get install samba samba-common-bin

安装完成后进入配置,执行:sudo nano /etc/samba/smb.conf

在smb.conf末尾添加:

[share]

comment = share

path = /home/share

valid users = @users

public = no

writable = yes

browseable = yes

create mask = 0765

保存退出;

申明family用户为Samba用户,执行:smbpasswd -a share

重启Samba服务,执行:sudo /etc/init.d/samba restart

(5)部署FTP服务

部署FTP服务,执行:sudo apt-get install vsftpd

安装完成后,修改配置文件,执行:sudo nano /etc/vsftpd.conf

修改以下内容:

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

保存退出,重启FTP服务,执行:sudo /etc/init.d/vsftpd restart

(6)配置迅雷远程下载

解压迅雷下载对应固件(例:Xware1.0.31_armel_v5te_glibc)放在用户文件夹中(如/home/pi/xunlei)

(下载链接:https://luyou.xunlei.com/forum.php?mod=forumdisplay&fid=51&filter=typeid&typeid=1)

执行:sudo chmod 777 /home/pi/xunlei/* -R

执行:sudo /home/pi/xunlei/portal

THE ACTIVE CODE IS对应处代码为远程下载码,在https://yuancheng.xunlei.com/中绑定账号即可,之后添加下载地址也是在这里;

需停止远程服务时执行:sudo /home/pi/xunlei/portal -s

配置开机自动启动:

执行:sudo nano /etc/init.d/xunlei

添加代码:

#!/bin/sh

#

# Xunlei initscript

#

### BEGIN INIT INFO

# Provides: xunlei

# Required-Start: $network $local_fs $remote_fs

# Required-Stop:: $network $local_fs $remote_fs

# Should-Start: $all

# Should-Stop: $all

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Short-Description: Start xunlei at boot time

# Description: A downloader

### END INIT INFO

do_start()

{

/home/pi/xunlei/portal

}

do_stop()

{

/home/pi/xunlei/portal -s

}

case "$1" in

start)

do_start

;;

stop)

do_stop

;;

esac

增加权限,执行:sudo chmod 755 /etc/init.d/xunlei

更新开机启动,执行:sudo update-rc.d xunlei defaults

查看状态信息

这部分是非必要的,可以查看一些简单状态信息。

在启动时会有类似一行输出,表示你的控制端口:

your control port is: 9000.

在浏览器中输入https://IP地址:9000/getsysinfo(IP替换为你路由器的IP,端口换为你的控制端口),会看到类似如下信息:

[ 0, 1, 1, 0, "42SND1",1, "201_2.1.3.121", "", 1 ]

其中有用的几项为:

第一项:0表示返回结果成功

第二项:1表示检测网络正常,0表示检测网络异常

第四项:1表示已绑定成功,0表示未绑定

第五项:未绑定的情况下,为绑定的需要的激活码

第六项:1表示磁盘挂载检测成功,0表示磁盘挂载检测失败

(7)配置移动硬盘自动休眠

安装hdparm实现硬盘自动休眠,执行:sudo apt-get install hdparm

立即休眠sdb1硬盘,执行:sudo hdparm -Y /dev/sdb1

在60/12=5min后休眠硬盘,执行:sudo hdparm -S 60 /dev/sdb1

每次重启后自动执行hdparm程序:

执行:sudo nano /etc/rc.local

在fi后和exit 0前插入一行命令:hdparm -S 60 /dev/sdb1 &

说明:超过休眠时间后再访问,需要2-3s才能加载出来,休眠能一定程度上保护硬盘。

注意:迅雷服务开启时会一直给其他用户提供下载源,所以服务开启时硬盘一直在工作得不到休眠,可采用关闭服务的方式让硬盘一段时间后自动休眠。

(8)配置树莓派重启后自动挂载硬盘

这一部分比较重点,因为挂载不好就没有修改权限,还记得前面“(3)***挂载硬盘”里面对-o参数的描述吧。

但这里不同,执行:sudo nano /etc/fstab

在/etc/fstab最后添加代码:

/dev/sdb1 /home/share/ auto defaults,noatime,uid=1001,gid=1001 0 0

至此,服务端的Samba/FTP服务端已经做好。可以在电脑、移动终端、电视盒子上使用了,登陆地址为192.168.1.17(对应前文的举例,具体地址具体填写),登陆账号和密码都是share,如果是FTP还需要端口号(默认21),编码方式推荐UTF-8,如果有乱码就换一下其他编码方式吧,用share用户登录后可以拥有读写权限,方便在移动端删除数据或存入数据,而不用拔下移动硬盘。

注意:Linux要先取消挂载才能拔USB存储设备,初期可采用键入命令方式,等Yeelink熟悉后就可以创建开关型数据,在移动端或网页操作挂载和取消挂载了。

<<<<<<<<<<<<<<<分割线>>>>>>>>>>>>>>

四、树莓派的远程监测与控制——Yeelink物联网服务

(1)准备

在yeelink网站申请账号,添加设备,添加传感器(数据型/开关型),并记录下API KEY和APIURL。

(2)上传CPU温度实例

在pi文件夹下编写代码yeelink.py,内容如下:

import os

import requests

import json

import time

import commands

def getCPUtemp():

cpu = open("/sys/class/thermal/thermal_zone0/temp")

# file.close()

return (float(cpu.read())/1000)

def main():

apiheaders = {'U-ApiKey':'你之前申请的API KEY,是一串数字和字幕的混合','content-type':'application/json'}

cputemp_apiurl = "你增加的数据型传感器的URL"

CPU_temp = getCPUtemp()

cputemp_payload = {'value':CPU_temp}

r=requests.post(cputemp_apiurl, headers=apiheaders, data=json.dumps(cputemp_payload))

print('CPU Temp = '+str(CPU_temp))

if __name__ == '__main__':

main()

这串代码执行一次后上传一次数据,执行:python yeelink.py就能出现执行结果:CPU Temp = 50.464,如下图:

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

同时上传该数据至yeelink,也可以在def man()后增加while 1,实现一直执行,这里不做过多描述。

(3)Yeelink控制树莓派的迅雷下载服务实例

在pi文件夹下编写代码xunlei.py,内容如下:

import os

import requests

import json

#import time

import commands

def main():

apiheaders = {'U-ApiKey':'你之前申请的API KEY,是一串数字和字幕的混合'}

xunlei_apiurl = "你增加的开关型传感器的URL"

xunlei = requests.get(xunlei_apiurl,headers=apiheaders)

xunlei_status = xunlei.json()

if xunlei_status['value'] == 1:

os.system ('sudo service xunlei start')

print ('Xunlei Service On!')

else:

os.system ('sudo service xunlei stop')

print ('Xunlei Service Off!')

if __name__ == '__main__':

main()

注意:需结合迅雷远程下载的启动服务才可配合执行,前面已附上。

这串代码执行一次后将从设置的开关型数据那取得结果:开或关,执行:python xunlei.py就能执行关闭迅雷服务,并出现执行结果:Xunlei Service Off!,还有个Xunlei Service On!,只是我刚好关闭了迅雷服务,如下图:

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

也可以在def man()后增加while 1,实现一直执行,这里不做过多描述。

(4)用cron实现Yeelink服务

前两个实例都需要手动执行,可以利用cron计划任务来执行特定的的任务,我在pi的cron里加入了以下代码,执行:nano picron

* * * * * python /home/pi/yeelink.py

* * * * * python /home/pi/xunlei.py

添加完后保存退出,然后执行:crontab picron

上面两行代码分别指每分钟执行上述yeelink.py和xunlei.py,就意味着每分钟树莓派都可以上传CPU数据到Yeelink、获取开关信息到树莓派并执行,这就从某种意义上实现了远程控制。同时Yeelink也有APP,免去了网页版的不方便。

(5)我的Yeelink

分为三个开关:Yeelink服务、Yeelink监测和Yeelink控制;Yeelink服务用来关闭所有Yeelink检测和控制,Yeelink监测用来开关温度及负载数据上传,Yeelink控制用于开关对树莓派的功能控制;

因为我每个python代码都是只执行一次,没有死循环,所以主要借助了cron定时任务,那么对所有的Yeelink服务也采用了更换picron的方式,即创建了:picron_000、picron_001、picron_010、picron_011、picron_100、picron_101、picron_110和picron_111,共八个picron通过Yeelink的开关型数据进行到换,000-111中的三位数字分别代表了Yeelink服务、Yeelink监测和Yeelink控制的关闭(0)和开启(1)。

通过以上一个数据一个开关的例子大家就能实现很多功能了,比如服务的开关,比如挂载与取消挂载,这里有一个原则:先挂载后开迅雷,先关迅雷后取消挂载,不然/home/share文件夹下会生成迅雷的文件,到时候就挂载不上硬盘到/home/share了。网上很多关于树莓派的帖子和教学,不得不感谢开源的力量,才实现了我的需求。

配置都结束后重启一下看看能不能正常启动,能不能正常加载服务,重启命令:sudo reboot

至此,我写完了(还是因为写不下去了)300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享。总结一下:虽然速度和稳定性比不上专业NAS,但对于想尝鲜的玩家来讲已经能体会到一些了,毕竟平时读取和写入的速度已经满足文档的存取了,并行数据存取性能应该很差(这是事实,必须承认,但只有我一个人用感觉还好);另一方面,NAS动辄上千还要配硬盘让我真的很担忧这笔投资对我是否值得(不要喷我,NAS目标用户除外哈),可能我还是喜欢折腾吧,拿来用Samba/FTP服务看视频真的是爽的不要不要的,试过在iPad Air 2(5G)用AVPlayerHD播放720p视频,缓冲时间4s不到,还可以忍受(路由器是阿苏斯AC68U)。好了,我要继续去看《远古外星人》了:

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

300元 iRaspberry Pi 树莓派 实现超低功耗远程监控、远程下载和家庭共享

后记:第一次原创,请大家慢点喷,肯定有值友会更好的方法,我能向你学习吗?!这里顺便提一个问题:CPU负载的py代码我手动输入,在Yeelink可以获取,但通过cron就不能实现了,也试过while 1和time.sleep (5*60)都不行,在VNC下前台用while 1执行倒是可以,不知问题在哪里,有实现成功的吗?

展开 收起
132评论

  • 精彩
  • 最新
  • 这种soc功能太弱 没什么好玩

    100多块钱搞个hp的瘦客户机 , 内存cpu网卡全有了 而且x86的 ,什么都好搞.

    校验提示文案

    提交
    功耗太大了

    校验提示文案

    提交
    两百块钱的差价啊。足够这类10w瘦客户端连续不断的开机器五年了
    但是 可以任意家内存网卡硬盘。运行速度也快上不止2倍吧?
    所以呢 这种机子发发朋友圈就好了。可别正儿八经用 没事给自己找不自在

    校验提示文案

    提交
    收起所有回复
  • 我能向你学习吗

    校验提示文案

    提交
    大家一起交流

    校验提示文案

    提交
    收起所有回复
  • 来解答下楼主的百兆口疑问吧,就好像硬盘读写速度一样,普遍tf卡写入只有20兆,假如使用超过硬盘读写速度的网口,那硬盘就挂了吧。。。其次这东西百兆口发热已经这么高了,千兆的散热怎么操作是个问题了就。

    校验提示文案

    提交
    [惊喜] 学习了 谢谢

    校验提示文案

    提交
    你这个比喻不恰当啊。好多能接移动硬盘的路由器,是千兆口的,网络写入速度能超过树莓派的12.5

    校验提示文案

    提交
    还有7条回复
    收起所有回复
  • 迅雷远程下不了被举报的资源怎么搞

    校验提示文案

    提交
    被举报的也可以下啊 我下也好几百KB

    校验提示文案

    提交
    收起所有回复
  • aria能远程吗?

    校验提示文案

    提交
    可以 以前是要用chrome插件辅助 不知道现在什么情况

    校验提示文案

    提交
    收起所有回复
  • 买过树莓派2代尝试过做NAS+下载机+盒子。下载机这块太麻烦而且效果不够理想。

    校验提示文案

    提交
    不建议盒子和下载机同一个 [抠鼻]

    校验提示文案

    提交
    多SD卡=多系统 [内伤]

    校验提示文案

    提交
    收起所有回复
  • 买个黄标6300V2,上述功能皆能实现,还是千兆AC

    校验提示文案

    提交
    其他功能在我的AC68U上实现了,但是yeelink和传感器温度有点难搞,楼主怎么弄的教教我

    校验提示文案

    提交
    好多路由器可以刷开源的openwrt系统,linux内核,其实和树莓派没有本质区别。至于怎么给openwrt开发软件,我只用过很多第三方插件,却不太懂,只提供思路

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 这个一个小米路由mini不是就搞定了吗?

    校验提示文案

    提交
    那也是 买来就用

    校验提示文案

    提交
    收起所有回复
  • 能否通过电脑远程访问硬盘资料?先给你打赏

    校验提示文案

    提交
    理论上可以 但首先要有公网IP配合DDNS 不然会很麻烦 我有尝试过花生棒 但FTP访问拒绝

    校验提示文案

    提交
    收起所有回复
  • 播放器看着挺好,求名子?

    校验提示文案

    提交
    AVplayerHD

    校验提示文案

    提交
    收起所有回复
  • 请问路由器拨号获取IP 自动变怎么破?另外,3B接的移动硬盘不需要外接电源吗?

    校验提示文案

    提交
    用动态域名咯 但是你得有公网IP 如果获取到的是内网IP那就没辙了 3B接移动硬盘不需电源

    校验提示文案

    提交
    多谢了,我现在插的是2.1A 的手机充电器,回家试试行动硬盘能带动不 [脸红]

    校验提示文案

    提交
    收起所有回复
  • 二代用户路过打个招呼,手里有一个二代跑transmission挂pt,功耗低又稳定 [欢呼] ,丢在角落半年没动过了 [欢呼]

    校验提示文案

    提交
    还是要偶尔扫扫灰的 [抠鼻]

    校验提示文案

    提交
    放在柜子角落里 [欢呼] 上次看它还是刚过完年吧 [脸红] [苦恼]

    校验提示文案

    提交
    收起所有回复
  • [吐舌] 期待大兄能出多个树莓派的用途,官网英语看不懂是硬伤。

    校验提示文案

    提交
    可以去看看树莓派实验室或者论坛

    校验提示文案

    提交
    收起所有回复
  • 能加速下载大姐姐吗

    校验提示文案

    提交
    看你迅雷账号咯

    校验提示文案

    提交
    大姐姐,有迅雷账号都不能加速,我说的是thunderspeedhacker

    校验提示文案

    提交
    收起所有回复
  • 二代行不行?

    校验提示文案

    提交
    应该是一样的

    校验提示文案

    提交
    树莓派是用来折腾的做做小车、控制之类的。做nsa、下载机 可能还不如国产的香蕉派香橙派之类的,那个带sata口,和千兆网卡,还不如迅雷 下载宝,usb3和千兆

    校验提示文案

    提交
    收起所有回复
  • 你的cron 怎么写的 是不是带了 “%”号,带了这个 需要转义。

    校验提示文案

    提交
    没带“%”。字数补丁啊啊

    校验提示文案

    提交
    收起所有回复
  • 中文字库那段错了
    迅雷下载介绍的不完全

    校验提示文案

    提交
    哦对 粘贴错了 谢谢

    校验提示文案

    提交
    收起所有回复
  • @cresparks 求教一个问题,迅雷下载的目录如何设置?我的挂载点是/mnt/download 但迅雷上设置下载目录是c:\tddownload

    校验提示文案

    提交
    在远程下载页面下添加任务时注意 在存储路径那里可以选择

    校验提示文案

    提交
    收起所有回复
  • @cresparks 存储路径是显示c:\downloads

    校验提示文案

    提交
    存储设备挂载上后检查有没有写权限

    校验提示文案

    提交
    收起所有回复
  • 太好了,,上面的功能正是我需要的,,,另外lz,,一般的电视机能播放放在文件共享里的视频么。。。

    校验提示文案

    提交
    只要你的电视机支持samba(网络共享)或者ftp,都是可以的。
    不过一般我们都用电视盒子。

    校验提示文案

    提交
    恩,谢谢啦。。。机顶盒能播放内网上的视频么?好像可以的

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
1.1K
扫一下,分享更方便,购买更轻松