这次主角本来应该是4530,但刚买,实在还舍不得破坏外壳,就继续在FW300Rv2上搞了,4530只改了flash,其它未动。
思路:现在都提倡节能环保,玩airplay,音响老开着总部太好,所以考虑当有设备连shairport时,音响开,断开连接时音响就关。所以就有了以下的思路:FW300R桥接4530的2.4G信号,充当airplay主机,Fw300r引出一路gpio,控制一个带继电器的插座,控制音响的开关,当检测到新的shairport进程时(有设备接入airplay需要播放),继电器闭合,音响开始输出,其实对熟悉linux的人来说,肯定非常简单,就是一个简单的if语句,但咱不懂啊,只能自己查,折腾半天,终于是成功了,这里给大家分享一下。
shairport,自己编译的一直不行,后来就下了论坛里
sancome
分享的shairport包,装上以后直接OK。
shairport启动后,默认有一个进程,当有设备连上,开始播放时会是2个进程或以上,所以,主要就是写一个脚本,当shairport进程大于1时,打开要控制的led,从而实现继电器的控制。
shairport检测脚本如下(脚本名称自定义,这里为shairporttest.sh,、我也不知道加.sh干嘛,照猫画虎):
#!/bin/sh
process_num=`ps |grep "shariport" |grep -v "grep" |wc -l` if [ $process_num -gt 1 ]; then /bin/echo 1 > /sys/class/leds/tp-link\:green\:qss/brightness else /bin/echo 0 > /sys/class/leds/tp-link\:green\:qss/brightness fi
对不同的路由器,对应的led可能不同,大家如果也想这么搞,自己在对应的目录下查找一下,看有哪个可用的led。(703N等只有一个led的设备不推荐这么搞。)
脚本写完以后,保存,任意目录,别/tmp就行。 执行chmod 777 /对应目录/shairporttest.sh 然后在计划任务中(crontabs)添加 * * * * * /对应目录/shairporttest.sh(5个星号) 重启下路由,正常情况下就可以了。(打开继电器会等若干秒)
期间出现的问题: 应该主要是供电问题或者也可能是声卡问题,买的最便宜的那种声卡,刚开始继电器与usb hub同电源,当继电器闭合的时候,声卡经常会掉电,后来专门接一个3r33给继电器用,测试正常;运行一段时间后,发现路由器有点热,加了一个2cm风扇,声卡又不行了,实在没办法,只能把继电器的电源,直接用一个5V的变压器来处理了,内置到了插座里。下次买个好点的声卡测试一下,会不会有这种问题。上几张图: FW300r的固件之前的帖子共享过,shairport的ipk论坛里搜一下就有。
|