I'm using NodeMCU for my project. At first it works fine, but after some days it is resetting frequently because of the watchdog timer. I have used the Esp.wdtfeed()
method also. But it is not working. Can you please tell me what the problem exactly with or any solution? Here is my code:
void setup(void) {
ESP.wdtDisable();
ESP.wdtEnable(WDTO_8S);
Serial.begin(9600);
int n = WiFi.scanNetworks();
Serial.println("");
if (n == 0)
Serial.println("no networks found");
else {
for(int i=0;i<n;i++) {
if(WiFi.SSID(i)==ssid1) {
WiFi.begin(ssid1,password1);
ssid=ssid1;
} else if(WiFi.SSID(i)==ssid2) {
WiFi.begin(ssid2,password2);
ssid=ssid2;
} else if(WiFi.SSID(i)==ssid3) {
WiFi.begin(ssid3,password3);
ssid=ssid3;
}
}
}
display.init();
display.flipScreenVertically();
display.setFont(ArialMT_Plain_16);
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.drawStringMaxWidth(15,15, 128,"Display started");
display.display();
// Wait for connection
display.clear();
int j=0;
while(j<10) {
display.drawStringMaxWidth(15,15, 128,"connected to");
display.drawStringMaxWidth(15,32, 128,ssid);
display.display();
display.clear();
delay(1000);
j++;
}
display.drawStringMaxWidth(15,32, 128,"");
display.display();
Serial.print("Connected to ");
display.clear();
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
if (mdns.begin("esp8266WebForm", WiFi.localIP())) {
Serial.println("MDNS responder started");
}
server.onNotFound(handleNotFound);
server.begin();
Serial.print("Connect to http://esp8266WebForm.local or http://");
Serial.println(WiFi.localIP());
server.on("/", getvalues);
pinMode(buzzPin,OUTPUT);
pinMode(but,INPUT);
}
void loop(void) {
ESP.wdtFeed();
if((WiFi.status()== WL_DISCONNECTED)||(WiFi.status()==WL_CONNECTION_LOST)) {
display.drawStringMaxWidth(15,15, 128,"disconnected");
display.display();
int n = WiFi.scanNetworks();
Serial.println("");
if (n == 0)
Serial.println("no networks found");
else {
for(int i=0;i<n;i++) {
if(WiFi.SSID(i)==ssid1) {
WiFi.begin(ssid1,password1);
ssid=ssid1;
} else if(WiFi.SSID(i)==ssid2) {
WiFi.begin(ssid2,password2);
ssid=ssid2;
} else if(WiFi.SSID(i)==ssid3) {
WiFi.begin(ssid3,password3);
ssid=ssid3;
}
}
int j=0;
display.clear();
while(j<10) {
display.drawStringMaxWidth(15,15, 128,"connected to");
display.drawStringMaxWidth(15,32, 128,ssid);
display.display();
display.clear();
delay(1000);
j++;
}
display.clear();
display.drawStringMaxWidth(15,32, 128,"");
display.display();
}
}
getvalues();
delay(20000);
}