作者:levid | 更新時間:2020-03-19 | 瀏覽量:1360
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模塊上測試用過。運行結果如下:

歡迎大家試用點評。本人初學,請大家不吝賜教。感謝貝殼物聯給我們提供的這個平臺。謝謝!