WiFi站點(diǎn)(Station)和接入點(diǎn)(Access Point)
WiFi是由無線接入點(diǎn)AP(Access Point) 、站點(diǎn)(Station)等組成的無線網(wǎng)絡(luò)。 Station (STA)是指每個(gè)連接到無線網(wǎng)絡(luò)中的終端; 接入點(diǎn) (AP)是無線網(wǎng)絡(luò)的創(chuàng)建者,是網(wǎng)絡(luò)的中心節(jié)點(diǎn)
ESP8266模組支持STA、AP、STA+AP三種工作模式
- STA模式:ESP8266模塊通過路由器連接互聯(lián)網(wǎng),PC或手機(jī)通過互聯(lián)網(wǎng)實(shí)現(xiàn)對(duì)設(shè)備的遠(yuǎn)程控制
- AP模式:ESP8266模塊作為熱點(diǎn),PC或手機(jī)直接與模塊通訊,實(shí)現(xiàn)局域網(wǎng)無線控制
- STA+AP模式:兩種模式的共存,既可以通過路由器連接到互聯(lián)網(wǎng),通過互聯(lián)網(wǎng)控制設(shè)備; 也可以作為WiFi熱點(diǎn),供其他WiFi設(shè)備連接。 實(shí)現(xiàn)了局域網(wǎng)和廣域網(wǎng)的無縫切換
下面將介紹如何使用ESP8266 SDK開發(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
打開串口助手,模組復(fù)位后,串口輸出相關(guān)信息后,模塊顯示連接到無線網(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后,打開串口助手,模組復(fù)位后,串口輸出相關(guān)信息,用手機(jī)連接AP,獲取到AP分配的地址
-
無線網(wǎng)絡(luò)
+關(guān)注
關(guān)注
6文章
1467瀏覽量
67085 -
WIFI
+關(guān)注
關(guān)注
81文章
5402瀏覽量
208287 -
編譯器
+關(guān)注
關(guān)注
1文章
1662瀏覽量
50203 -
SDK
+關(guān)注
關(guān)注
3文章
1077瀏覽量
49060 -
ESP8266
+關(guān)注
關(guān)注
51文章
965瀏覽量
47394
發(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開發(fā)環(huán)境搭建初級(jí)教程

如何設(shè)計(jì)和開發(fā)PCBESP8266WiFi模塊
ESP8266(NodeMCU)無線終端模式連接WiFi

ESP8266 wifi模塊開發(fā)匯總

ESP8266連接手機(jī)

使用ESP8266-01制作WIFI遙控小車(一)

評(píng)論