esp8266 防掉线方法_基于arduino IED 的 ESP8266 连接贝壳网的断网检测

编程入门 行业动态 更新时间:2024-10-28 21:20:43

家用路由难免会有断开网络情况,为方便大家,提高模块连接贝壳网的稳定性,补充原来的例程,提供2个函数

一个是路由器的 WIFI 连接函数void wificonnect()

{

WiFi.begin(ssid, password);  // ssid 你的路由名,password你的WIFI密码;

while (WiFi.status() != WL_CONNECTED) {

delay(500);

Serial.print(".");

}

Serial.println("");

Serial.println("WiFi connected");

Serial.println("IP address: ");

Serial.println(WiFi.localIP());

}

下面的函数是保持在线状态,并检测掉线及应对措施:void  keeponline()

{ int i,j=0;

client.flush();   // 清空客户端缓存,便于检测返回

client.write("{\"M\":\"say\",\"ID\":\"D***\",\"C\":\"123456\",\"SIGN\":\"ok\"}\r\n"); //保持心跳,这是我的ID 和key,自己修改 ,以防掉线,如果掉线重新登录,

delay(100);

// Serial.println(client.available());

while (client.available()==0)  // 无返回时,尝试重新登录

{  client.write("{\"M\":\"checkin\",\"ID\":\"***\",\"K\":\"****\"}\r\n");//重新登陆设备,修改成自己的ID和key

delay(3000); // 3秒登录一次,say一次 ,

client.write("{\"M\":\"say\",\"ID\":\"D***\",\"C\":\"123456\",\"SIGN\":\"ok\"}\r\n");

i++;

//  Serial.print(i);

if(i>=10) // 30秒后先断开路由器连接2S,再重连路由器

{  WiFi.disconnect();

delay(2000);

wificonnect();

i=0;

j++;

}

if(j>=4)   // 如果超时2分钟服务器端任然无应答,重启模块尝试重新连接服务器

{

ESP.restart();

}

}

}

如有不尽如人意的地方还望指正,欢迎交流。。

更多推荐

esp8266 防掉线方法_基于arduino IED 的 ESP8266 连接贝壳网的断网检测

本文发布于:2023-06-13 10:02:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1378374.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:贝壳   掉线   断网   方法   IED

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!