Hola surbyte,
Empecé con este proyecto que era mediante una web abriera y cerrara relés.
Pero el programa me pesa mucho porque hace falta hacer Arrays etc...
Y no tengo ni papa!! Yo soy muy malo en esto e intento leer y leer.
Una vez tengo este programa quiero plasmarlo en el ejemplo que he puesto por RS232.
/*
Arduino Ethernet Shield
Control Remoto de Reles v1.0
*/
#include <SPI.h>
#include <Ethernet.h>
//Declaración de la direcciones MAC e IP. También del puerto 80
byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC
IPAddress ip(10,10,10,100); //IP
EthernetServer servidor(80);
int PIN_LED1=5;
String readString1=String(30);
String state1=String(3);
int PIN_LED2=6;
String state2=String(3);
int PIN_LED3=7;
String state3=String(3);
int PIN_LED4=8;
String state4=String(3);
int PIN_LED5=9;
String state5=String(3);
int PIN_LED6=11;
String state6=String(3);
int PIN_LED7=12;
String state7=String(3);
int PIN_LED8=13;
String state8=String(3);
void setup()
{
Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas
servidor.begin();
pinMode(PIN_LED1,OUTPUT);
digitalWrite(PIN_LED1,LOW);
state1="OFF";
digitalWrite(PIN_LED2,LOW);
pinMode(PIN_LED2,OUTPUT);
state2="OFF";
pinMode(PIN_LED3,OUTPUT);
digitalWrite(PIN_LED3,LOW);
state3="OFF";
pinMode(PIN_LED4,OUTPUT);
digitalWrite(PIN_LED4,LOW);
state4="OFF";
pinMode(PIN_LED5,OUTPUT);
digitalWrite(PIN_LED5,LOW);
state5="OFF";
pinMode(PIN_LED6,OUTPUT);
digitalWrite(PIN_LED6,LOW);
state6="OFF";
pinMode(PIN_LED7,OUTPUT);
digitalWrite(PIN_LED7,LOW);
state7="OFF";
pinMode(PIN_LED8,OUTPUT);
digitalWrite(PIN_LED8,LOW);
state8="OFF";
}
void loop()
{
EthernetClient cliente= servidor.available();
if(cliente)
{
boolean lineaenblanco=true;
while(cliente.connected())//Cliente conectado
{
if(cliente.available())
{
char c=cliente.read();
if(readString1.length()<30)//Leemos petición HTTP caracter a caracter
{
readString1.concat(c); //Almacenar los caracteres en la variable readString
}
if(c=='\n' && lineaenblanco)//Si la petición HTTP ha finalizado
{
int LED1 = readString1.indexOf("LED1=");
int LED2 = readString1.indexOf("LED2=");
int LED3 = readString1.indexOf("LED3=");
int LED4 = readString1.indexOf("LED4=");
int LED5 = readString1.indexOf("LED5=");
int LED6 = readString1.indexOf("LED6=");
int LED7 = readString1.indexOf("LED7=");
int LED8 = readString1.indexOf("LED8=");
if(readString1.substring(LED1,LED1+6)=="LED1=T")
{
digitalWrite(PIN_LED1,HIGH);
state1="ON";
} else if (readString1.substring(LED1,LED1+6)=="LED1=F")
{
digitalWrite(PIN_LED1,LOW);
state1="OFF";
}
if(readString1.substring(LED2,LED2+6)=="LED2=T")
{
digitalWrite(PIN_LED2,HIGH);
state2="ON";
} else if (readString1.substring(LED2,LED2+6)=="LED2=F")
{
digitalWrite(PIN_LED2,LOW);
state2="OFF";
}
if(readString1.substring(LED3,LED3+6)=="LED3=T")
{
digitalWrite(PIN_LED3,HIGH);
state3="ON";
} else if (readString1.substring(LED3,LED3+6)=="LED3=F")
{
digitalWrite(PIN_LED3,LOW);
state3="OFF";
}
if(readString1.substring(LED4,LED4+6)=="LED4=T")
{
digitalWrite(PIN_LED4,HIGH);
state4="ON";
} else if (readString1.substring(LED4,LED4+6)=="LED4=F")
{
digitalWrite(PIN_LED4,LOW);
state4="OFF";
}
if(readString1.substring(LED5,LED5+6)=="LED5=T")
{
digitalWrite(PIN_LED5,HIGH);
state5="ON";
} else if (readString1.substring(LED5,LED5+6)=="LED5=F")
{
digitalWrite(PIN_LED5,LOW);
state5="OFF";
}
if(readString1.substring(LED6,LED6+6)=="LED6=T")
{
digitalWrite(PIN_LED6,HIGH);
state6="ON";
} else if (readString1.substring(LED6,LED6+6)=="LED6=F")
{
digitalWrite(PIN_LED6,LOW);
state6="OFF";
}
if(readString1.substring(LED7,LED7+6)=="LED7=T")
{
digitalWrite(PIN_LED7,HIGH);
state7="ON";
} else if (readString1.substring(LED7,LED7+6)=="LED7=F")
{
digitalWrite(PIN_LED7,LOW);
state7="OFF";
}
if(readString1.substring(LED8,LED8+6)=="LED8=T")
{
digitalWrite(PIN_LED8,HIGH);
state8="ON";
} else if (readString1.substring(LED8,LED8+6)=="LED8=F")
{
digitalWrite(PIN_LED8,LOW);
state8="OFF";
}
//Cabecera HTTP estándar
cliente.println("HTTP/1.1 200 OK");
cliente.println("Content-Type: text/html");
cliente.println();
//Página Web en HTML
cliente.println("");
cliente.println("");
cliente.println("CRR v1.0");
cliente.println("
Control Remoto de Reles v1.0</font color>
");
cliente.print("");
cliente.println("");
cliente.println("
RELE 1
");
cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED1=T'>");
cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED1=F'>");
cliente.print("Estado: ");
cliente.print(state1);
cliente.println("
RELE 2
");
cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED2=T'>");
cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED2=F'>");
cliente.print("Estado: ");
cliente.print(state2);
cliente.println("
RELE 3
");
cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED3=T'>");
cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED3=F'>");
cliente.print("Estado: ");
cliente.print(state3);
cliente.println("
RELE 4
");
cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED4=T'>");
cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED4=F'>");
cliente.print("Estado: ");
cliente.print(state4);
cliente.println("
RELE 5
");
cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED5=T'>");
cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED5=F'>");
cliente.print("Estado: ");
cliente.print(state5);
cliente.println("
RELE 6
");
cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED6=T'>");
cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED6=F'>");
cliente.print("Estado: ");
cliente.print(state6);
cliente.println("
RELE 7
");
cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED7=T'>");
cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED7=F'>");
cliente.print("Estado: ");
cliente.print(state7);
cliente.println("
RELE 8
");
cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED8=T'>");
cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED8=F'>");
cliente.print("Estado: ");
cliente.print(state8);
cliente.println("");
cliente.println("");
cliente.stop();//Cierro conexión con el cliente
readString1="";
}
}
}
}
}