作者: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模块上测试用过。运行结果如下:
欢迎大家试用点评。本人初学,请大家不吝赐教。感谢贝壳物联给我们提供的这个平台。谢谢!