HI it's me again... well I'm really screwed I cannot make this work... If i run this requests it works fine the first 3 or 4 times but then it crashed sending a LOT of code...
here is the code on arduino
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {0xEE, 0xDD, 0xBE, 0xEF, 0xFE, 0xED }; // DIRECCION MAC
IPAddress ip(192,168,2,91); //DIRECCION IP PARA ARDUINO
EthernetServer server(80); //MODO Servidor y Puerto de trabajo
String readString="";
int pin=-1;
int state=-1;
void setup()
{
for (int setoutpin = 6; setoutpin<=9; setoutpin++)//defino las salidas 6,7,8,9 como OUT y las pongo en HIGH
{
pinMode(setoutpin,OUTPUT);
digitalWrite(setoutpin,HIGH);
}
Serial.begin(9600);//Monitorizacion via serie
while (!Serial)
{
;
}//Espera a que se inicie
Serial.println("Starting network...");
Ethernet.begin(mac, ip);//Iniciando Ethernet
Serial.print("My IP address is: ");
Serial.println(Ethernet.localIP());
Serial.println("Waiting for new connections...");
delay(500);
}
//VOID LOOP===================================================================
void loop()
{
EthernetClient client = server.available();
if (client)
{
char data;
readString="";
Serial.println("------------------------------------------------------");
Serial.println("Connection detected");
while ( client.available())
{
//delay(5);
data = client.read();
readString += data;
}
Serial.println("");
Serial.println("The client sent: ");
Serial.println(readString);
Serial.println("");
//delay(5);
if (data=='\n')
{
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
client.println("");
Serial.println("HTTP/1.1 200 OK");
Serial.println("Content-Type: text/html");
Serial.println("Connection: close");
Serial.println();
Serial.println("");
if( readString.indexOf("?p=1")>=0)
{
Serial.print("Received pinnumber: 1 ");
Serial.println("mapping to output: 6");
pin=6;
}
if( readString.indexOf("?p=2")>=0)
{
Serial.print("Received pinnumber: 2 ");
Serial.println("mapping to output: 7");
pin=7;
}
if( readString.indexOf("?p=3")>=0)
{
Serial.print("Received pinnumber: 3 ");
Serial.println("mapping to output: 8");
pin=8;
}
if( readString.indexOf("?p=4")>=0)
{
Serial.print("Received pinnumber: 4 ");
Serial.println("mapping to output: 9");
pin=9;
}
if( readString.indexOf("&s=0")>=0)
{
Serial.println("Received state: 0");
state=0;
}
if( readString.indexOf("&s=1")>=0)
{
Serial.println("Received state: 1");
state=1;
}
if (state==0)
{
digitalWrite(pin,HIGH);
Serial.print("Setting output: " );
Serial.print(pin);
Serial.println(" to state: OFF");
client.println("ARDUINO_OK");
Serial.println("ARDUINO_OK");
}
if (state==1)
{
digitalWrite(pin,LOW);
Serial.print("Setting output: " );
Serial.print(pin);
Serial.println(" to state: ON");
client.println("ARDUINO_OK");
Serial.println("ARDUINO_OK");
}
if( readString.indexOf("?QueryDigital")>=0)
{
client.print("QUERY_OK");
Serial.print("QUERY_OK");
for (int querypin = 6; querypin <= 9; querypin++)
{
int sendpin = digitalRead(querypin);
client.print(querypin);
client.print("=");
if (sendpin >0)
{
client.print("ON");
}
else
{
client.print("OFF");
}
client.print(",");
}
}
if (readString.indexOf("?efect1")>=0) //APAGO TODAS
{
client.print("EFECTO1_OK");
Serial.print("EFECTO1_OK");
for (int efectpin = 6; efectpin <= 9; efectpin++)
{
digitalWrite(efectpin,HIGH);
}
}
if (readString.indexOf("?efect2")>=0) //ENCIENDO TODAS
{
client.print("EFECTO2_OK");
Serial.print("EFECTO2_OK");
for (int efectpin = 6; efectpin <= 9; efectpin++)
{
digitalWrite(efectpin,LOW);
}
}
if (readString.indexOf("?efect3")>=0) //1,2,3,4
{
client.print("EFECTO3_OK");
Serial.print("EFECTO3_OK");
for (int efectpin = 6; efectpin <= 9; efectpin++)
{
digitalWrite(efectpin,HIGH); //apago todas
}
for (int efectpin = 6; efectpin <= 9; efectpin++)
{
digitalWrite(efectpin,LOW);
delay(1000);
}
}
if (readString.indexOf("?efect4")>=0) //4,3,2,1
{
client.print("EFECTO4_OK");
Serial.print("EFECTO4_OK");
for (int efectpin = 6; efectpin <= 9; efectpin++)
{
digitalWrite(efectpin,HIGH); //apago todas
}
for (int efectpin = 9; efectpin >=6; efectpin--)
{
digitalWrite(efectpin,LOW);
delay(1000);
}
}
if (readString.indexOf("?efect5")>=0) //4,1,3,2
{
client.print("EFECTO5_OK");
Serial.print("EFECTO5_OK");
for (int efectpin = 6; efectpin <= 9; efectpin++)
{
digitalWrite(efectpin,HIGH); //apago todas
}
digitalWrite(6,LOW);
digitalWrite(9,LOW);
delay(1000);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
}
if (readString.indexOf("?efect6")>=0) //3,2,4,1
{
client.print("EFECTO6_OK");
Serial.print("EFECTO6_OK");
for (int efectpin = 6; efectpin <= 9; efectpin++)
{
digitalWrite(efectpin,HIGH); //apago todas
}
digitalWrite(7,LOW);
digitalWrite(8,LOW);
delay(1000);
digitalWrite(6,LOW);
digitalWrite(9,LOW);
}
delay(1);
Serial.println("Client.stop");
Serial.println("");
Serial.println("Conection end");
Serial.println("");
Serial.println("waiting for new connections...");
client.stop();
}
}
}
so basically I run this... sequence..
send 192.168.2.91/?QueryDigital
receive QUERY_OK6=ON,7=ON,8=ON,9=ON,
send http://192.168.2.91/?efect1
receive
K DUINO_OK 0 OK Content-Type: text/html Connection: close ARDUINO_OK QUERY_OK6=OFF,7=ON,8=ON,9=OHTTP/1.1 200 OK ConHTTP/1.1 200 OK Content-Type: text/html Connection: close ARDUINO_OK EFECTO5_OK 200 OK Content-Type: text/html Connection: close ARDUINO_OK EFECTO3_OKent-Type: text/html Connection: closeHTTP/HTTP/1.1 200 OK Content-Type: text/html Connnection: close Jack's Arudino Control Jack's LED OffOn on: close Jack's Arudino Control Jack's LED OffOn ConHTTP/1.1 200 OK Content-Type: text/html Connnection: cHTHTTP/1.1 200 OK Content-Type: text/html Connection: close ARDUINO_OK Type:HTTP/1.1 200 OK Content-Type: text/html Connection: clONe ARDUINO_OK ext/html ConnectiHTTP/1.1 200 OK ContHTTP/1.1 200 OK Content-Type: text/html Connection: close QUERY_OK6=ON,7=ON,8=ON,9=ON,Type: text/html Connnection: close Jack's Arudino Control Jack's LED OffOn tml Connect OffOn e ARDUINO_OK ontent-Type: text/html Connection: close ARHTTP/1.1 200 OK Content-TypeHTTP/1.1 200 OK Content-Type: text/html Connection: close ARDUINO_OK QUERY_OK6=OFF,7=ON,8=ON,9=ON,O_OK QUERY_OK6=OFF,7=ON,8=ON,9=ON, ARDUINO_OK HTTP/1.1 200 OK Content-Type: text/html CoHTTP/1.1HTTP/1.1 200 OK Content-Type: text/html Connnection: close Jack's Arudino ControHTTP/1.1 200 OK Content-Type: text/html Connnection: close HTTP/1.1 200 OK Content-Type: text/html Connection: close ARDUINO_OK e ARDUINO_OK HTTP/1.1 200 OK Content-Type: text/html ConnHTTP/1.1 200 OK Content-Type: text/html ConHTTP/1.1 200 OK HTTP/1.1 200 OK ContHTTP/1.1 200 OK Content-Type: text/html HTTP/1.1 200 OK Content-Type: text/HTTP/1.1 200 OK Content-Type: text/html Connection: close ARDUINO_OK QUERY_OK6=OFF,7=OFF,8=OFF,9=OFF,EFECTO1_OKEFECTO2_OKEFECTO3_OKEFECTO4_OKEFECTO5_OKEFECTO6_OK
this repeats but I exeeded the post limit
some times this just works fine, but some times, it crashed... any idea?
any clue?