WiFi站點(diǎn)(Station)和接入點(diǎn)(Access Point)
WiFi是由無(wú)線接入點(diǎn)AP(Access Point) 、站點(diǎn)(Station)等組成的無(wú)線網(wǎng)絡(luò)。 Station (STA)是指每個(gè)連接到無(wú)線網(wǎng)絡(luò)中的終端; 接入點(diǎn) (AP)是無(wú)線網(wǎng)絡(luò)的創(chuàng)建者,是網(wǎng)絡(luò)的中心節(jié)點(diǎn)

ESP8266模組支持STA、AP、STA+AP三種工作模式
- STA模式:ESP8266模塊通過(guò)路由器連接互聯(lián)網(wǎng),PC或手機(jī)通過(guò)互聯(lián)網(wǎng)實(shí)現(xiàn)對(duì)設(shè)備的遠(yuǎn)程控制
- AP模式:ESP8266模塊作為熱點(diǎn),PC或手機(jī)直接與模塊通訊,實(shí)現(xiàn)局域網(wǎng)無(wú)線控制
- STA+AP模式:兩種模式的共存,既可以通過(guò)路由器連接到互聯(lián)網(wǎng),通過(guò)互聯(lián)網(wǎng)控制設(shè)備; 也可以作為WiFi熱點(diǎn),供其他WiFi設(shè)備連接。 實(shí)現(xiàn)了局域網(wǎng)和廣域網(wǎng)的無(wú)縫切換
下面將介紹如何使用ESP8266 SDK開(kāi)發(fā)WiFi的Station和AP連接
1. Station連接
WiFi Station入網(wǎng)流程如下圖示:

實(shí)現(xiàn)步驟如下:
在ESP8266_RTOS_SDK目錄下新建station文件夾,把LED燈實(shí)驗(yàn)中的led目錄下所有文件拷貝到該文件夾中

使用Source Insight編輯器,編輯和瀏覽代碼; 新建工程,并將station和include文件夾下的文件添加到工程中; 在led燈程序基礎(chǔ)上,在user_main.c文件中的user_init()函數(shù)下添加如下代碼
user_init(void)
{
printf("SDK version:%s\\n", system_get_sdk_version());
Led_init();
wifi_set_opmode(STATION_MODE); //配置WiFi為Station模式
struct station_config *config = (struct station_config *)
zalloc(sizeof(struct station_config));//動(dòng)態(tài)的分配內(nèi)存空間
sprintf(config->ssid,SSID);
sprintf(config->password,PASSWORD);
wifi_station_set_config(config); //配置設(shè)置到寄存器里面
free(config); //釋放動(dòng)態(tài)分配的內(nèi)存
wifi_station_set_auto_connect(TRUE);//啟動(dòng)wifi的一鍵連接
xTaskCreate(ATaskLed, "LED", 256, NULL, 2, NULL);
}

回到ESP8266編譯器中,在station文件夾下,運(yùn)行g(shù)en_misc.sh文件,依次確認(rèn)配置(Y/1/2/3/4),編譯完成后,燒寫bin文件到ESP8266

打開(kāi)串口助手,模組復(fù)位后,串口輸出相關(guān)信息后,模塊顯示連接到無(wú)線網(wǎng)絡(luò)中,并獲取到路由分配的IP

2. AP連接
WiFi AP入網(wǎng)流程如下圖示:

實(shí)現(xiàn)步驟如下:
在ESP8266_RTOS_SDK目錄下新建ap文件夾,把LED燈實(shí)驗(yàn)中的led目錄下所有文件拷貝到該文件夾中

使用Source Insight編輯器,編輯和瀏覽代碼; 新建工程,并將ap和include文件夾下的文件添加到工程中; 在led燈程序基礎(chǔ)上,在user_main.c文件中的user_init()函數(shù)下添加如下代碼
user_init(void)
{
printf("SDK version:%s\\n", system_get_sdk_version());
Led_init();
wifi_set_opmode(SOFTAP_MODE); //設(shè)置為AP模式
struct softap_config *config = (struct softap_config *)
zalloc(sizeof(struct softap_config));
wifi_softap_get_config(config); //獲取當(dāng)前參數(shù)
sprintf(config->ssid,SSID); //傳入自己定義的網(wǎng)絡(luò)名稱
sprintf(config->password,PASSWORD); //傳入自己定義的網(wǎng)絡(luò)密碼
config->authmode = AUTH_WPA_WPA2_PSK;//授權(quán)加密方式
//設(shè)置網(wǎng)絡(luò)名稱長(zhǎng)度為0,表示網(wǎng)絡(luò)名稱字符串中遇到'\\0'時(shí)結(jié)束
config->ssid_len = 0;
config->max_connection = 4; //設(shè)置最大連接數(shù)
wifi_softap_set_config(config); //設(shè)置到寄存器
free(config); //釋放動(dòng)態(tài)存儲(chǔ)
xTaskCreate(ATaskLed, "LED", 256, NULL, 2, NULL);
}

回到ESP8266編譯器中,在ap文件夾下,運(yùn)行g(shù)en_misc.sh文件,依次確認(rèn)配置(Y/1/2/3/4),編譯完成后,燒寫bin文件到ESP8266

燒寫bin文件到ESP8266后,打開(kāi)串口助手,模組復(fù)位后,串口輸出相關(guān)信息,用手機(jī)連接AP,獲取到AP分配的地址

-
無(wú)線網(wǎng)絡(luò)
+關(guān)注
關(guān)注
6文章
1515瀏覽量
69005 -
WIFI
+關(guān)注
關(guān)注
82文章
5509瀏覽量
213527 -
編譯器
+關(guān)注
關(guān)注
1文章
1672瀏覽量
51597 -
SDK
+關(guān)注
關(guān)注
3文章
1101瀏覽量
51714 -
ESP8266
+關(guān)注
關(guān)注
51文章
970瀏覽量
49474
發(fā)布評(píng)論請(qǐng)先 登錄
ESP8266緩存AP后,是否會(huì)自動(dòng)連接到任何緩存的AP?
ESP8266EX連接到WIFI AP時(shí),是否需要執(zhí)行一些特殊程序?
esp8266 AP STA連接丟失的原因?
WIFI_AP_STA軟AP只有STATION連接時(shí)才工作是為何?
ESP8266_SDK_User_Manual_Version 1.4
ESP8266中文版SDK編程手冊(cè)
esp8266,tcp通信實(shí)例詳解
ESP8266 SDK開(kāi)發(fā)環(huán)境搭建初級(jí)教程
基于ESP8266芯片方案的WIFI開(kāi)發(fā)板的詳細(xì)介紹和使用說(shuō)明資料概述
ESP8266(NodeMCU)無(wú)線終端模式連接WiFi
ESP8266 wifi模塊開(kāi)發(fā)匯總
ESP8266連接手機(jī)
ESP8266--SDK開(kāi)發(fā)(HelloWorld!)
使用ESP8266-01制作WIFI遙控小車(一)
如何使用ESP8266 SDK開(kāi)發(fā)WiFi的Station和AP連接
評(píng)論