目前安卓手机在日常使用频率非常高,之前本来想做一个手机APP遥控空调的,但后来发现很多手机自带红外功能(比如某米等),且随便装个软件就能实现了。于是用ESP8266wifi模块改装风扇,用手机APP直接控制,主要硬件为:ESP8266模块、ATmega8、3.3V降压芯片、BT136、光耦等。
主要流程是ESP8266接收网络数据,mega8收到后分析数据是否符合要求,然后根据指令控制BT136,风扇实现不同档位或运行停止。
ESP8266接入网络方案为:在无法接入主路由时,会自动建立一个AP,若要遥控则需手机接入此AP(密码在mega8 C程序内有)。主路由密码等信息存在mega8 eeprom内,可以在其AP模式下通过网络发送设置命令(由于APP端为单界面模式,无二级菜单或页面,故未在其中假如设置wifi信息的功能)。
网络连接好后,打开app会自动搜寻地址为16的风扇(设计有16-31地址16个风扇),若要控制下一个则点击右上角那个数字(如下图那个16),绿色表示此设备在线,红色表示无法连接。
mega8部分电路:
BT136(单片机通过光耦控制BT136)部分控制电路(本来想用继电器的,但继电器吸合保持需要大量电量):
手机APP界面,五个工作模式,三档风速,定时时间在那个有百分号的圆圈设置:顺时针画圈则时间增加,反之减少:
最下面的debug为查看收发的UDP数据。
内部通讯采用:地址+控制信息+校验 三部分组成,不会出现任何干扰上问题(前提是mega8程序4字节的遥控码和设备地址码不要一样)。
这不仅可以手机控制风扇,稍加修改还可以在mega8程序内置入更多设备的控制。程序以UDP网络传输为主,因为TCP过程多几步,因为要连接一个东西干嘛非得先知道其IP或先去设置IP呢,只要知道我要控制什么东西即可。
遥控插座其实更大意义在于一种保护功能,哪个设备没有待机功耗,只是空调等大型家电待机功耗大很多,但在切断电源时我更习惯于直接拔掉插头或者按下插座的机械开关。继电器来切断电源短时间是可行的,长期使用继电器总没普通机械可靠,且功率不可能很大。
具体程序及硬件电路等在此处下载:
http://www.pudn.com/downloads703/sourcecode/embedded/detail2826445.html 或
之前发错地方了,现在已调整修改好。