ESP8266(AP 模式)控制 51 单片机
Esp8266 是 ALIENTEK 的一款 UART-WIFI 模块,采
用(LVTTL)与 MCU(或其他串口)通讯,内置 TCP/IP
协议,可以实现串口与 wifi 之间的数据转换。
支持 LVTTL,兼容 3.3V 和 5V 的单片机系统。
工作方式:STA 、AP 、STA+AP
STA:需要连接 wifi,智能设备通过互联网对设备进行
控制。
AP:默认模式,作为热点,自己的局域网,可以有 5
个客户机,与智能设备连接。进行通讯。
STA+AP:无缝切换,方便实用。
这个小实验主要是使用的 AP 工作下的 TCP Client 透传
模式。(UDP 透传)
、、、透传只在单连接的模式下可以实现。(透传就是傻
瓜式传输,不许考虑协议)。
实现实验::
[注意:刷入指令时,模块与开发板是 R-R、T-T
控制灯亮灭时,R-T、T-R
开发板与模块共地,否则信号不识别]
一:ESP8266 配置成服务器
(1) 测试 AT 指令:AT
(2) 更改模块波特率: AT+CIOBAUD=9600 (波特率设置成功后要
更改后再进行设置其它波特率)
(3) 复位重启模块:AT+RST
(4) 设置为 AP 模式:AT+CWMODE=2
(5)
设 置 name
password, 加 密 方
式:AT+CWSAP="esp8266","0123456789",11,4
(6) 查看主机端的 ip 地址:AT+CIFSR(此处的 IP 地址是模块本身
的 IP,不是 ST 模式中加入路由器后分配的 IP)
(7) 设置模块传输模式为 TCP 模式:AT+CIPMODE=0
(8) 设置为多连接模式,启动模块:AT+CIPMUX=1
(9) 服务器的设置端口:AT+CIPSERVER=1,8090 (TCP client 连
接 server 时端口号要保持一致)
注:把以上 AT 指令刷入 ESP8266 模块,刷入成功都会返回 ok,一到
七的指令掉电保存,最后两条指令每次重启都要重新刷入。
二:智能设备
ESP8266 在 AP 模式下发散出来一个热点,模块作为服务器 TCP server.
手机 APP 或网络调试助手作为客服端 TCP client 去访问服务器,从而实现无线控
制.
这里介绍一下手机 APP 对 LED 无线控制的具体操作过程:
(1)手机上下载一个网络调试助手
(2)打开手机 WiFi 可以搜索到 esp8266 点击连接,连接成功后会有
提示说"此热点无上网功能,是否切换"点击否.
(3)打开手机 APP,点击 TCP client 连接,输入 AT 指令中获取的 IP
地址,选择端口号,点击连接.
(4)连接成功后,输入字符小写的 o 就会打开 LED 灯,输入小写字符
f 关闭 LED 灯.
三:51 实现(串口中断)程序
#include
typedef unsigned int u16;
sbit LED = P1^3;dat;
void Init();//串口初始化函数
void Delay_ms(u16 n);//延时子函数
void Init();//串口初始化函数
void main()
{
Init();
while(1);
}
void Init(void)
{
//定时器工作方式 2,8 位自动重载(0010 0000)
//装入初值
TMOD = 0x20;
TL1 = 0xfd;
TH1 = 0xfd;
TR1 = 1; //启动定时器 1
REN=1;
SM0=0;
SM1=1;
//允许串行口接收数据
//工作方式 1,10 位异步收发
EA = 1;
ES=1;
//打开全局中断控制
//打开串行口中断
}
void Delay_ms(u16 n)
{
unsigned int i,j;
for(i=0;i