0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用ESP8266 SDK開發(fā)WiFi的Station和AP連接

CHANBAEK ? 來源:嵌入式攻城獅 ? 作者:嵌入式攻城獅 ? 2023-04-25 15:10 ? 次閱讀

WiFi站點(Station)和接入點(Access Point)

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

圖片

ESP8266模組支持STA、AP、STA+AP三種工作模式

  • STA模式:ESP8266模塊通過路由器連接互聯(lián)網,PC或手機通過互聯(lián)網實現(xiàn)對設備的遠程控制
  • AP模式:ESP8266模塊作為熱點,PC或手機直接與模塊通訊,實現(xiàn)局域網無線控制
  • STA+AP模式:兩種模式的共存,既可以通過路由器連接到互聯(lián)網,通過互聯(lián)網控制設備; 也可以作為WiFi熱點,供其他WiFi設備連接。 實現(xiàn)了局域網和廣域網的無縫切換

下面將介紹如何使用ESP8266 SDK開發(fā)WiFi的Station和AP連接

1. Station連接

WiFi Station入網流程如下圖示:

圖片

實現(xiàn)步驟如下:

在ESP8266_RTOS_SDK目錄下新建station文件夾,把LED燈實驗中的led目錄下所有文件拷貝到該文件夾中

圖片

使用Source Insight編輯器,編輯和瀏覽代碼; 新建工程,并將station和include文件夾下的文件添加到工程中; 在led燈程序基礎上,在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)的分配內存空間
    sprintf(config->ssid,SSID);    
    sprintf(config->password,PASSWORD);     
    wifi_station_set_config(config);	//配置設置到寄存器里面
    free(config);	                //釋放動態(tài)分配的內存
    wifi_station_set_auto_connect(TRUE);//啟動wifi的一鍵連接
    xTaskCreate(ATaskLed, "LED", 256, NULL, 2, NULL);
}

圖片

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

圖片

打開串口助手,模組復位后,串口輸出相關信息后,模塊顯示連接到無線網絡中,并獲取到路由分配的IP

圖片

2. AP連接

WiFi AP入網流程如下圖示:

圖片

實現(xiàn)步驟如下:

在ESP8266_RTOS_SDK目錄下新建ap文件夾,把LED燈實驗中的led目錄下所有文件拷貝到該文件夾中

圖片

使用Source Insight編輯器,編輯和瀏覽代碼; 新建工程,并將ap和include文件夾下的文件添加到工程中; 在led燈程序基礎上,在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);	//設置為AP模式 
    struct softap_config *config = (struct softap_config *)
	zalloc(sizeof(struct softap_config)); 
    wifi_softap_get_config(config);	//獲取當前參數(shù)
    sprintf(config->ssid,SSID);		//傳入自己定義的網絡名稱
    sprintf(config->password,PASSWORD);	//傳入自己定義的網絡密碼
    config->authmode = AUTH_WPA_WPA2_PSK;//授權加密方式
    //設置網絡名稱長度為0,表示網絡名稱字符串中遇到'\\0'時結束
    config->ssid_len = 0;		
    config->max_connection = 4;		//設置最大連接數(shù)
    wifi_softap_set_config(config);	//設置到寄存器
    free(config);			//釋放動態(tài)存儲
    xTaskCreate(ATaskLed, "LED", 256, NULL, 2, NULL);
}

圖片

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

圖片

燒寫bin文件到ESP8266后,打開串口助手,模組復位后,串口輸出相關信息,用手機連接AP,獲取到AP分配的地址

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 無線網絡
    +關注

    關注

    6

    文章

    1435

    瀏覽量

    65945
  • WIFI
    +關注

    關注

    81

    文章

    5297

    瀏覽量

    203753
  • 編譯器
    +關注

    關注

    1

    文章

    1634

    瀏覽量

    49134
  • SDK
    SDK
    +關注

    關注

    3

    文章

    1036

    瀏覽量

    45955
  • ESP8266
    +關注

    關注

    50

    文章

    962

    瀏覽量

    45018
收藏 人收藏

    評論

    相關推薦

    ESP8266緩存AP后,是否會自動連接到任何緩存的AP?

    我有一個關于工作站模式的 AP 緩存的問題。我知道ESP8266最多可以緩存 5 個 AP 已成功連接。SDK 說:
    發(fā)表于 07-11 07:58

    ESP8266EX連接WIFI AP時,是否需要執(zhí)行一些特殊程序?

    ESP8266EX處于 STATION 模式。我正在使用 0.9.2 SDK 和 lubuntu 來構建。 1.當模塊上電后首次連接WIFI
    發(fā)表于 07-15 07:57

    esp8266 AP STA連接丟失的原因?

    通過 wifi_station_set_reconnect_policy(); 這個想法是用戶可以通過連接esp8266 AP 來重新配置/修復
    發(fā)表于 07-18 07:17

    WIFI_AP_STA軟AP只有STATION連接時才工作是為何?

    嗨,我在“WIFI_AP_STA”模式下使用 ESP8226。STATIONESP8266 作為客戶端連接
    發(fā)表于 02-21 07:52

    ESP8266_SDK_User_Manual_Version 1.4

    ESP8266__IOT_SDK_User_Manual,ESP8266 SDK 使用指南
    發(fā)表于 12-30 14:23 ?21次下載

    ESP8266中文版SDK編程手冊

    2A-ESP8266__IOT_SDK_User_Manual SDK使用手冊 2B-ESP8266__SDK__IOT_Demo 2C-ESP8266__SDK__Progra
    發(fā)表于 12-30 14:48 ?0次下載

    esp8266,tcp通信實例詳解

    ESP8266工作在station模式下,需確認ESP8266已經連接AP(路由器)并分配到IP地址,啟用client
    發(fā)表于 11-04 10:14 ?4.3w次閱讀
    <b class='flag-5'>esp8266</b>,tcp通信實例詳解

    ESP8266 SDK開發(fā)環(huán)境搭建初級教程

    ESP8266 SDK 開發(fā)環(huán)境 本章主要從開發(fā)環(huán)境搭建、工程模板建立、開發(fā)流程說明三個方面進行,在開發(fā)
    發(fā)表于 12-07 14:42 ?15次下載
    <b class='flag-5'>ESP8266</b> <b class='flag-5'>SDK</b><b class='flag-5'>開發(fā)</b>環(huán)境搭建初級教程

    基于ESP8266芯片方案的WIFI開發(fā)板的詳細介紹和使用說明資料概述

     隨著物聯(lián)網市場的爆發(fā),WIFI傳輸方案和芯片也越來越多。本公司開發(fā)了一款基于ESP8266芯片方案的WIFI開發(fā)板,
    發(fā)表于 08-28 18:44 ?62次下載
    基于<b class='flag-5'>ESP8266</b>芯片方案的<b class='flag-5'>WIFI</b><b class='flag-5'>開發(fā)</b>板的詳細介紹和使用說明資料概述

    ESP8266(NodeMCU)無線終端模式連接WiFi

    使用NodeMCU無線終端模式連接WiFi,并在串口打印出相關信息。ESP8266有三種工作模式,分別為:AP,STA,AP混合STA,下面
    發(fā)表于 10-27 13:21 ?9次下載
    <b class='flag-5'>ESP8266</b>(NodeMCU)無線終端模式<b class='flag-5'>連接</b><b class='flag-5'>WiFi</b>

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

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ESP8266 wifi模塊開發(fā)匯總?ESP8266 wifi模塊
    發(fā)表于 11-05 19:21 ?188次下載
    <b class='flag-5'>ESP8266</b> <b class='flag-5'>wifi</b>模塊<b class='flag-5'>開發(fā)</b>匯總

    ESP8266連接手機

    esp8266的三種模式1為Station 模式:ESP8266 模塊通過路由器連接互聯(lián)網,手機或電腦通過互聯(lián)網實現(xiàn)對設備的遠程控制。2為AP
    發(fā)表于 11-30 16:06 ?37次下載
    <b class='flag-5'>ESP8266</b><b class='flag-5'>連接</b>手機

    ESP8266--SDK開發(fā)(HelloWorld!)

    ESP8266--SDK開發(fā)(HelloWorld!)
    發(fā)表于 12-03 17:21 ?12次下載
    <b class='flag-5'>ESP8266--SDK</b><b class='flag-5'>開發(fā)</b>(HelloWorld!)

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

    使用ESP8266-01制作WIFI遙控小車(一)ESP8266簡介ESP8266有三種工作模式:STA、AP以及STA+
    發(fā)表于 01-12 19:47 ?46次下載
    使用<b class='flag-5'>ESP8266</b>-01制作<b class='flag-5'>WIFI</b>遙控小車(一)

    esp8266wifi模塊怎么連接手機

    ESP8266 WiFi模塊連接手機主要可以通過兩種方式實現(xiàn): 通過路由器連接(STA模式)和直接作為熱點連接
    的頭像 發(fā)表于 08-19 17:27 ?2831次閱讀