Paso 21: Arduino plus ethernet adaptador.
código de < > / *
Servidor Web
Un servidor web simple
Circuito:
* Escudo Ethernet conectado a pins oA, 0B C 0, D 0
*/
//——————————————————————————————————-
#include < SPI.h >
#include < Ethernet.h > / / ingresar una dirección de MAC y dirección IP para el controlador a continuación.
mac de bytes [] = {0 × 90, 0xA2, 0xDA, 0x0D, 0 × 48, 0xD3}; La dirección IP dependerá de tu red local:
asignar una dirección IP para el controlador: ip(192,168,1,17) 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(80) de EthernetServer;
ReadString cadena;
//——————————————————————————————————-
//————————————————-
Los códigos adicionales para la declaración: / / declara el 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()
{
— — —-/ / Configurar extra 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 de 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) {//store 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 4 alta
Serial.println ("llevado");
}
Else {}
if(readString.IndexOf("?lightOff") > 0) //checks para apagado
{
digitalWrite (8, bajo); configurar pin 4 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"); }
}
}
}
}
} < / código >