Paso 3: El código
http://arduinotronics.blogspot.com/2013/09/Arduino-Temp-Humidity-Web-Server.html
#include < DHT.h >
#define DHTPIN 2 / / Qué pin estamos conectados a
Quite el comentario de cualquier tipo que utilizas!
#define DHTTYPE DHT11 / / DHT 11
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
#define DHTTYPE DHT21 / / DHT 21 (AM2301)
Conecte la clavija 1 (a la izquierda) de la sonda a + 5V
Conectar el pin 2 del sensor a lo que tu DHTPIN
Conectar el pin 4 (a la derecha) del sensor de suelo
Conecte un resistor de 10K del pin 2 (datos) al pin 1 (potencia) del sensor de
DHT dht (DHTPIN, DHTTYPE);
#include < SPI.h >
#include < Ethernet.h >
Introduzca una dirección de MAC y dirección IP para el controlador a continuación.
La dirección IP dependerá de tu red local:
mac de bytes [] = {}
0x90, 0xA2, 0xDA, 0 x 00, 0x23, 0x36}; Dirección MAC en la parte posterior de tu escudo de ethernet.
Ip(192,168,254,177) dirección IP; Dependientes de las direcciones de red la dirección IP.
Inicializar la biblioteca de servidor Ethernet
con la dirección IP y el puerto que desea utilizar
(el puerto 80 es por defecto para HTTP):
Server(80) de EthernetServer;
void setup() {}
Abrir comunicaciones en serie y esperar para que el puerto a abrir:
Serial.Begin(9600);
mientras (!. Serie) {}
; Espere a que el puerto serial para conectar. Necesario sólo para Leonardo
}
DHT.Begin();
Inicie la conexión Ethernet y servidor:
Ethernet.Begin (mac, ip);
Server.Begin();
Serial.Print ("server es a");
Serial.println(Ethernet.localIP());
}
void loop() {}
Lectura de temperatura o la humedad toma alrededor de 250 milisegundos.
Lecturas del sensor también pueden ser hasta 2 segundos 'old' (es un sensor muy lento)
Float h = dht.readHumidity();
Float t = dht.readTemperature();
Compruebe si devuelve es válidas, si son NaN (no un número) entonces algo salió mal!
Si (isnan(t) || isnan(h)) {}
Serial.println ("error al leer desde DHT");
} else {}
Serial.Print ("humedad:");
Serial.Print(h);
Serial.Print ("% \t");
Serial.Print ("temperatura:");
Serial.Print(t);
Serial.println ("* C");
}
Escuchar para clientes entrantes
Cliente EthernetClient = server.available();
Si {} (cliente)
Serial.println ("nuevo cliente");
una solicitud http termina con una línea en blanco
Boolean currentLineIsBlank = true;
mientras (client.connected()) {}
Si (client.available()) {}
char c = client.read();
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 (c == '\n' & & currentLineIsBlank) {}
Enviar un encabezado de respuesta http estándar
Client.println ("HTTP/1.1 200 OK");
Client.println ("tipo de contenido: texto/html");
Client.println ("conexión: cerrar"); la conexión se cerrará después de la terminación de la respuesta
Client.println ("Refresh: 5"); actualizar la página automáticamente cada 5 segundos
Client.println();
Client.println ("<! HTML de DOCTYPE > ");
Client.println ("< html >");
el valor de la DHT-11
Client.println ("< H2 >");
Client.Print ("humedad:");
Client.println ("</H2 >");
Client.println ("< p/>");
Client.println ("< H1 >");
Client.Print(h);
Client.Print ("% \t");
Client.println ("</H1 >");
Client.println ("< p/>");
Client.println ("< H2 >");
Client.Print ("temperatura:");
Client.println ("</H2 >");
Client.println ("< H1 >");
Client.Print(t*1.8+32);
Client.println ('°');
Client.println("F");
Client.println ("</H1 >");
Client.println ("</html >");
rotura;
}
Si (c == '\n') {}
vas a empezar una nueva línea
currentLineIsBlank = true;
}
else if (c! = '\r') {}
Has conseguido un carácter en la línea actual
currentLineIsBlank = false;
}
}
}
darle tiempo al navegador de web para recibir los datos
Delay(1);
cerrar la conexión:
Client.STOP();
Serial.println ("cliente disonnected");
}
}