找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 37393|回復(fù): 16
打印 上一主題 下一主題
收起左側(cè)

基于STC89C51單片機(jī)的esp8266-01wifi模塊(程序加模塊引腳圖)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
引腳圖及連接方式
紅色字體的引腳需要連接,其余不用連,只需了解
VCC:接3.3V的高電平(必須是3.3v 否則會(huì)燒壞模塊)
GND:接地
RX:模塊串口通信的接收引腳,接到單片機(jī)的TX引腳。
TX:模塊的發(fā)射端,接單片機(jī)的RX接口。
CH_PD:接高電平(和vcc引腳焊接起來(lái))
GPIO0:默認(rèn)情況下不接線,在刷固件時(shí)要接低電平。
GPIO2:懸空
RST:低電平復(fù)位,默認(rèn)懸空。
用下載器連接WiFi模塊,然后用串口助手發(fā)送一下AT指令
串口助手附件 SSCOM.rar (267.9 KB, 下載次數(shù): 207)
串口助手中波特率初始為115200,更改以后波特率將永久保存,除非再次更改
1、設(shè)置模塊為ST模式:發(fā)送:AT+CWMODE=1;返回:OK
2、  查看當(dāng)前WiFi列表:AT+CWLAP返回: OK
3、  加入當(dāng)前無(wú)線網(wǎng)絡(luò):發(fā)送命令:AT+CWJAP=”MERSAIN”,”XXXXXXXX”
第一個(gè)填你想要連接的WiFi名稱,第二個(gè)填WiFi的密碼
4、查看當(dāng)前模塊IP地址:發(fā)送: AT+CIFSR返回:當(dāng)前IP地址
5、開啟多連接模式 :發(fā)送命令:AT+CIPMUX=1返回:OK
6、建服務(wù)器 發(fā)送命令:AT+CIPSERVER=1,8080(設(shè)置指令)
   指令:AT+CIPSERVER=<mode>[,<port>]

說(shuō)明:<mode>:0-關(guān)閉server模式,1-開啟server模式       <port>:端口號(hào),缺省值(默認(rèn)值)為333 響應(yīng):OK
7、更改波特率為9600   AT+UART=9600,8,1,0,0(視單片機(jī)波特率而定)
更改波特率
wifi模塊ESP8266的默認(rèn)波特率是115200,但是單片機(jī)不能達(dá)到那么快的傳輸速率,只能使用9600bps,那么設(shè)置的時(shí)候,必不可少的要先用轉(zhuǎn)串口調(diào)試下載器(速度比較快,而且wifi模塊默認(rèn)115200bps,用單片機(jī)不能正確更改波特率,轉(zhuǎn)串口工具可以),設(shè)置指令,AT+UART=9600,8,1,0,0   在下載器連接模塊時(shí)更改波特率
程序
向單片機(jī)下載程序時(shí)先不接模塊,下載完成之后斷電之后再連接模塊
//此程序是手機(jī)連接ESP8266模塊以后向模塊發(fā)送字符a,控制單片機(jī)蜂鳴器的鳴與滅
#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
u8 dat;
sbit beep=P2^3;
void ConfigUART(u16 buad);//串口通信初始化函數(shù),buad為單片機(jī)設(shè)置的波特率。
void Delay_ms(u16 n);
void Uart_Send_String(u8 *string);//串口發(fā)送多個(gè)字節(jié)。
void Delay_Us(u8 us);
void Sent_UART(u8 dat);//串口發(fā)送一個(gè)字節(jié)
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)  //接收到字節(jié)
    {
        RI = 0;  //手動(dòng)清零接收中斷標(biāo)志位
        dat = SBUF;  //接收到的數(shù)據(jù)保存到接收字節(jié)變量中
                if(dat=='a')
                        {
                                beep=~beep;
                        }                                         //接收到的數(shù)據(jù)又直接發(fā)回,叫作-"echo",
                         //用以提示用戶輸入的信息是否已正確接收
    }
    if (TI)  //字節(jié)發(fā)送完畢
    {
        TI = 0;  //手動(dòng)清零發(fā)送中斷標(biāo)志位
    }

}
手機(jī)軟件

這兩個(gè)軟件均可使用
以netassist為例
打開后點(diǎn)擊tcp client
設(shè)置ip地址和端口號(hào)             ip地址看發(fā)送AT+CIFSR返回的IP值;
端口號(hào)看你發(fā)送的端口     AT+CIPSERVER=1,8080   這里是8080
然后連接  在發(fā)送框發(fā)送a即可控制蜂鳴器

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏15 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:99548 發(fā)表于 2018-4-29 06:36 來(lái)自手機(jī) | 只看該作者
要學(xué)習(xí),謝謝!
回復(fù)

使用道具 舉報(bào)

板凳
ID:116686 發(fā)表于 2018-5-4 17:51 | 只看該作者
發(fā)送AT指令沒有返回值,界面是空白的
回復(fù)

使用道具 舉報(bào)

地板
ID:294531 發(fā)表于 2018-5-5 23:08 | 只看該作者
單片機(jī)晶振是12M  波特率也是9600嗎還是更低?
回復(fù)

使用道具 舉報(bào)

5#
ID:313571 發(fā)表于 2018-5-6 20:34 | 只看該作者
sanshisui 發(fā)表于 2018-5-5 23:08
單片機(jī)晶振是12M  波特率也是9600嗎還是更低?

晶振11.0592  波特率9600
回復(fù)

使用道具 舉報(bào)

6#
ID:294531 發(fā)表于 2018-5-6 21:26 | 只看該作者
為什么全部弄好在手機(jī)發(fā)送a沒有反應(yīng)呢?樓主能回答一下嗎
回復(fù)

使用道具 舉報(bào)

7#
ID:313571 發(fā)表于 2018-5-7 18:51 | 只看該作者
sanshisui 發(fā)表于 2018-5-6 21:26
為什么全部弄好在手機(jī)發(fā)送a沒有反應(yīng)呢?樓主能回答一下嗎

模塊波特率改了嗎,模塊初始波特率為115200,需要改為和單片機(jī)一樣的波特率9600,我用的51單片機(jī)
回復(fù)

使用道具 舉報(bào)

8#
ID:313571 發(fā)表于 2018-5-7 18:52 | 只看該作者
aptx48694517 發(fā)表于 2018-5-4 17:51
發(fā)送AT指令沒有返回值,界面是空白的

看看波特率改了沒,按照上面方法應(yīng)該可以連上,親測(cè)可以
回復(fù)

使用道具 舉報(bào)

9#
ID:348800 發(fā)表于 2018-6-10 16:06 | 只看該作者
sanshisui 發(fā)表于 2018-5-6 21:26
為什么全部弄好在手機(jī)發(fā)送a沒有反應(yīng)呢?樓主能回答一下嗎

你解決了嗎?我也沒有反應(yīng)呢
回復(fù)

使用道具 舉報(bào)

10#
ID:280860 發(fā)表于 2018-6-11 15:35 來(lái)自手機(jī) | 只看該作者
單片機(jī)與8266之間需要電平轉(zhuǎn)換嗎?
回復(fù)

使用道具 舉報(bào)

11#
ID:303383 發(fā)表于 2018-6-11 15:50 | 只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

12#
ID:303383 發(fā)表于 2018-6-11 15:52 | 只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

13#
ID:470508 發(fā)表于 2019-4-22 19:49 | 只看該作者
aptx48694517 發(fā)表于 2018-5-4 17:51
發(fā)送AT指令沒有返回值,界面是空白的

我也是這個(gè)情況
回復(fù)

使用道具 舉報(bào)

14#
ID:516576 發(fā)表于 2019-4-23 11:47 | 只看該作者

兄弟,我也是這個(gè)情況。通過串口助手直接給esp8266發(fā)送AT指令就可以,但中間連接個(gè)單片機(jī),也下載了通信程序,然后再通過串口助手發(fā)送AT指令,esp8266就不響應(yīng)了。
方便的話加個(gè)聯(lián)系方式,一起討論一下,我的qq1499414490
回復(fù)

使用道具 舉報(bào)

15#
ID:329997 發(fā)表于 2019-4-26 19:53 | 只看該作者
輸入IP和端口號(hào),連接不上是什么原因,
回復(fù)

使用道具 舉報(bào)

16#
ID:83626 發(fā)表于 2021-9-20 10:32 | 只看該作者
這個(gè)好,必須學(xué)習(xí)一下。
回復(fù)

使用道具 舉報(bào)

17#
ID:964308 發(fā)表于 2021-10-13 15:56 來(lái)自手機(jī) | 只看該作者
esp8266可以用socket發(fā)送指令嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表