分享

基于STC89C51单片机的esp8266-01wifi模块(程序加模块引脚图)

 左手665 2019-09-27

2019年9月27日 10:28                                                                   

引脚图及连接方式

红色字体的引脚需要连接,其余不用连,只需了解

VCC:接3.3V的高电平(必须是3.3v 否则会烧坏模块)

GND:接地

RX:模块串口通信的接收引脚,接到单片机的TX引脚。

TX:模块的发射端,接单片机的RX接口。

CH_PD:接高电平(和vcc引脚焊接起来)

GPIO0:默认情况下不接线,在刷固件时要接低电平。

GPIO2:悬空

RST:低电平复位,默认悬空。

用下载器连接WiFi模块,然后用串口助手发送一下AT指令

串口助手附件  SSCOM.rar (267.9 KB, 下载次数: 127)

串口助手中波特率初始为115200,更改以后波特率将永久保存,除非再次更改

1、设置模块为ST模式:发送:AT+CWMODE=1;返回:OK

2、  查看当前WiFi列表:AT+CWLAP返回: OK

3、  加入当前无线网络:发送命令:AT+CWJAP=”MERSAIN”,”XXXXXXXX”

第一个填你想要连接的WiFi名称,第二个填WiFi的密码

4、查看当前模块IP地址:发送: AT+CIFSR返回:当前IP地址

5、开启多连接模式 :发送命令:AT+CIPMUX=1返回:OK

6、建服务器 发送命令:AT+CIPSERVER=1,8080(设置指令)

   指令:AT+CIPSERVER=<mode>[,<port>]


说明:<mode>:0-关闭server模式,1-开启server模式       <port>:端口号,缺省值(默认值)为333 响应:OK

7、更改波特率为9600   AT+UART=9600,8,1,0,0(视单片机波特率而定)

更改波特率

wifi模块ESP8266的默认波特率是115200,但是单片机不能达到那么快的传输速率,只能使用9600bps,那么设置的时候,必不可少的要先用转串口调试下载器(速度比较快,而且wifi模块默认115200bps,用单片机不能正确更改波特率,转串口工具可以),设置指令,AT+UART=9600,8,1,0,0   在下载器连接模块时更改波特率

程序

向单片机下载程序时先不接模块,下载完成之后断电之后再连接模块

//此程序是手机连接ESP8266模块以后向模块发送字符a,控制单片机蜂鸣器的鸣与灭

#include<reg52.h>

typedef unsigned char u8;

typedef unsigned int u16;

u8 dat;

sbit beep=P2^3;

void ConfigUART(u16 buad);//串口通信初始化函数,buad为单片机设置的波特率。

void Delay_ms(u16 n);

void Uart_Send_String(u8 *string);//串口发送多个字节。

void Delay_Us(u8 us);

void Sent_UART(u8 dat);//串口发送一个字节

void ESP8266_Init();//ESP8266初始化

void main()

{

         EA = 1;

   ConfigUART(9600);

         ESP8266_Init();

        while(1);

}

void ConfigUART(u16 buad)

{

        SCON = 0x50;

        TMOD &= 0X0F;

        TMOD |= 0x20;

        TH1 = 256 - (11059200/12/32)/buad;

        TL1 = TH1;

        ET1 = 0;

        TR1 = 1;

}

void Sent_UART(u8 dat)

{

        ES = 0;

        TI=0;

        SBUF = dat;

        while(!TI);

TI = 0;

ES = 1;

}

void Delay_Us(u8 us)

{

while(us--);

}

void Delay_ms(u16 n)

{

        unsigned int  i,j;

        for(i=0;i<n;i++)

                for(j=0;j<123;j++);

}

void Uart_Send_String(u8 *string)

{

while(*string)

{

Sent_UART(*string++);

Delay_Us(5);

}

}

void ESP8266_Init()

{

        Uart_Send_String("AT\r\n");

        Delay_ms(2000);

        Delay_ms(1000);

        Uart_Send_String("AT\r\n");

        Delay_ms(2000);

        Delay_ms(1000);

  Uart_Send_String("AT+CIPMUX=1\r\n");

        Delay_ms(2000);

        Delay_ms(1000);

  Uart_Send_String("AT+CIPSERVER=1,8080\r\n");

}

void InterruptUART() interrupt 4

{

    if (RI)  //接收到字节

    {

        RI = 0;  //手动清零接收中断标志位

        dat = SBUF;  //接收到的数据保存到接收字节变量中

                if(dat=='a')

                        {

                                beep=~beep;

                        }                                         //接收到的数据又直接发回,叫作-"echo",

                         //用以提示用户输入的信息是否已正确接收

    }

    if (TI)  //字节发送完毕

    {

        TI = 0;  //手动清零发送中断标志位

    }


}

手机软件

 

这两个软件均可使用

以netassist为例

打开后点击tcp client

设置ip地址和端口号             ip地址看发送AT+CIFSR返回的IP值;

端口号看你发送的端口     AT+CIPSERVER=1,8080   这里是8080

然后连接  在发送框发送a即可控制蜂鸣器

   2019年9月27日 10:28   

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多