作者:levid | 更新時間:2020-03-19 | 瀏覽量:1323
esp8266模塊與wifi連接中斷后,系統嘗試多次重連失敗后,會報“DNS fail”錯。wifi連接正常后系統不能自動與貝殼平臺恢復連接。解決方法如下:
在init.lua代碼中增加wifi.STA_GOTIP事件函數,當wifi連接正常并獲得ip地址后,觸發該事件。函數執行系統主程序即可。這樣就可以實現恢復wifi連接后重新啟動主程序的目的。
代碼如下:
print("set up wifi mode") enduser_setup.start( function() --print("Connected to wifi as:" .. wifi.sta.getip()) --dofile("kaiguan.lua") --不再在此處啟動主程序 end, function(err, str) print("enduser_setup: Err #" .. err .. ": " .. str) end ) wifi.sta.eventMonReg(wifi.STA_GOTIP, function() --注冊wifi.STA_GOTIP事件函數 status = 'STA_GOTIP' --當觸發該事件時 print(status, wifi.sta.getip()) dofile("kaiguan.lua") --主程序入口放在此處,wifi連接成功并獲得ip后觸發該事件。系統啟動主程序。 end) wifi.sta.eventMonStart(1000) --啟動事件函數,偵聽間隔為1000ms。
以上代碼在esp8266-01s模塊上測試用過。運行結果如下:
歡迎大家試用點評。本人初學,請大家不吝賜教。感謝貝殼物聯給我們提供的這個平臺。謝謝!