Hola, estoy cacharreando con un arduino uno y el shield de ethernet.
La idea es hacer un programita que cuando yo meta la direccion IP del ARDUINO me muestre una pagina con botones y que pueda pulsarlos. Y a su vez que actue sobre unos reles y lea su estado devolviendome su valor on/off.
Ya he realizado un programa, pero me he liado y ahora no va bien.
Si alguien se anima se lo mando para que lo vea.
73, TNX.
Mi hijo me hace profundamente feliz
TNX & 73,
Pedro EA4ADJ IM88jw http://ea4adj.jimdo.com/
La solana. Que pueblo, galan!
Hola,
Hace tiempo inicie ese camino y cuando estaba más o menos encarrilado lo tuve que dejar aparcado.
No te prometo nada pero si quieres enviarlo puedo intentar echar una mano.
El correo es el indicativo arroba URE punto es.
73, Paco. EC5CR
Paco, EA5O.
Gracias Paco, el que tengo no es muy complejo, lo que pasa es que al estar hecho con trozos de otros softwares, pues no entiendo muy bien el codigo, pero de momento es cortito.
73.
Mi hijo me hace profundamente feliz
TNX & 73,
Pedro EA4ADJ IM88jw http://ea4adj.jimdo.com/
La solana. Que pueblo, galan!
Hola Pedro.
No tengo claro que tenga bien vinculado el correo vía ure. Si quieres envíalo a paco.ec5cr arroba gmail.com que llega seguro.
Precisamente ahora tengo un shield de red y una placa de 8 relés para cacharrear con el arduino ... Entiendo que perfecto para hacer estas pruebas.
Lo que hice yo estaba basado en otra cosa que encontré en la web y la ajusté a mis necesidades, y precisamente lo dejé en el punto en que empezaba a funcionar el accionamiento de los relés vía web.
Ahora estaba retomando el tema y me has animado con la petición. Puede ser un proyecto común a ver si entre los dos y alguien más que se anime lo terminamos
73, Paco
Paco, EA5O.
Gracias Paco te envio el codigo.
#include
#include
//Declaración de la direcciones MAC e IP. También del puerto 80
byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC
IPAddress ip(192,168,1,100); //IP
EthernetServer servidor(80);
int PIN_LED1=8;
String readString1=String(30);
String state1=String(3);
int PIN_LED2=9;
String state2=String(3);
int PIN_LED3=10;
String state3=String(3);
int PIN_LED4=11;
String state4=String(3);
void setup()
{
Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas
servidor.begin();
pinMode(PIN_LED1,OUTPUT);
digitalWrite(PIN_LED1,HIGH);
state1="OFF";
pinMode(PIN_LED2,OUTPUT);
digitalWrite(PIN_LED2,HIGH);
state2="OFF";
pinMode(PIN_LED3,OUTPUT);
digitalWrite(PIN_LED3,HIGH);
state3="OFF";
pinMode(PIN_LED4,OUTPUT);
digitalWrite(PIN_LED4,HIGH);
state4="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("LED=");
int LED3 = readString1.indexOf("LED=");
int LED4 = readString1.indexOf("LED=");
if(readString1.substring(LED1,LED1+6)=="LED1=T")
{
digitalWrite(PIN_LED1,LOW);
state1="ON";
} else if (readString1.substring(LED1,LED1+6)=="LED1=F")
{
digitalWrite(PIN_LED1,HIGH);
state1="OFF";
}
if(readString1.substring(LED2,LED2+5)=="LED=T")
{
digitalWrite(PIN_LED2,LOW);
state2="ON";
} else if (readString1.substring(LED2,LED2+5)=="LED=F")
{
digitalWrite(PIN_LED2,HIGH);
state2="OFF";
}
if(readString1.substring(LED3,LED3+4)=="LED=T")
{
digitalWrite(PIN_LED3,LOW);
state3="ON";
} else if (readString1.substring(LED2,LED3+4)=="LED=F")
{
digitalWrite(PIN_LED3,HIGH);
state3="OFF";
}
if(readString1.substring(LED4,LED4+3)=="LED=T")
{
digitalWrite(PIN_LED4,LOW);
state4="ON";
} else if (readString1.substring(LED4,LED4+3)=="LED=F")
{
digitalWrite(PIN_LED3,HIGH);
state4="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("
cliente.println("");
cliente.println("");
cliente.println("");
cliente.println("
CONTROL DE RELES EA4ADJ Ver 1.1
");
cliente.print("
");
cliente.print("Estado del rele 1: ");
cliente.print(state1);
cliente.print("
");
cliente.println("");
cliente.println("");
cliente.print("
");
cliente.print("Estado del rele 2: ");
cliente.print(state2);
cliente.print("
");
cliente.println("");
cliente.println("");
cliente.print("
");
cliente.print("Estado del rele 3: ");
cliente.print(state3);
cliente.print("
");
cliente.println("");
cliente.println("");
cliente.print("
");
cliente.print("Estado del rele 4: ");
cliente.print(state4);
cliente.print("
");
cliente.println("");
cliente.println("");
cliente.print("
");
cliente.println("");
cliente.println("");
cliente.println("");
cliente.stop();//Cierro conexión con el cliente
readString1="";
}
}
}
}
}
Algo falla, pero ya he empezado a poner y quitar cosas y me he liado.
73 TNX
Mi hijo me hace profundamente feliz
TNX & 73,
Pedro EA4ADJ IM88jw http://ea4adj.jimdo.com/
La solana. Que pueblo, galan!
Hola.
Estaba haciendo el concurso de CW y acabo de regresar a casa. (La radio está en el campero).
Veo que has volcado el código aquí mismo. Le echaré un ojo esta noche y a ver si hay suerte.
73. Paco
Paco, EA5O.
Te he mandado unos correos a ea4adj arroba gmail. Lo anoto aquí por si no te llegan.
Los problemas básicos están solucionados.
73. Paco
Paco, EA5O.
Hola,
Pedro, esa prueba ya la hice yo cuando compré la placa de Ethernet para mi Arduino.
Hay un detalle.
Yo no sabía la razón por la cual esas placas de Ethernet llevan un zócalo para tarjetas de memoria SD...
Si solo quieres ver valores o estados, con un código es suficiente. Yo lo hice y funcionó.
Pero si quieres algún tipo de página web eso significa hacer la función de servidor para lo cual necesita guardar código, y para eso es la memoria SD.
El más chulo es el que usa AJAX.
A mi me pasaron uno código de ejemplo y claro, es mucho mejor, es el camino a seguir.
Mira aquí;
http://www.ure.es/foro/5-vhf-uhf/220028-arduino-control-de-rotores-y-seguimiento-de-luna.html#245428
Ya estoy en HK, déjame ver si encuentro esos códigos.
73, Máximo - EA1DDO
Máximo Martín - EA1DDO / HK1H / M0HAO
EA1DDO@HoTMaiL.com
http://www.EA1DDO.es
QDURE - https://qsl.ure.es
Imprime y confirma tus QSL en tan solo tres click.
Nunca fue tan fácil y cómodo
el confirmar tus contactos.
TIENDA ONLINE URE
Publicaciones, mapas, polos, camisetas, gorras, tazas, forros polares y mucho más...
WEBCLUSTER EA4URE
Conoce el nuevo WebCluster de URE, ahora con nuevos filtros e información y compatible con GDURE