Paso 4:
Servidor Web
Un servidor web simple
Circuito:
* Escudo Ethernet conectado a los pines 10, 11, 12, 13
*/
//-------------------------------------------------------------------------------------------------------
#include < SPI.h >
#include < Ethernet.h >
Introduzca una dirección de MAC y dirección IP para el controlador a continuación.
mac de bytes [] = {0x90, 0xA2, 0xDA, 0x0D, 0x48, 0xD3};
La dirección IP dependerá de tu red local:
asignar una dirección IP para el controlador:
Ip(192,168,1,20) dirección IP;
Gateway(192,168,1,1) dirección IP;
Dirección IP subred (255, 255, 255, 0);
Inicializar la biblioteca de servidor Ethernet con el puerto que desea utilizar.
Server(8081) de EthernetServer;
ReadString cadena;
//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------
Los códigos adicionales para la declaración:
Declarar Pin 8 como un LED porque eso es lo que conectará el LED. Usted puede usar cualquier otro pin y entonces tendría que cambiar el número pin.
int led = 8;
//-------------------------------------------------
//-------------------------------------------------------------------------------------------------------
void setup()
{
//-------------------------------------------------
Juego código:
pinMode (led, salida); PIN seleccionado para control
//-------------------------------------------------
//-------------------------------------------------------------------------------------------------------
permiten impresión de datos en serie
Serial.Begin(9600);
empezar a Ethernet
Ethernet.Begin (mac, ip, puerta de enlace, subred);
Server.Begin();
Serial.Print ("Server es a");
Serial.println(Ethernet.localIP());
Serial.println ("controlador de LED de prueba 1.0");
}
//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------
void loop()
{
Escuchar para clientes entrantes
Cliente EthernetClient = server.available();
Si (cliente)
{
Serial.println ("nuevo cliente");
mientras (client.connected())
{
Si (client.available())
{
char c = client.read();
leer las peticiones HTTP de char por char
Si (readString.length() < 100)
{
almacenar caracteres en cadena
readString += c;
Serial.Print(c);
Serial.Write(c);
Si has llegado hasta el final de la línea (recibió una nueva línea
carácter) y la línea está en blanco, ha terminado la solicitud http,
para que puedan enviar una respuesta
Si ha terminado la petición HTTP
Si (c == '\n') {}
Serial.println(readString); imprime en el serial monitor para depuración
//--------------------------------------------------------------------------------------------------------
Necesarios para mostrar el sitio:
Client.println ("HTTP/1.1 200 OK"); Enviar nueva página
Client.println ("tipo de contenido: texto/html");
Client.println();
Client.println ("< HTML >");
Client.println ("< HEAD >");
//--------------------------------------------------------------------------------------------------------
//-------------------------------------------------
lo que se muestra:
Client.println ("< TITLE > domótica </título >");
Client.println ("< center >");
Client.println ("< /HEAD >");
Client.println ("< BODY >");
Client.println ("domótica < H1 > </H1 >");
Client.println ("< hr/>");
Client.println ("< center >");
Client.println ("< a href = \" /? lighton\ "\" > convertir en luz < /a > ");
Client.println ("< br/>");
Client.println ("< br/>");
Client.println ("< a href = \" /? lightoff\ "\" > girar apagado luz < /a >< br/> ");
Client.println ("</BODY >");
Client.println ("</HTML >");
Delay(1);
cliente de parada
Client.STOP();
//-------------------------------------------------
Código que debe aplicarse:
if(readString.IndexOf("?Lighton") > 0) //checks para el
{
digitalWrite (8, HIGH); configurar pin 8 alta
Serial.println ("llevado");
}
Else {}
if(readString.IndexOf("?lightOff") > 0) //checks para apagado
{
digitalWrite (8, bajo); configurar pin 8 bajo
Serial.println ("Led apagado");
}
}
limpieza cadena para la próxima lectura
readString = "";
darle tiempo al navegador de web para recibir los datos
Delay(1);
cerrar la conexión:
Client.STOP();
Serial.println ("cliente disonnected");
}
}
}
}
}
}