一、系统方案
手机APP通过ESP8266 WIFI模块与51单片机通信控制LED灯的开关。下位机由单片机、ESP8266模块和LED灯组成,上位机由Android手机APP承担。我们在APP上发送LED灯的开关控制指令,ESP8266将收到的数据发送给单片机,从而实现对LED灯进行开关控制。
设计好的实物是这个样子:
二、硬件设计
ESP8266模块作为一个透传模块使用,RXD、TXD分别连接51单片机的TXD和RXD,VCC和CH_PD管脚接3.3V电压,GND接地,只需要连接这些管脚,ESP8266模块就可以正常工作了。在单片机P2口上连接了三个5mm的LED灯,分别是红黄蓝三种颜色,我们的目的是通过手机APP上的开关控制着三个LED灯的亮灭。
ESP8266实物管脚图
三、单片机软件设计
硬件的连接不复杂,接下来主要是单片机和手机APP代码的编写。
单片机代码主要是串口初始化、串口中断和ESP8266的初始化。首先是串口初始化:
TMOD=0x20; //定时器1工作在方式2
TH1 = 0xfd; //波特率9600
TL1 = 0xfd;
SM0=0; //串口工作在方式1
SM1=1;
EA = 1; //开总中断
REN = 1; //使能串口
TR1 = 1; //定时器1开始计时
然后是ESP8266初始化:
delayms(1000); //延时
sendString("AT+CWMODE=2\r\n"); //设置ESP8266工作在AP模式下
delayms(1000);
sendString("AT+CIPMUX=1\r\n"); //允许多连接
delayms(1000);
sendString(&#