文章目录[隐藏]
第一步:所需材料:
既然你刷到我这篇学习总结了
那说明你必然有
1、51单片机(多数然应该是开发板,我用的是普中A7)————最好还有最小开发系统板
2、esp8266-01S
3、USB转TTL模块:这个模块并不是一定得有,你有开发板那就说明可以打开串口给单片机烧录程序了,但是有了也挺好,可以了解到这个模块接线的快乐,还可能遇到因为电压不足无法正常运行esp8266的问题,不踩坑就没办法进步,反正我是踩过了(无语)
4、杜邦线若干
5、数据线——进行数据传送,两根最好,但是要有开发板的电源线也是一样的,一根数据线一根电源线或数据线
附图一张👇
第二步:PC端通过USB转TTl配置esp8266——AT指令
1、先说USB转TTL与esp8266的接法
USB转TTL模块 | esp8266 |
RXD | TX |
TXD | RX |
GND | GND |
3.3V | 3.3V |
VCC | EV |
说明:
1.TXD发送引脚、RXD接收引脚,发送对接收,所以USB转TTL与esp8266的RXD、TXD交叉相接。
2.3.3V相接后可能无法启动esp8266,这是因为USB转TTL的3.3V引脚并没有真的达到3.3V,不要慌直接将esp8266的3.3V引脚接入USB转TTL的5V引脚,如果esp8266突然就发热并且烫的无法触摸,立马拔掉,如果说温度你的触感还能接受,那就没问题,毕竟牛X的esp8266没那么脆弱。
3.esp8266的EV引脚有些可能会标注成CH_PD,不要怕功能一样的,接线方式也是一样的
附图一张👇
既然连接好了就说说怎么用吧
连接好之后插入电脑的USB接口,然后打开XCOM(串口助手)串口助手网络上有好多种,说这个好用那个好用的,我只相信官方,去安信可科技官网下载串口助手,好不好用是否适合你不清楚,但是我知道他是官方的!!!官方的!!!
下载好之后直接可以打开,串口会自动刷新已连接的串口号,但是可能你电脑连接了多个,那你打开自己的计算机管理器->设备管理器->端口查看就行,一般情况下直接刷新了串口点击选择即可,我的端口是COM4,波特率115200就可以,因为esp8266出场固件波特率就是115200,而后打开串口,如下图👇
而后直接点击发送就行,然后巴拉巴拉的返回一些数据最后返回ready!就说明你已经连接成功了,很恭喜恭喜!如果不返回数据,仔细检查你线路连接,如果都连接正确,还是不返回数据,把线拔了在连一次,还是无法发送,把EV引脚拔了,还是不行,去安信可科技官网重新刷一遍你的固件。要注意的是:在使用多个软件使用串口时需关闭其他软件串口,因为一个串口只能被一个软件打开。如果串口打不开可能是电脑缺少CH340驱动。
安信可科技官网里面这些基础的资料都有自己慢慢探索~~~
现在进行用电脑对esp8266进行At指令配置(我只讲我用的AT指令,至于每条AT指令什么意思自己多去看看AT指令集,网上很多自己查吧)
1——首先发送 AT+CWMODE=3 既然是WiFi模块 他就既可以作为客户端连接别人的热点,也可以做服务端让别人连接它的热点 。
AT+CWMODE=1 | 1 Station 模式 |
AT+CWMODE=2 | 2 AP 模式 |
AT+CWMODE=3 | 3 AP 兼 Station 模式 |
AP模式:提供无线网络接入服务,允许其他无线设备连接其网络,类似无线路由器。
Station模式:本身不提供无线接入服务,可以连接AP,类似无线终端设备。
先跟着我的步骤走,连接成功了在一步一步尝试别的模式
2——其次发送 AT+CWSAP="ESP8266","12345678",11,3(里面的参数可以自行修改)
该指令的说明如下图👇
3——因为单片机的波特率最高就9600,所以为了后面单片机和esp8266正常通信,还要发送一条指令修改esp8266的波特率 AT+CIOBAUD=9600,8,1,0,0 返回ok后 记得将串口先断开然后把串口助手的波特率也进行修改 9600
4——最后一步 发送AT+RST 重启esp8266就完事了 然后你就可以把USB转TTL的线全部拆了 突然感觉轻松好多吧哈哈哈
第三步:单片机与esp8266通信
网上有好多示例点灯的,他们的侧重点好像都是在程序上,程序自然很重要,但是程序要与实际的开发板电路原理图相匹配才可以,要不然你程序写的无论多么规范,都完成不了你所需要实现的内容。
也是因为查阅好多资料都在讲程序怎么样怎么样,导致我一直觉得是我程序的问题,也是废了好大的劲才完成最最最基本的点灯实验。下面就开始讲我遇到的坑吧。
为了写这篇文章,我自己编写了一个最最最简单的点灯程序(别人的程序都是判断这个判断哪个 一共七八个灯一起亮,太麻烦了 对我这样的小白来说就像天书一样)
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit led1=P1^1;
sbit led2=P1^2;
sbit led3=P1^3;
uchar Recive_table[15];
uint i;
void delay_ms(uint ms)
{
uchar i,j;
for(i=ms;i>0;i--)
for(j=120;j>0;j--);
}
void delay_us(uchar us)
{
while(us--);
}
void Usart_Init()//初始化51单片机
{
SCON = 0x50;//串行口中断方式一,且启动串行口接受(REN=1)
TMOD = 0x20;//计数器1工作方式2,自动重装载
TH1 = 0xfd;//设置波特率与esp8266达成一致
TL1 = TH1;
PCON = 0;//波特率不加倍
TR1 = 1;//启动计数器
EA = 1;//开总中断
}
void SENT_At(uchar *At_Comd)//指针指向At指令
{
ES = 0;//关闭串口中断
while(*At_Comd!='\0')
{
SBUF = *At_Comd;
while(!TI);//等待该字节发送完毕,发送完后硬件自动置一TI
TI = 0;//硬件之以后必须软件置零才能进行下一次数据传送
delay_us(5);
At_Comd++;//指向下一个字节
}
}
void WIFI_Init()//通过单片机配置AT指令
{
SENT_At("AT+CIPMUX=1\r\n");//多连接模式
delay_ms(1000);
led1=0;//发送成功后亮灯
SENT_At("AT+CIPSERVER=1,8080\r\n");//设置端口号
delay_ms(1000);
led2=0;//设置成功后亮2号灯
ES = 1;
}
void main()
{
Usart_Init();
WIFI_Init();
while(1);
}
void Uart() interrupt 4 //中断程序
{
if(RI==1)//接受一帧完成后由硬件置一
{
RI = 0;//软件清零,防止下次未接收完成就执行程序
Recive_table[i] = SBUF; //将接受数据存入数组
if(Recive_table[0]=='+')
i++;
else
i = 0;
if(i>=10)
{
if((Recive_table[0]=='+')&&(Recive_table[1]=='I')&&(Recive_table[2]=='P')&&(Recive_table[3]=='D'))
{
if(Recive_table[9]=='1')//输入1亮灯
led3 = 0;
if(Recive_table[9]=='0')//输入0关灯
led3 = 1;
}
i = 0;//如果不清零 就无法达到变化
}
}
else
TI = 0;
}
是时候讲讲我遇到的最大的坑了,就是我开发板(普中A7)
由图我们可以看得出单片机的TXD、RXD两个引脚分别要出两个公引脚 一对是P3^0/P3^1 还有一对是开发板上USB转TTl的J44、J39排针上,所以当你USB转TTL上的跳线帽没有摘的时候,你把esp8266上的RXD、TXD引脚接入P3^0/P3^1引脚上的时候单片机就不知道你到底要给谁发送数据了,单片机也不知道自己到要接受谁的数据,单片机就会说,这啥啊这是!!!哈哈哈
所以正确的做法是把开发板上USB转TTL的跳线帽拔掉然后,插上esp8266的数据线就可以啦
但是有些开发板可能没有跳线帽是PCB内部接线,这就是开头所说到的,要一个开发板最小系统
第四步:网络调试助手
最后一步啦
打开手机上的网络调试助手,这个时候是不是又在想用哪一款网络调试助手呢,回答是一样的安信可科技,自己上官网搜索,虽然它里面有些性能真的不太好,但是他的界面我太爱了,官网就是牛X!
打开:点击左侧三条杠 点击TCP Client
输入以下IP地址 和 端口号 发送1led3亮 发送0led3 灭
注意:打开手机上网络助手时,应该先连接esp8266所建立的热点,进入网络助手后记得单片机重新上电,使单片机程序At指令重新配置esp8266.连接esp8266wifi后记得关闭自己手机的流量!!!
最后说明:::
我也是查了好多资料总完成的通信,每个人的开发板都不同,所用元器件也不一样,但是原理是一样的,特别感谢 赶路人的星光 他写的文章中有一篇也是关于点灯的 超级详细
这个文章也是我刚刚完成点灯后写的学习记录心得,肯定有说错讲错的地方,如果本人有让您刷到这篇文章了,可以积极评论,指出我的不足或者您的疑问,看到消息后会第一时间回复
刚开始使用博客,如果本文章对大家有用,希望大家关注走一波,有机会共同学习进步。
版权声明:本文为CSDN博主「吃土长大的娃」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/River_and_lake/article/details/121431164
暂无评论