树莓派 airplay shairport-sync 改造书架音箱 无线 实现自动通断电
前言之前看了品胜airplay的文章以后萌生了改老的漫步者音箱为无线的想法。35块钱入手,测试了一下,有下面几个痛点:
于是想到了自己还有一个跑着hass的树莓派,正好接在书架上。 很容易就找到了教程,安装好之后感觉音质也还过得去。但是还有一个问题,还是得手动给音箱通断电。 需要安装教程的直接到最后。 开始折腾看了以下安装的插件shairport-sync,c语言写的。树莓派可以通过wiringPi控制gpio pin的高低电平。理论上只要在shairport-sync代码里面找到airplay连接和断开的地方,插入调用wiringPi的代码就可以实现airplay连接输出高电平,airplay断开输出低电平。手头上刚好有个继电器,开搞。 虽然大学时候c语言拿的满分,但是写了那么多年java几乎不记得c了。最简单的办法就是看日志,airplay连接断开肯定有日志: cd /usr/local/bin/ ./shairport-sync start -vv 开启日志输出,发现连上以后总有这一句: New RTSP connection from [xxxx:f772:904:0:e516:9d46:c35:f78f]:56734 to self at [xxxx:f772:904:0:64f3:36a7:4d32:c28f]:5000 on conversation thread 1. 断开的时候的日志: Connection 1: RTSP thread terminated. 研究了一下rtsp.c首先写一个初始化wiringPi的方法,在shairplay服务启动的时候初始化:
接下来就很简单了,通过日志关键字找到airplay连接时候代码的位置:
找到airplay断开连接的日志:
gpio readall 查看gpio端口,可以看到gpio pin1 对应物理端口12,顺便可以看到物理端口1是acc 14是gnd,后面接继电器会用到: 连接继电器,树莓派1,12,14连继电器vcc,in,gnd:
220v电路,自制插座,火线接继电器:
总结几行代码折腾了俩晚上,shairport-sync已经fork,commit了继电器相关代码,有兴趣的可以在这里安装,教程写的很详细。 |
香港服务器多少钱一个月?哪家的香港服务器
4核4g6M50G盘20G防御云服务器价格多少钱?T
特发集团与华为签署全面合作协议
【身边的AI】高空抛物智能追溯解决方案,站
中海&华为签署战略深化合作协议
华为赵博:数字化转型成为地产企业最确定的
这款TCL K6V指纹锁不到千元即可买到?大品
凯迪仕指纹锁哪款好用?买凯迪仕指纹锁选哪