#include // El shield Etherent usa SPI #include #include "DHT.h" byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; EthernetServer server(80); // Arrancamos el servidor en el puerto estandard 80 DHT dht( 2, DHT11); void setup() { dht.begin(); Serial.begin(9600); // Inicia port sèrie Serial.println("Buscant DHCP..."); if (Ethernet.begin(mac) == 0) // Què passa si no connecta? { Serial.println("Impossible connectar amb DHCP"); Serial.println("PROGRAMA TERMINAT."); for (;;) ; //Bucle infinit per deixar l'error de connexió visible } Serial.print("Adr. IP: "); // Comuniquem l'adreça IP assignada for (byte B = 0; B < 4; B++) { Serial.print(Ethernet.localIP()[B], DEC); Serial.print("."); } Serial.println(); Serial.print("Adr. del router: "); // Comuniquem l'adreça del gateway for (byte B = 0; B < 4; B++) { Serial.print(Ethernet.gatewayIP()[B], DEC); Serial.print("."); } Serial.println(); Serial.print("Mascara de subxarxa: "); // Comuniquem la subnet mask for (byte B = 0; B < 4; B++) { Serial.print(Ethernet.subnetMask()[B], DEC); Serial.print("."); } Serial.println(); Serial.print("DNS: "); // Comuniquem l'adreça del servidor DNS for (byte B = 0; B < 4; B++) { Serial.print(Ethernet.dnsServerIP()[B], DEC); Serial.print("."); } Serial.println(); Serial.println("Connexio DHCP establerta."); server.begin(); // Inicia el servidor web Serial.print("Servidor web a l'adr.: "); Serial.print(Ethernet.localIP()); // Missatge de comprovació del servidor al monitor sèrie Serial.println(":8080"); } void loop() { EthernetClient client = server.available(); // Buscamos entrada de clientes if (client) { Serial.println("new client"); boolean currentLineIsBlank = true; // Las peticiones HTTP finalizan con linea en blanco while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); // Esto no es necesario, pero copiamos todo a la consola // A partir de aquí mandamos nuestra respuesta if (c == '\n' && currentLineIsBlank) { // Enviar una respuesta tipica client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); client.println("Refresh: 10"); // Actualizar cada 15 segs client.println(); client.println(""); client.println(""); float h = dht.readHumidity(); // Leer el sensor float t = dht.readTemperature(); Serial.println(t); Serial.println(h); // Desde aqui creamos nuestra pagina con el codigo HTML que pongamos client.print("TEMPERATURA CASTELLDEFELS"); client.print("

Temperatura i humitat en temps real

Temperatura - "); client.print(t); // Aqui va la temperatura client.print(" graus Celsius

"); client.print("

Humitat: "); client.print(h); // Aqui va la humedad client.print(" %

"); client.print("

Les dades s'actualitzen cada 10 segons

"); break; } if (c == '\n') currentLineIsBlank = true; // nueva linea else if (c != '\r') currentLineIsBlank = false; } } delay(10); // Para asegurarnos de que los datos se envia client.stop(); // Cerramos la conexion Serial.println("client disonnected"); } }