端到端智能音箱
背景
前段时间买了个小米的空调伴侣,想用来查看空调的功率,以确认空调到底会用掉多少电。
买的时候发现空调伴侣也支持红外控制,这就得好好利用一下了。但是有个尴尬的问题,
就是空调插座在很偏的地方,导致了无法控制空调,也没法控制投影仪。
当一个东西你拥有了以后又失去的时候,你会很难受,所以我就想着要再买它一个红外控
制设备来做这个事,看了一圈发现,小米万能遥控没得买了,变成了理财产品,所以就找了
一款替代产品。欧瑞博的一款万能遥控。买完之后才发现,虽然能控制空调和投影仪了,但
是有两个很严重的问题:
是没法使用小爱来通过欧瑞博的万能遥控来控制投影仪,目前两边还没打通,所以该功能
还没法支持。
是使用小爱通过欧瑞博控制空调的时候常常无响应,估计就是小爱调用欧瑞博的过程出问
题了,因为直接使用欧瑞博的 app 是可以生效的。
决定自制红外控制设备
到此,我决定,要不自己做一个吧,貌似成本也挺便宜的,还能玩玩 IoT,多有意义。
所以我就花了大量的时间来做这个事,先去调研了一下用什么单片机,后面了解到用
ESP32 还挺好的,集成了 WIFI 和蓝牙,之后还可以实现一些比较 fancy 的功能。
除了硬件,当然还需要给刷上固件了,所以,还需要快速自学一下程序该咋写,于是乎就
快速过了一遍《Arduino 从基础到实践》,通过控制 LED 灯来练了一下手。接下来就是开发
红外功能了,淘宝上 9 块钱买了红外收发的模块,借助 PlatformIO 开发了第一版红外固件,
成功地点亮了投影仪,但是同时还有两个大坑没填:
是红外发射模块太弱了,只能在差不多半米的距离来控制设备;
是死活控制不了空调。
后续通过另购了一款 16 元的大功率发射模块解决了问题 1。
对于问题 2,着实折磨了我好几天的时间,到处检查到底是哪里的代码写出问题了,因此
还去研究了一下红外协议,按位对比了一下我发射出去的红外和空调遥控发射出去的红外到
底有什么不同,后来发现,格力空调的红外有点特殊,但只需要修改一下配置,就能轻松解
决。
终于搞定了控制问题,顺手再撸一个 WebServer 来接受请求。
到此,单片机端的部分就告一段落了。