基本知識:git
樂鑫⾃主研發的 ESP-TOUCH 協議採⽤的是 Smart Config(智能配置)技術,幫助⽤戶將 採⽤ ESP8266EX 和 ESP32 的設備(如下簡稱「設備」)鏈接⾄ Wi-Fi ⽹絡。⽤戶只需在⼿ 機上進⾏簡單操做便可實現智能配置。整個過程以下圖所示:github
因爲設備在⼀開始並未鏈接⾄⽹絡,ESP-TOUCH App ⽆法直接向設備發送信息。經過 ESP-TOUCH 通訊協議,具有 Wi-Fi ⽹絡接⼊能⼒的設備(例如智能⼿機)就能夠向接 ⼊點 (AP) 發送⼀系列 UDP 包,其中每⼀包的⻓度(即 Length 字段)都按照 ESPTOUCH 通訊協議進⾏編碼,SSID 和密碼就包含在 Length 字段中,隨後設備即可以獲 得並解析出所需的信息。數據包結構如圖 1-2 所示:app
源碼和app:ui
源碼的路徑以下所示:編碼
源碼路徑:https://github.com/EspressifApp/EsptouchForAndroid/releases/tag/v1.1.0加密
根據你的所需進行修改或直接安裝,筆者的截圖以下所示:blog
操做步驟:路由
準備⼀臺⽀持 ESP-TOUCH 的設備,開啓配置功能;
將⼿機鏈接⾄路由器;
打開安裝在⼿機上的 ESP-TOUCH App;
在 App 界⾯輸⼊路由器的 SSID 和密碼(若路由不加密則密碼爲空),開始鏈接。
get
注意事項:源碼
• 設備與⼿機建⽴鏈路所需的時間和二者之間的距離有關,若距離很近,僅需數秒便可完成。
• 在開啓設備端 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 模式的路由 器。