esp8266 smartconfig-智慧配網分析和使用及注意事項
基本知識:
樂鑫⾃主研發的 ESP-TOUCH 協議採⽤的是 Smart Config(智慧配置)技術,幫助⽤戶將 採⽤ ESP8266EX 和 ESP32 的裝置(以下簡稱“裝置”)連線⾄ Wi-Fi ⽹絡。⽤戶只需在⼿ 機上進⾏簡單操作即可實現智慧配置。整個過程如下圖所示:
由於裝置在⼀開始並未連線⾄⽹絡,ESP-TOUCH App ⽆法直接向裝置傳送資訊。通過 ESP-TOUCH 通訊協議,具備 Wi-Fi ⽹絡接⼊能⼒的裝置(例如智慧⼿機)就可以向接 ⼊點 (AP) 傳送⼀系列 UDP 包,其中每⼀包的⻓度(即 Length 欄位)都按照 ESPTOUCH 通訊協議進⾏編碼,SSID 和密碼就包含在 Length 欄位中,隨後裝置便可以獲 得並解析出所需的資訊。資料包結構如圖 1-2 所示:
原始碼和app:
原始碼的路徑如下所示:
原始碼路徑:https://github.com/EspressifApp/EsptouchForAndroid/releases/tag/v1.1.0
根據你的所需進行修改或直接安裝,筆者的截圖如下所示:
操作步驟:
準備⼀臺⽀持 ESP-TOUCH 的裝置,開啟配置功能;
將⼿機連線⾄路由器;
開啟安裝在⼿機上的 ESP-TOUCH App;
在 App 界⾯輸⼊路由器的 SSID 和密碼(若路由不加密則密碼為空),開始連線。
注意事項:
• 裝置與⼿機建⽴鏈路所需的時間和兩者之間的距離有關,若距離很近,僅需數秒即可完成。
• 在開啟裝置端 ESP-TOUCH 智慧配置功能之前,請確保路由器已經開啟。由於開啟此功能後,裝置會先 掃描周圍的 AP 資訊,如果路由器沒有開啟,則⽆法獲取周圍的 AP 列表。
• ESP-TOUCH App 端傳送序列有超時限制,即如果沒有在規定的時間配置上路由,App 會返回配置失敗 資訊(參考 App 原始碼)。裝置端也會有超時限制,從裝置鎖定通道開始計時到獲取 SSID 和密碼資訊, 如果達到超時限制但並未獲取到 SSID 和密碼資訊,裝置會⾃動重新開始⼀次 Smart Config。⽤戶可以通 過 esptouch_set_timeout(uint8 time_s) 或 esp_smartconfig_set_timeout(uint8 time_s) 設定超時時 間。
• Smart Config 過程中裝置需要開啟 Sniffer 模式,所以在 ESP8266 上 Station 和 soft-AP 模式都是關閉 的,不要調⽤其他相關 API。ESP32 不受此限制,可以同時開啟 Sniffer 和 Station 模式。
• 配置結束後,傳送端獲取裝置的 IP,裝置端也會返回傳送端的 IP,如果⽤戶需要⾃定義傳送端和裝置端 的資訊互動,可以使⽤此 IP 資訊進⾏局域⽹通訊。 • 如果路由器設定了“AP 隔離”,會出現裝置連線路由器成功,但 App 未收到連線成功的提示的現象。
• ⽀持⼿機同時配置多個裝置到同⼀路由器上,配置時 App 端選擇接收多個返回結果。
• ESP8266 和 ESP32 不⽀持 5G 和 11AC 模式,因此不⽀持 Smart Config 連線 5G 或 11AC 模式的路由