#include <SPI.h>
#include <Ethernet.h>
#define fotocelda A2
#define pot1 A0 // potenciometro 1
#define pot A1 // potenciometro 2
#define sr A3 //switch reed
/ / Introducir una dirección MAC y la dirección IP para el dispositivo de abajo .
/ / La dirección IP será dependiente de la red local:
byte mac[] = {
0x01, 0x50, 0x56, 0xC0, 0x00, 0x08 };
IPAddress ip(192,168,1,5); //direccion ip configurada para funcionar con el servidor.
/ / Inicializar la biblioteca de servidor Ethernet
/ / Con la dirección IP y el puerto que desee utilizar
/ / ( El puerto 80 es el predeterminado para HTTP ) :
EthernetServer server(80);
void setup() {
Serial.begin(9600);
pinMode(fotocelda, INPUT);
pinMode(pot1, INPUT);
pinMode(pot, INPUT);
pinMode(sr, INPUT);
while (!Serial) {
; / / Esperar al puerto serial para conectar .
}
/ / Iniciar la conexión Ethernet y el servidor :
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
/ / Una petición http termina con una línea en blanco
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
/ / Si usted ha llegado a la final de la línea ( recibió una nueva línea
/ / Carácter ) y la línea está en blanco , la petición http ha terminado,
/ / Para que pueda enviar una respuesta
if (c == '\n' && currentLineIsBlank) {
/ / Enviar un encabezado de respuesta HTTP estándar
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); / / La conexión se cierra
client.println("Refresh: 5"); / / Actualizar la página automáticamente cada 5 segundos
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
/ / Salida el valor de cada pin de entrada analógica
int luminosidad = analogRead(fotocelda);
client.print("Luminosidad");
client.print(" es ");
client.print(luminosidad);
client.println("<br />");
int valorT1 = analogRead(pot1);
int POTE1 = map(valorT1, 0, 1023, 0, 100);
client.print("Potenciometro 1");
client.print(" es ");
client.print(POTE1);
client.println("<br />");
int valorT2 = analogRead(pot);
int POTE2 = map(valorT2, 0, 1023, 0, 100);
client.print("Potenciometro 2");
client.print(" es ");
client.print(POTE2);
client.println("<br />");
int valorSw = analogRead(sr);
int SWIT = map(valorSw, 0, 1023, 0, 100);
client.print("Switch Reed");
client.print(" es ");
client.print(SWIT);
client.println("<br />");
client.println("</html>");
break;
}
if (c == '\n') {
/ / Que está empezando una nueva línea
currentLineIsBlank = true;
}
else if (c != '\r') {
/ / Que ha llegado un personaje en la línea actual
currentLineIsBlank = false;
}
}
}
/ / Darle al navegador web el tiempo para recibir los datos
delay(1);
/ / Cerrar la conexión :
client.stop();
Serial.println("client disonnected");
}
}