Hello, i have strange problem.
I create webpage internal with butto ON / OFF
Works good, but after 4-5 times click on button webpage crashes.
I attach code
/*
Created by Rui Santos
Visit: https://randomnerdtutorials.com for more arduino projectsArduino with Ethernet Shield
*/// int pinDHT11 = 6;
//int SensoreLuce = 5; // pin per il fotoresistore
//int LuceLED = 9; // rele luce
//int Ventola = 8; // rele ventola
//int Irrigazione = 3;
//int Calore = 4;
#include <SPI.h>
#include <Ethernet.h>byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 150 }; // IP address in LAN – need to change according to your Network address
byte gateway[] = { 192, 168, 0, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server portString readString;
int ledPin = 9;
int ventolaPin = 8;
int calorePin = 4;
int pompaPin = 3;void setup() {
pinMode(ledPin, OUTPUT); //pin selected to control
// Test LED
digitalWrite(ledPin, LOW); // set pin low
digitalWrite(ledPin, HIGH); // set pin high
delay(50);pinMode(ventolaPin, OUTPUT);
digitalWrite(ventolaPin, LOW); // set pin low
delay(50);
digitalWrite(ventolaPin, HIGH); // set pin highpinMode(calorePin, OUTPUT); //pin selected to control
// Test LED
digitalWrite(calorePin, LOW); // set pin high
delay(50);
digitalWrite(calorePin, HIGH ); // set pin low
pinMode(pompaPin, OUTPUT); //pin selected to control// Test IRRIGAZIONE
digitalWrite(pompaPin, LOW ); // set pin high
delay(50);
digitalWrite(pompaPin, HIGH); // set pin low//start Ethernet
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
}void loop() {
// Create a client connection
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();//read char by char HTTP request
if (readString.length() < 100) {//store characters to string
readString += c;
}//if HTTP request has ended– 0x0D is Carriage Return \n ASCII
if (c == 0x0D) {
client.println("HTTP/1.1 200 OK"); //send new page
client.println("Content-Type: text/html");
client.println();client.println("");
client.println("");
client.println(" ARDUINO ETHERNET SHIELD");
client.println("");
client.println("");
client.println("
");
client.println("
");
client.println("
");
client.println("<H1 style="color:green;">ARDUINO ETHERNET SHIELD — LED ON/OFF FROM WEBPAGE");
client.println("
");
client.println("
");client.println("
<a href="/?LEDON"">Turn On LED
"); client.println("Turn Off LED
");client.println("
<a href="/?VENTOLAON"">Turn On Ventola
"); client.println("Turn Off Ventola
");client.println("
<a href="/?CALOREON"">Turn On Calore
"); client.println("Turn Off Calore
");client.println("
<a href="/?POMPAON"">Turn On Pompa
"); client.println("Turn Off Pompa
");client.println("");
client.println("");delay(10);
//stopping client
client.stop();// control arduino pin
if (readString.indexOf("?LEDON") > -1) //checks for LEDON
{
digitalWrite(ledPin, LOW); // set pin high
}
else {
if (readString.indexOf("?LEDOFF") > -1) //checks for LEDOFF
{
digitalWrite(ledPin, HIGH); // set pin low
}
}
// PER LA VENTOLAif (readString.indexOf("?VENTOLAON") > -1) //checks for LEDON
{
digitalWrite(ventolaPin, LOW); // set pin high
}
else {
if (readString.indexOf("?VENTOLAOFF") > -1) //checks for LEDOFF
{
digitalWrite(ventolaPin, HIGH); // set pin low
}
if (readString.indexOf("?CALOREON") > -1) //checks for LEDON
{
digitalWrite(calorePin, LOW); // set pin high
}
else {
if (readString.indexOf("?CALOREOFF") > -1) //checks for LEDOFF
{
digitalWrite(calorePin, HIGH); // set pin low
}
if (readString.indexOf("?POMPAON") > -1) //checks for LEDON
{
digitalWrite(pompaPin, LOW); // set pin high
}
else {
if (readString.indexOf("?POMPAOFF") > -1) //checks for LEDOFF
{
digitalWrite(pompaPin, HIGH); // set pin low
}
}//clearing string for next read
readString = "";}
}
}
}
}
}
}