URE foro pequeñas
WEB Server con ardu...
 
Notificaciones
Limpiar todo

WEB Server con arduino

EA4ADJ
Mensajes: 4065
#28422  - 17 julio, 2014 20:17 

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!

ResponderCitar
Inició el tema
EA5O
 EA5O
Mensajes: 76
#256677  - 18 julio, 2014 04:07 

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.

ResponderCitar
EA4ADJ
Mensajes: 4065
#256678  - 18 julio, 2014 07:46 

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!

ResponderCitar
Inició el tema
EA5O
 EA5O
Mensajes: 76
#256679  - 18 julio, 2014 09:29 

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.

ResponderCitar
EA4ADJ
Mensajes: 4065
#256680  - 19 julio, 2014 14:32 

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("CONTROL DE RELES");
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!

ResponderCitar
Inició el tema
EA5O
 EA5O
Mensajes: 76
#256681  - 20 julio, 2014 17:50 

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.

ResponderCitar
EA5O
 EA5O
Mensajes: 76
#256682  - 21 julio, 2014 11:26 

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.

ResponderCitar
EA1DDO
Mensajes: 7815
#256862  - 31 julio, 2014 00:03 

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

ResponderCitar

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