Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SensorDHT11 PDF
SensorDHT11 PDF
uiopasdfghjklzxcvbnmqwertyuiopasd
fghjklzxcvbnmqwertyuiopasdfghjklzx
cvbnmqwertyuiopasdfghjklzxcvbnmq
TECNOLOGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLOGICO DE PUEBLA
wertyuiopasdfghjklzxcvbnmqwertyui
REDES EMERGENTES
UNIDAD III
opasdfghjklzxcvbnmqwertyuiopasdfg
GRUPO B
MARTES Y VIERNES 11:00AM – 13:00PM
hjklzxcvbnmqwertyuiopasdfghjklzxc
17/03/2015
vbnmqwertyuREDES_EMERGENTESi
GONZALEZ RAMIREZ NORA E.
SANTOS ROJAS MA. FERNANDA
opasdfghjklzxcvbnmqREDES_EMERG
SENSOR:
ENTESwertyuiopasdfghjklzxcvbnmq
HUMEDAD/TEMPERATURA
DHT11
wertyuiopasdfghREDES_EMERGENT
ESjklzxcvbnmqwertREDES_EMERGE
NTESyuiopasdfghjklzxcREDES_EMER
GENTESvbnmqwertyuiopasREDES_E
MERGENTESdfghjklzxcvbnmqweRED
ES_EMERGENTESrtyuiopasdfghjklzxc
REDES_EMERGENTESvbnmqwertyui
REDES EMERGENTES
I N D I C E
Contenido
ARDUINO UNO .............................................................................................................................. 3
ETHERNET ........................................................................................................... 3
WINDOWS ............................................................................................................ 3
CARACTERISTICAS...................................................................................................................... 9
PRACTICA..................................................................................................................................... 10
MATERIALES ............................................................................................................................ 10
PROBAR EL ARDUINO .............................................................................................................. 11
CONECTAR EL ETHERNET SHIELD ............................................................................................ 12
EJECUTAR EL WEBSERVER ....................................................................................................... 17
COMPROBACION DE CONEXIÓN: ENCENDER UN LED ............................................................ 17
SENSOR DHT11 ........................................................................................................................ 22
ARDUINO UNO
ETHERNET
WINDOWS
ETHERNET SHIELD
Ethernet Shield permite a una placa Arduino conectarse a internet. Está
basada en el chip ethernet Wiznet W5100. El Wiznet W5100 provee de una pila
de red IP capaz de soportar TCP y UDP. Soporta hasta cuatro conexiones de
sockets simultáneas. Usa la librería Ethernet para escribir programas que se
conecten a internet usando la shield.
Arduino usa los pines digitales 10, 11, 12, y 13 (SPI) para comunicarse con el
W5100 en la ethernet shield. Estos pines no pueden ser usados para e/s
genéricas.
El jumper soldado marcado como “INT” puede ser conectado para permitir a la
placa Arduino recibir notificaciones de eventos por interrupción desde el
W5100, pero esto no está soportado por la librería Ethernet. El jumper conecta
el pin INT del W5100 al pin digital 2 de Arduino.
Para usar la Ethernet Shield solo hay que montarla sobre la placa Arduino.
Para cargar los sketches a la placa conectarla al ordenador mediante el cable
USB como se hace normalmente. Luego conectar la Ethernet a un ordenador, a
un switch o a un router utilizando un cable ethernet standard (CAT5 o CAT6
con conectores RJ45). La conexión al ordenador puede requerir el uso de un
cable cruzado (aunque muchos ordenadores actuales, pueden hacer el cruce
de forma interna).
¿QUÉ ES UN SENSOR?
SENSOR HUMEDAD
Hay tres tipos de sensores de temperatura, los termistores, los RTD y los
termopares.
El DHT11 es un sensor que proporciona una salida de datos digital. Entre sus
ventajas podemos mencionar el bajo coste y el despliegue de datos digitales.
Esto supone una gran ventaja frente a los sensores del tipo análogo, como el
LM335 por ejemplo, en los cuales las fluctuaciones en el voltaje alteran la
lectura de datos.
Entre las desventajas pues, el DHT11 solo lee enteros, no podemos leer
temperaturas con decimales por lo que tenemos que pensarlo muy bien a la
hora de utilizar este sensor para trabajos en los que se requieran lecturas
precisas de temperatura y/o humedad. En fin, vamos a lo que vamos. Para
poder leer datos desde este sensor de una forma sencilla necesitamos
descargar una librería.
¿CÓMO FUNCIONAN?
Los DHTxx (xx por “11″ o “22″) se componen de un sensor capacitivo para
medir la humedad y de un termistor. Ambos sensores están calibrados por lo
que no es necesario añadir ningún circuito de tratamiento de señal. Esto sin
duda es una ventaja porque nos simplifica las cosas en la protoboard. Además,
como los DHTxx han sido calibrados en laboratorios, presentan una gran
fiabilidad.
.
Ambos sensores funcionan con ciclos de operación de duración determinada
(1s en el caso del DHT11 y 2s en el caso del DHT22). En este tiempo, el
microcontrolador externo (Arduino por ejemplo) y el microcontrolador que lleva
integrado el sensor, se hablan entre sí de la siguiente manera:
El microcontrolador (Arduino) inicia la comunicación.
El sensor responde estableciendo un nivel bajo de 80us y un nivel alto de
80us.
El sensor envía 5 bytes.
Se produce el handshaking.
CARACTERISTICAS
Parámetro DHT11
Rango de medidaDe 0 a 50 °C
Temperatura
Precisión Temperatura ±2 °C
Precisión Humedad 4% RH
Tiempo de respuesta 1s
PRACTICA
MATERIALES
Sensor DHT11
Cables de conexión jumpers
Cable conexión Arduino
Aurduino 1
Primero descargamos los archivos que conforman esta librería. Ahora que
hemos descargado, nos vamos a la carpeta de nuestro Arduino IDE, buscamos
una carpeta llamada “libraries” y ahí descomprimimos el archivo *.rar. Nos
debe quedar así:
PROBAR EL ARDUINO
Probar el arduino con el sensor DHT11 sin el Ethernet shield, el negativo del
sensor se conecta a pin GND en el arduino, la positiva se conecta al pin
alimentador de 5volts y el pin que marca los datos del sensor se conecta al pin
número 2 de nuestro arduino.
#include "DHT.h"
#define DHTPIN 2
void setup() {
void loop(){
Serial.println("Humedad: ");
Serial.println(h);
Serial.println("Temperatura :");
Serial.println(t);
delay(500);
#include <SPI.h>
#include <Ethernet.h>
IPAddress ip(192,168,0,101);
// Inicia la libreria Ethernet server con el puerto 80 (por defecto el puerto HTTP).
EthernetServer server(125);
void setup() {
Serial.begin(9600);
Ethernet.begin(mac, ip);
server.begin();
Serial.println(Ethernet.localIP());
void loop() {
Serial.println("Nuevo cliente");
if (client.available()) {
char c = client.read();
Serial.write(c); // Imprime por el puerto serie la petición del cliente (caracter a caracter)
// Respuesta:
client.println("Content-Type: text/html");
client.println();
break;
Serial.println("Cliente desconectado");
Serial.println();
EJECUTAR EL WEBSERVER
#include <SPI.h>
#include <Ethernet.h>
EthernetServer servidor(125);
int PIN_LED=8;
String state=String(3);
void setup() {
servidor.begin();
pinMode(PIN_LED,OUTPUT);
digitalWrite(PIN_LED,LOW);
state="OFF";
void loop() {
if(cliente) {
boolean lineaenblanco=true;
while(cliente.connected()) {
if(cliente.available()) {
char c=cliente.read();
if(readString.length()<30) {
readString.concat(c);
//Cliente conectado
if(readString.substring(LED,LED+5)=="LED=T") {
digitalWrite(PIN_LED,HIGH);
state="ON"; }
else if (readString.substring(LED,LED+5)=="LED=F") {
digitalWrite(PIN_LED,LOW);
state="OFF";
cliente.println("Content-Type: text/html");
cliente.println("<html>");
cliente.println("<head>");
cliente.println("<title>LAMPARA ON/OFF</title>");
cliente.println("</head>");
cliente.println("<body background=portada2.jpg>");
cliente.println("<center>");
cliente.println("<h1>LAMPARA ON/OFF</h1>");
cliente.print("<br><br>");
cliente.print(state);
cliente.print("<br><br><br><br>");
cliente.println("</center>");
cliente.println("</body>");
cliente.println("</html>");
cliente.stop();
readString="";
SENSOR DHT11
Una vez comprobada la conexión del Ethernet la probaremos con nuestro
sensor DHT11 empezando por pegar el siguiente código en nuestro IDE.
#include <SPI.h>
#include <Ethernet.h>
#include <dht11.h>
#include <Wire.h>
// Se introducen la ip y la mac.
byte mac[] = {
IPAddress ip(192.160.0.101);
EthernetServer server(125)
void setup()
Serial.begin(9600);
while (!Serial) {
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
} //Termina setup
void loop()
if (client) {
Serial.println("new client");
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
client.println("Content-Type: text/html");
client.println("Connnection: close");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.print("ESTOY VIVOOO!");
client.println("<br />");
switch (chk)
case 0:
Serial.println("OK");
break;
case -1:
Serial.println("Checksum error");
break;
case -2:
break;
default:
Serial.println("Unknown error");
break;
client.println((float)DHT11.temperature, 1);
client.println("<br />");
client.println(Fahrenheit(DHT11.temperature), 1);
client.println("<br />");
client.println(Kelvin(DHT11.temperature), 1);
client.println("<br />");
client.println((float)DHT11.humidity, 0);
client.println("<br />");
client.println("</html>");
break;
if (c == '\n') {
//Linea en blanco
currentLineIsBlank = true;
else if (c != '\r') {
currentLineIsBlank = false;
delay(1);
client.stop();
Serial.println("client disonnected");
} //Termina loop
//Centigrados a Kelvin
Como pueden ver nuestro sensor ya puede comunicar datos hacia la pagina
web y se actualiza cada segundo.
Sin embargo todo estos datos se encuentran aun dentro de una LAN y si
queremos acceder a ellos desde cualquier dispositivo conectado al router
debemos asignarle una IP estática al arduino.