My arduino due needs to reset after every one-two days. Problem I think persists with webserver code. I am not expert but beginner for arduino web server. here is my code below-
void htmlcode() {
Serial.println("html code.....");
//client = server.available();
// client.stop();
client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (req_index < (REQ_BUF_SZ - 1)) {
htp_req[req_index] = c; // save HTTP request character
req_index++;
}
if (bufferSize < 500) header[bufferSize++] = c;
if (c == '\n' && currentLineIsBlank) {
//parse headers
Serial.println(header);
//HTTP_req = client.readStringUntil('\r');
//client.flush();
//button VVVV--------------
if (strstr(header, "YWRtaW46YWRtaW4=") != NULL) {
client.println(F("HTTP/1.1 200 OK"));
client.println(F("Content-Type: text/html"));
// client.println(""));
client.println(F("Connection: close")); // the connection will be closed after completion of the response
//client.println("Refresh: 120"); // refresh the page automatically every 90 sec
client.println();
if (strstr(header, "ajaxrefresh") != NULL) {
// read switch state and analog input
ajaxRequest(client);
// ajaxRequest1(client);
//break;
}
else {
////command-----------------------------------------
//button VVVV--------------
if (StrContains(header, "/TX=ON")) {
digitalWrite(22, LOW);
delay(300);
digitalWrite(22, HIGH);
value = HIGH;
value1 = LOW;
}
else if (StrContains(header, "/PRE2=ON")) {
digitalWrite(29, LOW);
delay(200);
digitalWrite(29, HIGH);
value3 = HIGH;
value2 = LOW;
} else if (StrContains(header, "/DG=ON")) {
digitalWrite(41, LOW);
value10 = HIGH;
} else if (StrContains(header, "/DG=OFF")) {
digitalWrite(42, HIGH);
value10 = LOW;
}
client.println("");
client.println(F("<!DOCTYPE HTML>"));
client.println(F("<html>"));
client.println(F("<head>"));
client.println(F(" <title>TEST</title>"));
client.println(F("<meta charset='utf-8'>"));
//client.println("<meta charset='utf-8' http-equiv='refresh' content='120; url=http://'>");
client.println(F("<meta name='viewport' content='width=device-width, initial-scale=1.0'>"));
client.println(F(" <link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css'>"));
client.println(F(" <script src='https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js'></script>"));
client.println(F(" <script src='https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js'></script>"));
client.println(F(" <script src='https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js'></script>"));
client.println(F("<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js'></script>"));
//ajax
client.println(F("<script>window.setInterval(function(){"));
client.println(F("nocache = \"&nocache=\" + Math.random() * 1000000;"));
client.println(F("var request = new XMLHttpRequest();"));
client.println(F("request.onreadystatechange = function() {"));
client.println(F("if (this.readyState == 4) {"));
client.println(F("if (this.status == 200) {"));
client.println(F("if (this.responseText != null) {"));
client.println(F("document.getElementById(\"analoge_data\").innerHTML = this.responseText;"));
client.println(F("}}}}"));
client.println(F("request.open(\"GET\", \"ajaxrefresh\" + nocache, true);"));
client.println(F("request.send(null);"));
client.println(F("}, 2000);"));
client.println(F("</script>"));
//ajax deleted
client.println(F("<style>"));
client.println(F(".anlgpar { height: 300px; background: antiquewhite; }"));
client.println(F(".anlgbtn { height: 570px; background: antiquewhite;padding-left:20px; }"));
client.println(F(".binpar { height: 155px; background: antiquewhite; padding-left:10px; }"));
client.println(F(".sidepanel { height: 200px;background: antiquewhite;padding-left: 1px;width:150px;color: darkslategray;}"));
client.println(F(".sidepanel1 { height: 170px;background: antiquewhite;padding-left: 15px;padding-top:5px;width:150px;font-weight: bold;color: darkslategray;}"));
client.println(F(".width { width: 45px; text-align: center;font-weight: bold;}"));
client.println(F(".widthbin { width: 30px; text-align: center;font-weight: bold; }"));
client.println(F(".audioimg { padding-top: 20px;padding-left: 20px;height: 100px; background: antiquewhite; }"));
client.println(F(".Temppanel { padding-left: 20px;height: 120px;width:150px;background: antiquewhite; }"));
client.println(F(".leftpanel { height: 420px; background: antiquewhite;font-weight: bold;padding-left: 30px; }"));
client.println(F(".dateclass { font-weight: bold;color: darkslategray;}"));
client.println(F("</style>"));
client.println(F("</head>"));
client.println(F("<body>"));
client.println(F("<div class='jumbotron text-center' style='margin-bottom:15px;margin-top:15px;background-color:dodgerblue;color:white'>"));
client.println(F("<h2>test</h2>"));
client.println(F("</div>"));
client.println("<div class='container' style='margin-top:30px'>");
client.println("<div class='row'>");
client.println("<div class='col-sm-2'>");
client.println("<h6>Controls</h6>");
client.println("<div class='anlgbtn'>");
client.println("<br>");
if (value == HIGH) {
client.println("<a href=\"/TX=ON\"\"><button style='width:120px;'>TX ON </button></a>");
} else {
client.println("<a href=\"/TX=ON\"\"><button style='width:120px;'>TX ON </button></a>");
}
client.println("<br/><br/>");
if (value == HIGH) {
client.println("<a href=\"/PRE1=ON\"\"><button style='width:120px;'>PWR PRESET 1</button></a>");
} else {
client.println("<a href=\"/PRE1=ON\"\"><button style='width:120px;'>PWR PRESET 1</button></a>");
}
client.println("<br/><br/>");
client.println("<br/><br/>");
if (value10 == HIGH) {
client.println("<a href=\"/DG=ON\"\"><button style='width:60px;'>DG ON</button></a>");
client.println("<a href=\"/DG=OFF\"\"><button style='width:60px;'>DG OFF</button></a>");
} else {
client.println("<a href=\"/DG=ON\"\"><button style='width:60px;'>DG ON</button></a>");
client.println("<a href=\"/DG=OFF\"\"><button style='width:60px;'>DG OFF</button></a>");
}
//control
client.println("</div>");
client.println("</div>");
client.println("<div class='col-sm-4' id='analoge_data'>");
//ajax content
client.println("</div>");
client.println("<div class='col-sm-2'>");
client.println("<h6><p id='datedisp' class='dateclass'></p></h6>");
client.println("<script>");
client.println("var d = new Date();");
client.println("document.getElementById('datedisp').innerHTML = d.toDateString();");
client.println("</script>");
client.println("<div class='Temppanel'>");
client.println("<canvas id='canvas' width='90' height='110' style='background-color:antiquewhite'></canvas>");
client.println("</div>");
client.println("<br>");
client.println("<h6><b>Details</b></h6>");
client.println("<div class='sidepanel'>");
client.println("</br>");
client.println("<b>");
client.println("</div>");
client.println("<br />");
client.println("<div class='sidepanel1'>");
//client.println("<br />");
client.println("<br />");
client.println("</div>");
client.println("</div>");
//----
client.println("<div class='col-sm-4'>");
client.println("<div class='audioimg'>");
client.println("</div>");
client.println("<br />");
client.println("<h6>Tst</h6>");
client.println("<div class='leftpanel'>");
client.println("<br />");
client.println("</div>");
client.println("</div>");
//----
client.println("</div>");
client.println("</div>");
client.println("<br />");
client.println("<div class='jumbotron text-center' style='background-color:dodgerblue;color:white'>");
client.println("<h5>test</h5>");
client.println("</div>");
client.println("</body>");
client.println("</html>");
client.println();
//break;
}
}
//next user//////////
else if (strstr(header, "Z3Vlc3Q6Z3Vlc3Q=") != NULL) {
client.println(F("HTTP/1.1 200 OK"));
client.println(F("Content-Type: text/html"));
// client.println(""));
client.println(F("Connection: close")); // the connection will be closed after completion of the response
//client.println("Refresh: 120"); // refresh the page automatically every 90 sec
client.println();
if (strstr(header, "ajaxrefresh") != NULL) {
// read switch state and analog input
ajaxRequest(client);
// ajaxRequest1(client);
//break;
}
else {
////command-----------------------------------------
client.println("");
client.println(F("<!DOCTYPE HTML>"));
client.println(F("<html>"));
client.println(F("<head>"));
client.println(F(" <title>test</title>"));
client.println(F("<meta charset='utf-8'>"));
//client.println("<meta charset='utf-8' http-equiv='refresh' content='120; url=http://'>");
client.println(F("<meta name='viewport' content='width=device-width, initial-scale=1.0'>"));
client.println(F(" <link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css'>"));
client.println(F(" <script src='https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js'></script>"));
client.println(F(" <script src='https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js'></script>"));
client.println(F(" <script src='https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js'></script>"));
client.println(F("<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js'></script>"));
//ajax
client.println(F("<script>window.setInterval(function(){"));
client.println(F("nocache = \"&nocache=\" + Math.random() * 1000000;"));
client.println(F("var request = new XMLHttpRequest();"));
client.println(F("request.onreadystatechange = function() {"));
client.println(F("if (this.readyState == 4) {"));
client.println(F("if (this.status == 200) {"));
client.println(F("if (this.responseText != null) {"));
client.println(F("document.getElementById(\"analoge_data\").innerHTML = this.responseText;"));
client.println(F("}}}}"));
client.println(F("request.open(\"GET\", \"ajaxrefresh\" + nocache, true);"));
client.println(F("request.send(null);"));
client.println(F("}, 2000);"));
client.println(F("</script>"));
//ajax deleted
client.println(F("<style>"));
client.println(F(".anlgpar { height: 300px; background: antiquewhite; }"));
client.println(F(".anlgbtn { height: 570px; background: antiquewhite;padding-left:20px; }"));
client.println(F(".binpar { height: 155px; background: antiquewhite; padding-left:10px; }"));
client.println(F(".sidepanel { height: 200px;background: antiquewhite;padding-left: 4px;width:235px;color: darkslategray;}"));
client.println(F(".sidepanel1 { height: 170px;background: antiquewhite;padding-left: 25px;padding-top:5px;width:235px;font-weight: bold;color: darkslategray;}"));
client.println(F(".width { width: 45px; text-align: center;font-weight: bold;}"));
client.println(F(".widthbin { width: 30px; text-align: center;font-weight: bold; }"));
client.println(F(".audioimg { padding-top: 20px;padding-left: 20px;height: 100px; background: antiquewhite; }"));
client.println(F(".Temppanel { padding-left: 20px;height: 120px;width:235px;background: antiquewhite; }"));
client.println(F(".leftpanel { height: 420px; background: antiquewhite;font-weight: bold;padding-left: 30px; }"));
client.println(F(".dateclass { font-weight: bold;color: darkslategray;}"));
client.println(F("</style>"));
client.println(F("</head>"));
client.println(F("<body>"));
client.println(F("<div class='jumbotron text-center' style='margin-bottom:15px;margin-top:15px;background-color:dodgerblue;color:white'>"));
client.println(F("<h2>test</h2>"));
client.println(F("</div>"));
client.println("<div class='container' style='margin-top:30px'>");
client.println("<div class='row'>");
client.println("<div class='col-sm-4' id='analoge_data'>");
//ajax content
client.println("</div>");
client.println("<div class='col-sm-3'>");
client.println("<h6><p id='datedisp' class='dateclass'></p></h6>");
client.println("<script>");
client.println("var d = new Date();");
client.println("document.getElementById('datedisp').innerHTML = d.toDateString();");
client.println("</script>");
client.println("<div class='Temppanel'>");
client.println("<canvas id='canvas' width='90' height='110' style='background-color:antiquewhite'></canvas>");
client.println("</div>");
client.println("<br>");
client.println("<h6><b>TX Details</b></h6>");
client.println("<div class='sidepanel'>");
client.println("</br>");
client.println("<b>");
client.println("<p>");
client.println("</p>");
//changeover end
client.println("</div>");
client.println("<br />");
client.println("<div class='sidepanel1'>");
client.println("</div>");
client.println("</div>");
//----
client.println("<div class='col-sm-5'>");
client.println("<br />");
client.println("<h6>Tx</h6>");
client.println("<div class='leftpanel'>");
client.println("</div>");
client.println("</div>");
//----
client.println("</div>");
client.println("</div>");
client.println("<br />");
client.println("<div class='jumbotron text-center' style='background-color:dodgerblue;color:white'>");
client.println("<h5>test</h5>");
client.println("</div>");
client.println("</body>");
client.println("</html>");
client.println();
//break;
}
}
/////next user///////
else {
// wrong user/pass
client.println("HTTP/1.1 401 Unauthorized");
client.println("WWW-Authenticate: Basic realm=\"Secure\"");
client.println("Content-Type: text/html");
client.println();
client.println("<html>Text to send if user hits Cancel button</html>"); // really need this for the popup!
}
bufferSize = 0;
StrClear(header, 500);
Serial.print(HTTP_req);
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
} else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disconnected");
}
}
It works fine but after one to two days arduino needs to be reset. I want it to run 24x7. Please help.