啟明云端/01
在使用 esp32 調(diào)試 Wi-Fi 功能時(shí),由于場景和各種因素的影響,難免會(huì)遇到各種連接不上,Wi-Fi斷連等問題。下面介紹一些 API,方便新手調(diào)試 Wi-Fi 時(shí)更好的定位并解決問題。
啟明云端/02
常見問題
ESP32進(jìn)行Wi-Fi連接時(shí),如何判斷失敗原因?
在ESP-IDF 4.0以上的版本,可以在Wi-Fi斷連事件處理中加入以下代碼,從而通過錯(cuò)誤碼來判斷連接失敗的原因。
當(dāng)回調(diào)函數(shù)接收到WIFI_EVENT_STA_DISCONNECTED事件時(shí),可以通過結(jié)構(gòu)體wifi_event_sta_disconnected_t的變量reason獲取到失敗原因。
常見的錯(cuò)誤碼
完整的錯(cuò)誤碼請參考這里。
啟明云端/03
Wi-Fi如何自動(dòng)重連?
Wi-Fi 在斷連后如何自動(dòng)重連?
在收到WIFI_EVENT_STA_DISCONNECTED事件時(shí),調(diào)用esp_wifi_connectAPI,具體代碼如下:
ESP32 Wi-Fi發(fā)射功率最高值是多少?如何調(diào)整 Wi-Fi 的發(fā)射功率?
ESP32的Wi-Fi功率輸出最高可以配置為20dBm。高功率輸出會(huì)對電池壽命和 Wi-Fi 信號(hào)穩(wěn)定性產(chǎn)生影響,因此在選擇功率輸出水平時(shí),需要根據(jù)具體的應(yīng)用場景和要求進(jìn)行權(quán)衡和選擇。
可通過 menuconfig 配置中,改變ESP_PHY_MAX_WIFI_TX_POWER的值來調(diào)整發(fā)射功率,配置項(xiàng)如下:
或者在代碼中調(diào)用esp_wifi_set_max_tx_power()這個(gè) API來設(shè)置調(diào)整。
啟明云端/04
提示bcn_timeout怎么辦?
連接 Wi-Fi,打印bcn_timeout,ap_probe_send_start是什么情況?
默認(rèn)設(shè)置下,ESP32默認(rèn)六秒未收到 AP 的beacon幀,就會(huì)提示bcn_timeout。造成這個(gè)問題的原因有可能會(huì)有以下幾點(diǎn):
(1)內(nèi)存資源不足。ESP32_WIFI_MGMT_SBUF_NUM不夠 (log中會(huì)打出“esf_buf: t=8, l=beacon_len, …”這樣的Error)。如果內(nèi)存不夠,可在收到disconnect event時(shí)打出 heap大小來排查。
(2)AP未發(fā)出beacon幀。可通過抓包AP的beacon幀來排查。
(3)AP Rssi值太低。在復(fù)雜環(huán)境下Rssi值較低時(shí),可能導(dǎo)致STA收不到beacon幀,可通過調(diào)用esp_wifi_sta_get_ap_info()獲取Rssi值來排查。
(4)硬件原因。收包性能太差。
注意:在出現(xiàn)bcn_timeout時(shí),STA會(huì)嘗試發(fā)送5次Probe Request,如果 AP回Probe Reponse,就保持連接;如果AP未回復(fù),STA發(fā)送Disconnect事件,并斷開連接。
啟明云端/05
如何連接最佳AP?
如果環(huán)境中存在多個(gè)相同ssid/password時(shí),能否默認(rèn)選擇信號(hào)最好的AP連接?
默認(rèn)ESP32會(huì)連接掃描到的第一個(gè)符合的AP,并不會(huì)自動(dòng)選擇信號(hào)值最強(qiáng)的AP。如果要連接最佳AP,需要在配置station時(shí),添加信號(hào)強(qiáng)度優(yōu)先配置,具體配置代碼如下:
-
無線
+關(guān)注
關(guān)注
31文章
5415瀏覽量
172949 -
AI
+關(guān)注
關(guān)注
87文章
29740瀏覽量
268037 -
ESP32
+關(guān)注
關(guān)注
17文章
950瀏覽量
16980
發(fā)布評論請先 登錄
相關(guān)推薦
評論