1. 程式人生 > >esp8266(2) 智能配置

esp8266(2) 智能配置

serve 使用 有客 ssid blank 分享圖片 conf 部分 thread

http://www.arduino.cn/thread-46594-1-1.html

而在官方例程裏面,都是把wifi的SSID和PSW寫死在程序裏面,這樣的話,如果萬一要更換網絡環境,就要重新更改代碼裏面的相應參數,再次編碼並寫入MCU裏面,有點不方便,因此我就稍微更改了一下官方的代碼,讓其可以在不重編碼的使用第三方APP的情況下更改連接網絡的相關參數。

CWJAP嘗試用已存在的SSID和PSW連接網絡,如果成功就進入透傳模式,如果失敗就變更為AP模式,AP模式下的SSID為"Onenet-Config",開放連接,連接後的網關IP是 192.168.4.1技術分享圖片

CWJAP嘗試用已存在的SSID和PSW連接網絡,如果成功就進入透傳模式,如果失敗就變更為AP模式,AP模式下的SSID為"Onenet-Config",開放連接,連接後的網關IP是 192.168.4.1

技術分享圖片

技術分享圖片 技術分享圖片

進入AP模式後,開始監聽是否有客戶端連接和 http 請求配置頁面,在沒有請求的時候,connect_id= -1,因此判斷connect_id就可以知道有沒有連接請求。在main當中不斷進行檢測。

1手機搜索連接 IP 寫死 192.169.4.1 端口 8080。 發送 新的 路由器 名稱和地址。

2 填寫完新的SSID 與 PSW後,點擊 SUBMIT 提交,中斷函數會再次截取獲取到的參數,並提取新的SSID 和 PSW,在ESP8266_Echo裏面把新的參數寫入EEPROM,以便下次開機的時候讀取。當寫入完成後就會再次初始化8266並與平臺建立連接。

3 這個方案是直接利用ESP8266的server模式,在沒有成功連接wifi的時候,把自己變成一臺html服務器,由STM32進行運算,因為html代碼是由連接端的瀏覽器進行解析的,所以STM32+ESP8266只負責發送相應的html數據過去即可,最後接收回傳數據並解析,寫入EEPROM,即完成整個操作,但由於stm32的硬件I2C實在有點脆弱,盡可能整個包下載下來進行測試,然後根據實際需要去提取自己需要的部分,如有任何問題,歡迎留言交流O(∩_∩)O

esp8266(2) 智能配置