wifi连接中断,连接恢复正常自动联网的处理方法。

作者:levid | 更新时间:2020-03-19 | 浏览量:1567

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模块上测试用过。运行结果如下:

欢迎大家试用点评。本人初学,请大家不吝赐教。感谢贝壳物联给我们提供的这个平台。谢谢!


评论:共3条

urrfuig 评论于:2020-03-19 20:57:10
有大神吗
zl11054 评论于:2021-02-14 20:03:19
求完整代码
18855815672 评论于:2021-12-20 13:34:07
学习啦,谢谢分享。
返回顶部