Hola. Una consulta. Un arduino con un modulo de ethernet donde esta un pequeño "servidor" donde uno en el navegador web pone la IP del arduino y te muestra una pagina. Esta pagina si haces click en un boton enciende el led en el arduino, y si hacer click en otro boton se apaga el led. cuando uno presiona el boton, tecnicamente hace un redireccionamiento o un GET a /?LED=T quedando 192.168.1.7/?LED=T lo que haria que encendiese el led. lo mismo colocando directamente esa url en el navegador, y para apagarlo 192.168.1.7/?LED=F.
Esto me da la posibilidad de crear una app de android que al presionar el boton mande esa peticion "192.168.1.7/?LED=T"
Ahora.. como hago para que desde otra placa de arduino con un modulo, simule que estoy presionando ese boton? por ejemplo, que el segundo arduino este enviando cada 5 segundos el comando "192.168.1.7/?LED=T" para encender el led, y a los 5 segundos para apagarlo. No se como hacer eso.
#include <SPI.h> //Aqui incluimos la libreria SPI
#include <Ethernet.h> //Aqui incluimos la libreria Ethernet
byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //Declaracion de la direccion MAC
IPAddress ip(192,168,1,7); //Declaracion de la IP
EthernetServer servidor(80); //Declaracion del puerto 80
int PIN_LED=8; //Aqui establecemos la variable PIN_LED como un valor entero
String readString=String(30); //lee los caracteres de una secuencia en una cadena.
//Los strings se representan como arrays de caracteres (tipo char)
String state=String(3);
void setup() {
Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas
servidor.begin(); //inicia el servidor
pinMode(PIN_LED,OUTPUT);
digitalWrite(PIN_LED,LOW);
state="OFF";
}
void loop() {
//EthernetClient Crea un cliente que se puede conectar a
//una dirección específica de Internet IP
EthernetClient cliente= servidor.available();
if(cliente) {
boolean lineaenblanco=true;
while(cliente.connected()) {
if(cliente.available()) {
char c=cliente.read();
if(readString.length()<30) {
readString.concat(c);
//Cliente conectado
//Leemos petición HTTP caracter a caracter
//Almacenar los caracteres en la variable readString
}
if(c=='\n' && lineaenblanco) //Si la petición HTTP ha finalizado
{
int LED = readString.indexOf("LED=");
if(readString.substring(LED,LED+5)=="LED=T") {
digitalWrite(PIN_LED,HIGH);
state="ON"; }
else if (readString.substring(LED,LED+5)=="LED=F") {
digitalWrite(PIN_LED,LOW);
state="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("<html>");
cliente.println("<head>");
cliente.println("<title>LED ON/OFF</title>");
cliente.println("</head>");
cliente.println("<body width=100% height=100%>");
cliente.println("<center>");
cliente.println("<h1>LED ON/OFF</h1>");
cliente.print("
");
cliente.print("Estado del LED: ");
cliente.print(state);
cliente.print("
");
cliente.println("<input type=submit value=ON style=width:200px;height:75px onClick=location.href='./?LED=T\'>");
cliente.println("<input type=submit value=OFF style=width:200px;height:75px onClick=location.href='./?LED=F\'>");
cliente.println("</center>");
cliente.println("</body>");
cliente.println("</html>");
cliente.stop();
//Cierro conexión con el cliente
readString="";
}
}
}
}
}