dongtao 发表于 2014-5-7 11:55

用极贰DIY我的家庭智能中心,PK小米路由!

设定几个任务:
    1. 开启迅雷远程下载,使用SD卡或U盘作为下载存储设备;
    2. 支持U盘和USB硬盘,并共享出来,作为个人数据和媒体中心;
    3. 利用旧手机实现远程视频监控; 
    4. 利用旧手机和移动电源作为外置UPS,断电后续航和安全关机;
    5. 外置USB红外模块,控制附近的家电;

今天我们的主角就是这位了:
http://c.hiwifi.com/shequ/forum/201404/29/153341dq1qh1pbgocg7pdb.png.thumb.jpg
DIY准备: root 
    要想对设备进行DIY,第一步需要获得设备的全部管理权限,以便安装文件或修改配置,也就是在Android中俗称的root。各种设备有不同的root方法,由于极贰刚出来没几天,root只能靠自己。最简单的方法当然是拆机TTL,看看有没有机会,好在拆开一看,为“极客”而生的极路由过然考虑了极客的感受,留了TTL。后面的步骤就简单了,开启SSH、设定密码,重新装上机壳,root完成!(根据前述原则,涉及产品安全,不说详细步骤)

http://c.hiwifi.com/shequ/forum/201404/29/153342s60wq8qz16s66jo6.png.thumb.jpg http://c.hiwifi.com/shequ/forum/201404/29/153343whjdvvi0lhns00u5.png.thumb.jpg
DIY第一步:迅雷远程下载
    远程下载其实使用的是迅雷提供的一套嵌入式程序,叫xware。在有root的情况下,安装相对比较容易,虽然极贰用的SD卡的速度比不上硬盘,但作为下载用,与网速比起来,还是足够了!迅雷的xware提供各种嵌入式系统的版本,极贰使用的CPU是MIPS32架构,小端,系统库使用的是uClibc,所以选择安装xware-mipsel_32_uclibc版本。迅雷自己网站上写的过程比较复杂,如果有路由器,简单来说,几个步骤:
    1. 取下SD卡,在根目录上创建子目录,如thunder,然后把安装包内的portal, ETMDaemon和EmbedThunderManager三个程序放进去。
  2. 重新装上SD卡并开机,等联网OK后,启动完成后通过SSH登进去,执行/tmp/data/thunder/portal;
  3. 显示结果中会有一行,类似如下的信息,就表示安装OK了:
THE ACTIVE CODE IS: 123456
  4. 现在去yuancheng.xunlei.com,登录后,选择添加设备,选择任意一种类型,如NAS,然后输入上面的值关联设备,一切就绪!
http://c.hiwifi.com/shequ/forum/201404/29/153343lvhqlv0lll59jg9g.png.thumb.jpg
      与小米路由器一样,关联以后,迅雷的各种下载方式,包括手机上的云播,都可以下载到远程到我们DIY的路由器上。试试云播的效果,选择一部电影,点下载时,会出现选项,选择本地下载或远程下载,选择极路由,下载开始:
http://c.hiwifi.com/shequ/forum/201404/29/153344q4jgj9s4htss1rfa.png.thumb.jpg http://c.hiwifi.com/shequ/forum/201404/29/153344jia3yyyltac1u0ny.png.thumb.jpg
不过这样改动我们每次开机都需要进入到系统中进行改动,太麻烦了一点,我们需要让它自动运行起来。改动方法比较简单,因为openwrt通过overlay文件系统技术实现了全系统可改写,最简单的改法是直接修改/etc/rc.local,在最后一行“exit 0”前加入下面的行即可:
/tmp/data/thunder/portal
当然,这个方法与系统的标准做法并不匹配,标准的做法,我们至少需要做一个配置文件来启用和关闭迅雷离线服务,做一个标准的启动脚本来启动和停止这个服务,同时,还需要做一个基于luci的配置页面,以便用户可以在网页上开启和关闭这个服务,以及初次配置时,让用户可以获得激活码,甚至反过来,让用户输入迅雷账号后,自动为用户绑定服务,这样就和小米路由器做得完全一样了!

DIY第二步:启用U盘和USB硬盘,实现NAS
       通过SSH进入到命令行中就发现,实际上论坛上说的不支持U盘似乎并不准确,因为U盘插上去后,是自动挂接到路由器上了的,只是没有定义任何的功能。既然我们期望用极二来做为我们的小型个人数据中心,那首先通过我们的笔记本、手机和网络电视盒都能通过网络访问到U盘或SD卡的存储空间,在路由器上实现类似windows的共享,我们需要的软件叫samba。不过,这一步不需要我们DIY,极路由标准的Plugin里有这个东东,不过名字叫做局域网文件中转站:
http://c.hiwifi.com/shequ/forum/201404/29/153344dclzlinhndcsczba.png.thumb.jpg
安装这个插件,配置用户名密码就可以使用了,不过默认情况下,这个软件只在SD卡上共享了一个文件夹而已,我们的目标是要共享整个SD卡和U盘(或USB外置硬盘)。这个DIY很容易,通过SSH命令行登入,修改/etc/config/samba,加入下面的行:
http://c.hiwifi.com/shequ/forum/201404/30/074708y1zgvogsfpztgghh.png.thumb.jpg

上面的改动其实就是把SD卡和U盘完全共享出来,配置和在插件中配置相同。最后的效果, http://c.hiwifi.com/shequ/forum/201404/29/160830hq933a02zqa245z0.png.thumb.jpg ,会看到下面的效果,刚才下的电影可以观看了,如果USB接口上连的是USB硬盘盒,那么一个小型的NAS就可以使用了。
http://c.hiwifi.com/shequ/forum/201404/29/153345atqqfz330we3yw74.png.thumb.jpg http://c.hiwifi.com/shequ/forum/201404/29/153345xsa0f5nf5jny50xf.png.thumb.jpg
在小米盒子上或小米电视上,可以用小米路由器一样的方法来访问这些共享文件哦! 在小米电视上,打开“高清播放器”后,就可以看到我的DIY路由器了,我外接的硬盘也是1T,和小米路由器一样哦。现在enjoy it!
http://c.hiwifi.com/shequ/forum/201404/29/153347c7rfe1pmrstnntri.png.thumb.jpg
DIY第三步:旧手机开启视频监控
  为什么会想到使用旧手机而不是一个廉价的摄像头呢?原因很简单,其实大多数厂商都没有公布核心源码和相关的工具集,这就使得我们很难为现有的设备添加驱动(开发或编译应用程序不需要厂商的源码)。尽管还是可以从其它地方找到与厂商相同版本的核心源码,不过Linux的驱动不象Windows,核心的一个微小版本差异或配置差异都不能通用,DIY难度相对高了一点点。所以最简单的办法是使用一个IP摄像头,这样路由器上不需要去驱动摄像头,而你刚退休下来的旧Android手机就是一个很好的IP摄像头。
  我期望的是手机作为简单的网络摄像头的作用,其数据都存在了路由器的硬盘上,同时,各种终端包括手机、电脑和平板,可以借助路由器的云服务器或动态DNS服务连接到家中的路由器以查看家中的情况,同时,如果出现异常情况,还可以接收到告警。时间有限,第一步我们将首先实列IP camera的功能,并且可以通过互联网来查看家里的情况
http://c.hiwifi.com/shequ/forum/201404/29/162729elqq5ogyol75q6lo.png.thumb.jpg
  手机是一个淘汰下来有一段时间的HTC,开机正常,摄像头也不错,很清晰,刚好买了个鼠标,留下来的盒子拿来卡住手机刚好合适。
http://c.hiwifi.com/shequ/forum/201404/29/162730rmcjm4ptwmwlgtv2.png.thumb.jpg
  我们要用到的是一款叫Android手机无线摄像头的APP(居然还有个大xx广告!)。软件使用很简单,配置一下显示或拍照的分辨率,然后配置一下用户名密码即可。注意,用户名密码请一定配上,因为后面我们要通过互联网来访问。(能做IP camera的类似软件比较多,我们还可以选择其它的软件来做同样的事情,配置也基本相似)。
http://c.hiwifi.com/shequ/forum/201404/29/162731czympm00zqyej10i.jpg.thumb.jpg http://c.hiwifi.com/shequ/forum/201404/29/162731ututfsqcsfusvs52.jpg.thumb.jpg

  开始拍摄后,我们就可以通过电脑来查看我们拍摄的图像,注意右边的照片上显示了连接的方法, http://c.hiwifi.com/shequ/forum/201405/04/215120mamj4ucjw48m6uhw.png.thumb.jpg ,打开后,输入用户名密码,可以看到一个网页,指示如何查看照片或视频。但是我们看到的这个地址是一个只能路由器内部访问的地址,在互联网上就无法访问了。
  下面是DIY的重点,配置路由器,使我们可以在任何可以上网的地方查看家中的情况。我们要解决两个主要的问题,一是如何知道家里上网的IP地址,这对于大多数ADSL用户来说,确实是个难事,因为这个IP可能会变化;第二个问题是如何可以透过路由器访问到家里的那台手机。好在极路由已经包含了这样的两个插件,一个叫动态域名,一个叫超级端口转发。
http://c.hiwifi.com/shequ/forum/201404/29/162731sn8ndnaqennq0qzq.png.thumb.jpg
 平心而论,这两个功能被收录到plugin中确实有点牵强。因为在许多家用路由器中,动态DNS和端口转发(DNAT)都只是基本功能而已。动态域名安装完成后,配置一个自定义的DNS名称即可,例如我们配置rediceli,此后就可以通过rediceli.jios.org来访问到家里路由器的IP地址,即使有变化也没有关系。
http://c.hiwifi.com/shequ/forum/201404/29/162732ct1ff5nwfnrp70p5.png.thumb.jpg
    我们安装的Android IP webcam使用的端口是8080,所以我们还要使用“超级端口转发”来转发一下这个端口,这个功能简单的说就是当访问我们路由器的8080端口时,路由器把这个请求送到我们内部的手机上(192.168.15.102)同样的端口。
http://c.hiwifi.com/shequ/forum/201404/29/162732vbbcbtrxgw5l5t8o.png.thumb.jpg
     现在我们 http://c.hiwifi.com/shequ/forum/201405/04/215137hpgrd1f36mu6cmrp.png.thumb.jpg 来在电脑或手机上访问家里的webcam了。(发现有人在尝试连我的摄像头,所以我已经更换了域名,请不要再尝试这个地址了)

DIY第四步:安全廉价的路由器UPS
  当路由器接上硬盘后,如何安全的开启和关闭路由器就成了一个很重要的问题。为什么呢?因为无论是普通硬盘还是固态硬盘,突然断电都有可能会对其造成逻辑或物理的损坏的,实际上如果路由器本身使用了NAND Flash,突然的断电对其来说,也会大大降低其寿命或者造成不可修复的破坏。
  如何解决关电问题呢?很简单,如果我们能在断电前,象电脑一样安全的关机,硬盘在停止读写操作后,再停转,就不容易出现损坏了。所以我做这个DIY的UPS最主要的目的并不是停电后可以支撑多久不完机,而是希望我的外接硬盘、SD卡不会因为突然断电而造成损坏!
  前面我们已经在DIY时用了一个旧手机,我们还要再利用一下它,下面是连接逻辑图:
http://c.hiwifi.com/shequ/forum/201404/29/162733ui9bwx6xd959dnhw.png.thumb.jpg
      手机一直充着电,而路由器接在普通的移动电源上,因为极贰的输入电压是5V,所以普通的手机移电源就行,正好也有一个旧的,然后移动电源也一直充着电,长期充着没关系,反正是旧的,不过得小心一点,放在不容易引起发热或不利于散热的东西上面。
http://c.hiwifi.com/shequ/forum/201404/29/162733e5urrz7nn7u6oi5n.png.thumb.jpg
      下面需要一点编程能力了,我们的基本原理就是,手机平时当摄像头用,并且通过WIFI连接了网络,当突然停电时,Android手机停止充电,而我们的一个APP一直在检测手机的充电状态,得到断电消息后,我们第一时间通过网络发出去一个告警报文给路由器。因为路由器接着移动电源,所以停电并不影响其使用,但是路由器自己无法检测断电,所以它开启一个程序接收来自手机的网络消息,收到消息后,路由器就可以安全的关闭(shutdown)了。Android程序写得比较简单,慢慢改善!路由器上,只是写了一个基于nc(netcat)的脚本,在一个TCP端口上监听,收到报文后就准备关机。
http://c.hiwifi.com/shequ/forum/201404/29/162734qmlfmfll3fc7lkwk.png.thumb.jpg
  经过测试,已经勉强能用,断开插座电源后,手机程序显示检测到停止充电,并发送信息到路由器。这里也有一技巧,如果我们在家里的其它设备想访问路由器,其实是可以不用IP地址的,就象访问小米路由时可以用miwifi.com域名一样,极路由也可以用域名,它的域名还不止一个,除了大家知道的4006024680.com,还可以用t.w,tw这样的名字来访问(如果有极二,在你电脑浏览器里输入这些地址试一下!)。使用域名最大的好处是当你更换路由器的IP地址时,这些域名都会自动批向新IP地址。
      不过谁能告诉我,为什么关机发了关机命令后,系统停止了所有工作,但WIFI灯还亮着是怎么回事?(@极路由) 好在关机命令可以正常工作,路由器可以关闭,这样硬盘安全多了。
      另:我测试了一下移动电源的待机时间,我这个电源比较旧了,在WIFI开启并连接硬盘的情况下,大概还能工作半个小时,所以我修改了关机策略,路由器收到断电消息后,会再工作十分钟,如果这个过程中,又收到手机发来的充电消息(说明来电了)则取消关机,是不是有些智能了!但可惜的是,如果过了十分钟后再来电,我就没有办法把路由器再自动的开起来了,所以以后还得再DIY个WOL(网络唤醒开机),这样我的手机只要还有电,就可以把它叫醒了。
DIY第五步:自制BroadLink
  前面的照片上有一个小东西,小米第三批有一个新玩具,叫BroadLink,这是一个与Broadlink相似的东西,只是它需要通过USB线来连接而不是通过无线。我用的这个模块是一个多功能模块,可以用作RS485、RS232和红外,图中框出的开关用于切换功能。另一个框中的则是红外的接收和发送端子,黑的那个用于接收。
   为了让这个模块能发出正确的遥控编码,就要靠黑色的这个接收器来完成学习,原理上和市面上十来块钱的万能遥控器一样,先用遥控器对着这个模块发送信息,然后将收到的编码和对应的按键存下来,例如增大音量对应的编码是0x1234。不同的遥控器会通过一个厂商前缀来区分,举例来说有点象电话的区号,同一个号码,区号不同也互不影响。这就是家里各遥控器通常会互不影响的原因。记下我们需要的键码后,我们可以通过另一个用于发射的红外管将相应的编码发送出去。所以通过这个模块,只要通过电器的遥控器,将编码先记录下来,就可以控制任何想控制的电器或功能。
      小米路由器带的broadlink大多数情况下是不需进行对码的操作的,因为主流的遥控器编码都会自动被下载到小米路由器的数据库中,其实很多库在网上都能找得到,这样我们也可以做成一个非常通用的遥控器。
http://c.hiwifi.com/shequ/forum/201404/29/163735k77t8h64thr6ktc3.jpg.thumb.jpg
  路由器上需要一个叫LIRC(Linux Infrared Remote Control)的软件,简单的说就是一个用来管理红外收发的软件,编译这个软件需要MIPS32EL的编译器。好在只要有Openwrt的环境,制造这样一套编译器并不困难,而且可以直接使用Openwrt来编译lirc。有了lirc后,其后的工作就是找到各种遥控器的编码表,然后就可以通过lirc自由的发送各种控制命令了。
http://c.hiwifi.com/shequ/forum/201404/29/163735dy1menfm7838o4zg.png.thumb.jpg
  这里的缺陷是我们没有象Broadlink一样的服务器,在家的时候可以直接登录到设备上通过命令来发送遥控命令,而不在家时,这个过程就不太容易了。好在极贰有动态DNS功能,通过动态DNS,我们可以通过域名访问家里的路由器,但还有一点,就是需要在防火墙上开启外网口访问SSH的功能,这样,即使不在家,也可以连接到路由器上,然后在命令行上发送一条命令,打开路由器对面的那台空调吧!拿遥控器对了半天码,才把开和关给搞定,这个夏天就用上了。不过,隔壁的空调还是搞不定,不会穿墙术啊!
  这种方式对于普通用户来说,可能太复杂了,但对于极客来说,That’s OK。好吧,现在我有一台DIY出来的路由器,比起小米如何?同样1T的外接USB硬盘,同样迅雷远程下载,同样支持共享方式让小米电视或盒子在线观看,支持了山寨的BroadLink,还支持了远程监控,更重要的是,当意外停电时,我们的智能UPS系统可以安全的关闭电源,保证硬盘不会被破坏!

DIY总结
  现在我们通过一台极路由、一部旧手机、一个旧的移动电源、一个屌丝级的broadlink模块、U盘和移动硬盘,DIY了一台功能丰富家庭智能中心,包含了NAS、迅雷远程下载、网络摄像头、家电红外控制、智能UPS等一系列的功能,虽然功能都还不是非常完善,不过还是勉强可以和小米路由器PK一下了吧!

yang89 发表于 2014-9-17 08:27

很给力,ZNDS有你更精彩!

网络设备批发 发表于 2014-10-6 15:07

强烈支持楼主ing……

xuxichaods 发表于 2014-10-11 20:30

楼主威武啊,ZNDS有你更给力!

依然爱你爱着你 发表于 2015-2-1 17:05

极路由PK小米,还用比嘛!当然是小极更赞啦!性价比高!支持小极。

傅小虾8 发表于 2015-2-2 11:22

楼主写的很全面,支持。我回家也去试试。极路由是不错滴

℡路亽曱 发表于 2015-10-24 14:51

正需要啊,感谢楼主无私分享!

黄帝; 发表于 2015-10-24 18:49

精华内容,楼主V5!

可口可看看 发表于 2016-1-15 13:19


楼主威武啊精华内容

lishichun 发表于 2016-11-12 21:41

太牛了楼主
页: [1]
查看完整版本: 用极贰DIY我的家庭智能中心,PK小米路由!

站长统计