初次接触ESP8266模块,说实话还是费了很大的劲,从硬件部分到软件部分,一个一个的问题对于我这个新手来说,确实有些吃力。不过还好,在51hei电子论坛有很多这方面的资料,也有很多很友好的人,感谢他们给予的帮助。
虽然我是一个菜鸟,但我还是希望和大家分享一下。时间比较仓促,代码也有很多不成熟的地方,希望能对初次接触这个模块的人有一些帮助。
1,硬件:USB转TTL是必需的,ESP8266模块,一般模块出厂就已经烧好了固件,拿到就可以直接发AT指令,AT指令的手册网上很多,可以自行百度。
硬件连接 TXD-RXD, RXD-TXD; 交叉连接,有的模块需要自己拉高一个引脚的电平,如图所示,电源最好是3.3V,模块发热很严重,不要长时间接电。
2 ,软件:在执行代码之前,模块要先设定好什么模式,用串口助手发送AT指令设定。我的是AP模式,模块设定为server端,然后生成一个WiFi,名字随 意,这个时候(当然得知道模块的IP地址),可以用电脑上的网络助手,尝试连接模块,电脑必须连接ESP8266模块产生的WiFi才可以;这几步之后,模块就可以连接已经下载好的单片机了,在上面设定好之后,模块断电重启后,在设定的模式不会变,WiFi不会变,后面的指令就需要通过单片机发送了。到这儿基本就可以实现简单的通讯了,程序工程已附上。
时间仓促,我也是这几天才学的,分享只是为了更多的分享,不足的地方希望谅解,目前准备做433M。有愿意指导的或是技术交流的可以加我qq1946706342
单片机源程序如下:
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit D1 = P2^0;
sbit D2 = P2^1;
sbit D3 = P2^2;
sbit D4 = P2^3;
sbit D5 = P2^4;
sbit D6 = P2^5;
sbit D7 = P2^6;
sbit D8 = P2^7;
uchar Receive;
uchar Recive_table[15];
uchar flag = 1;
uchar flag1 = 1;
uchar flag2 = 0;
uchar num = 0;
uint i=0;
void ms_delay(uint n)
{
uint j,m;
for( m =n; m>0; m--)
for(j=110; j>0; j--);
}
void us_delay(uchar n)
{
while(n--);
}
void Usart_init()
{
SCON = 0x50; //设置串行口工作在方式一,且启动串行口接收(REN=1)
TMOD = 0x20; //设置计数器1工作在方式二,即自动重装计数值(8位)
PCON=0X80;
TH1 = 0xf3; //设置波特率为4800
TL1 = 0xf3;
EA = 1; //开总中断
TR1 = 1; //启动计数器
}
void sent_AT(uchar *at_comd)
{
ES = 0;
while(*at_comd != '') //字符串结束标志
{
TI = 0;
SBUF = *at_comd;
while(!TI);
TI = 0;
us_delay(5);
at_comd++;
}
us_delay(5);
SBUF = 'r';
while(!TI);
TI = 0;
us_delay(5);
SBUF = 'n';
while(!TI);
TI = 0;
}
void main()
{
uchar Recivedat;
// uchar Rec;
Usart_init();
ms_delay(5000);
ES = 0;
while(flag == 1){
sent_AT("AT+CIPMUX=1");//最方便的是直接printf("AT+CIPMUX=1rn");我想弄清楚发送原理,所以绕了一个弯
flag1 = 1;
while(flag1 == 1)//检测模块是否返回OK
{
if(RI)
{
RI = 0;
Recivedat = SBUF;
if(Recivedat == 'K')
{
flag = 0;
flag1 = 0;
}
}
num++;
if(num == 1000)
{
num = 0;
flag1 = 0;
}
}
}
flag = 1;
flag1 = 1;
num = 0;
D1 = 0;
while(flag == 1){
sent_AT("AT+CIPSERVER=1,8080");
flag1 = 1;
while(flag1 == 1)
{
if(RI)
{
RI = 0;
Recivedat = SBUF;
if(Recivedat == 'K')
{
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』