Soft-AP模式建立和51连接,最详细的傻瓜式小白入门
Posted 菜弱小垃圾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Soft-AP模式建立和51连接,最详细的傻瓜式小白入门相关的知识,希望对你有一定的参考价值。
文章目录
前言
本文编辑:孙韶辉,如有侵权,请联系V18149072101
一、文章内容:
Esp8266和51单片机连接,实现无线控制灯开关及其他动作
二、实现思路
三、实现教程
1:ESP8266和PC串口助手连接
把ESP8266模块的VCC, GND, CH_PD, UTXD, URXD 口分别接USB转TTL模块的3.3v, 地, 3.3v, RXD, TXD,不可接到5V。
2.下载串口助手,连接ESP8266
提取码:3tz5
1:将串口助手波特率调节为115200,这是ESP8266初始状态波特率,
2:打开串口
3:在串口输入指令“AT”发送,返回OK,说明连接成功,如果乱码,查看波特率是否真确
3、配置ESP8266(通过PC机下发配置指令)
3.1 指令介绍
- AT+CIOBAUD=X 改模块的波特率, X 为要改成的波特率
- AT+CIOBAUD=X
AT+CWMODE=X(设置工作模式指令, X 可以是 1、 2、 3,具体如下:
1: Station 模式 //作为客户端
2: AP 模式 //作为热点
3: Station+AP 模式 //混合模式
Station 可理解为让 wifi 模块去连接路由器或热点,此时模块作为客户端
AP 模式可理解为模块本身是一个热点,手机或电脑可以连接这个热点,此时模块作为服务器。
这里用的是 AP 模式 - AT+RST(重启指令,设置新的工作模式后需重启才能生效。 发送完这条指令后再发送其它指令可能会显示串口无效,需要退出串口调试助手再重新进入 )
- AT+CWSAP?(可以查看当前 AP 模式下模块热点的具体信息)
- AT+CIFSR( 查看 IP 地址)
- AT+CIPMUX=1
- AT+CIPSERVER=1, X( 1 表示开启服务器, X 为自己设置的端口号)
- AT+CWLAP //显示无线列表
- AT+CWJAP=“WIFI名称” ,“密码”
注意:6和7指令掉电要重新配置
3.2 演示
- 发送‘AT’,返回OK;
- 发送‘AT+CWMODE=2’,设置模式为热点AP模式
- AT+CWSAP=“ESP8266”,“0123456789”,11,3//建立自身WIFI热点
- 发送‘AT+RST’;,回复OK,热点建立完毕
- AT+CIPMUX=1
- AT+CIPSERVER=1,6666//配置端口号
- 这两条掉电需要重新配置
- AT+CIFSR //获取IP地址
现在热点已经建立完毕,可以用手机WIF搜索到ESP8266,并且连接,安卓手机端可以下载 TCP连接软件,
- 打开软件的界面
- 将刚查询到的IP地址还有自己设置的端口号输入进去,就可以与手机连接,这里我的单片机不在身边,就不做演示
- 软件界面,这些东西可以自定义设置
- 将ESP8266波特率设置和51波特率相同,因为51用的是12M晶振,所以这里设置为4800,
- AT+CIOBAUD=X,X为需要改的波特率,
- 发送AT+RST,重启设备,
- 然后将PC串口助手波特率设置为刚才改的波特率,
- 发送AT,如果返回OK,设置完成
这里不要高兴太早,我们只是手工完成了单片机该做的事,要完成自动连接,就必须往51单片机里写入我们刚才的流程,让他代替手动,第一步完成
4. 51单片机代替PC串口助手发送指令
现在51单片机波特率和ESP8266波特率已经相同,可以通讯了,然后就来写程序,代替手动,这里只写入关键程序
//51发送指令程序建立热点
uchar code table[]="AT+CIPMUX=1\\r\\n";//光标移置行首,变行
uchar code table1[]="AT+CIPSERVER=1,6666\\r\\n";//波特率为6666
/*-----------------------------------------------------*/
void usart() //串口初始化函数// 波特率4800
{
TMOD = 0x20;
TH1 = 0xF3;
TL1 = 0xf3;
PCON = 0x00;
TR1 = 1;
SCON = 0x50;
EA = 1;
ES = 1;
}
/*-----------------------------------------*/
void Esp8266Init()
{
uchar a=0,b=0;
while(table[a]!='\\0')
{
SBUF=table[a];
while(!TI);
TI=0;
a++;
}
shortdelay(500);
shortdelay(500);
shortdelay(500);
shortdelay(500);
shortdelay(500); //这里用了多个延时,测试,如果太快了,热点无法建立
while(table1[b]!='\\0')
{
SBUF=table1[b];
while(!TI);
TI=0;
b++;
}
}
到此处51已经控制8266热点建立完毕,可以连接WIFI了
5. 手机控制单片机执行任务
到这里,手机已经和8266连接,现在只需要写入单片机控制命令和服务程序就可以了
//串口终端来临,单片机接受指令,并存入缓冲区
void usart_()interrupt 4
{
temp=SBUF; //取出接收到的数据
RI=0; //清除接收中断标志位
if(temp==':'||i>0)
{
receive[i]=temp;
i++;
if(temp=='\\n')
{
i=0;
}
}
}
//控制服务程序
while(1)
{
if(receive[1]=='1')
{
index++;
if(index>=99)
index=0;
}
if(receive[1]=='0')
{
index--;
if(index>=0)
index=99;
}
if(receive[1]=='3')
{ //收到1点亮所有LED
P0=0XFF;
}
if(receive[1]=='4') //否则熄灭所有LED
{
P0=0X00;
}
}
Motor_dec();//电机转动方向程序顺时针
Motor_add();//逆时针
}
}
将前后程序写入51,就可以完成控制,第三步完成。 本内容只为新手能快速入门,如有错误,请指正!
【手机控制51单片机-哔哩哔哩】https://b23.tv/GlFwyj
以上是关于Soft-AP模式建立和51连接,最详细的傻瓜式小白入门的主要内容,如果未能解决你的问题,请参考以下文章