WiFi站點(Station)和接入點(Access Point)
WiFi是由無線接入點AP(Access Point) 、站點(Station)等組成的無線網(wǎng)絡(luò)。 Station (STA)是指每個連接到無線網(wǎng)絡(luò)中的終端; 接入點 (AP)是無線網(wǎng)絡(luò)的創(chuàng)建者,是網(wǎng)絡(luò)的中心節(jié)點
ESP8266模組支持STA、AP、STA+AP三種工作模式
- STA模式:ESP8266模塊通過路由器連接互聯(lián)網(wǎng),PC或手機通過互聯(lián)網(wǎng)實現(xiàn)對設(shè)備的遠程控制
- AP模式:ESP8266模塊作為熱點,PC或手機直接與模塊通訊,實現(xiàn)局域網(wǎng)無線控制
- STA+AP模式:兩種模式的共存,既可以通過路由器連接到互聯(lián)網(wǎng),通過互聯(lián)網(wǎng)控制設(shè)備; 也可以作為WiFi熱點,供其他WiFi設(shè)備連接。 實現(xiàn)了局域網(wǎng)和廣域網(wǎng)的無縫切換
下面將介紹如何使用ESP8266 SDK開發(fā)WiFi的Station和AP連接
1. Station連接
WiFi Station入網(wǎng)流程如下圖示:
實現(xiàn)步驟如下:
在ESP8266_RTOS_SDK目錄下新建station文件夾,把LED燈實驗中的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));//動態(tài)的分配內(nèi)存空間
sprintf(config->ssid,SSID);
sprintf(config->password,PASSWORD);
wifi_station_set_config(config); //配置設(shè)置到寄存器里面
free(config); //釋放動態(tài)分配的內(nèi)存
wifi_station_set_auto_connect(TRUE);//啟動wifi的一鍵連接
xTaskCreate(ATaskLed, "LED", 256, NULL, 2, NULL);
}
回到ESP8266編譯器中,在station文件夾下,運行g(shù)en_misc.sh文件,依次確認配置(Y/1/2/3/4),編譯完成后,燒寫bin文件到ESP8266
打開串口助手,模組復位后,串口輸出相關(guān)信息后,模塊顯示連接到無線網(wǎng)絡(luò)中,并獲取到路由分配的IP
2. AP連接
WiFi AP入網(wǎng)流程如下圖示:
實現(xiàn)步驟如下:
在ESP8266_RTOS_SDK目錄下新建ap文件夾,把LED燈實驗中的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); //獲取當前參數(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ò)名稱長度為0,表示網(wǎng)絡(luò)名稱字符串中遇到'\\0'時結(jié)束
config->ssid_len = 0;
config->max_connection = 4; //設(shè)置最大連接數(shù)
wifi_softap_set_config(config); //設(shè)置到寄存器
free(config); //釋放動態(tài)存儲
xTaskCreate(ATaskLed, "LED", 256, NULL, 2, NULL);
}
回到ESP8266編譯器中,在ap文件夾下,運行g(shù)en_misc.sh文件,依次確認配置(Y/1/2/3/4),編譯完成后,燒寫bin文件到ESP8266
燒寫bin文件到ESP8266后,打開串口助手,模組復位后,串口輸出相關(guān)信息,用手機連接AP,獲取到AP分配的地址
-
無線網(wǎng)絡(luò)
+關(guān)注
關(guān)注
6文章
1443瀏覽量
66036 -
WIFI
+關(guān)注
關(guān)注
81文章
5308瀏覽量
204447 -
編譯器
+關(guān)注
關(guān)注
1文章
1642瀏覽量
49239 -
SDK
+關(guān)注
關(guān)注
3文章
1045瀏覽量
46151 -
ESP8266
+關(guān)注
關(guān)注
50文章
962瀏覽量
45252
發(fā)布評論請先 登錄
相關(guān)推薦
評論