Está en la página 1de 30

Qwertyuiopasdfghjklzxcvbnmqwerty

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

ATEMIZ MIGUEL ARELY

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

ETHERNET SHIELD ......................................................................................................................... 4

¿QUÉ ES UN SENSOR? ................................................................................................................... 5

DESCRIPCIÓN DE ALGUNOS SENSORES: .................................................................................... 6

SENSOR HUMEDAD ....................................................................................................................... 7

¿CÓMO FUNCIONAN? ............................................................................................................... 8

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

INSTITUTO TECNOLOGICO DE PUEBLA 2


REDES EMERGENTES

ARDUINO UNO

Arduino es una plataforma de hardware libre, basada en una placa con un


microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la
electrónica en proyectos multidisciplinares.

Las bibliotecas estándar que ofrece Arduino

ETHERNET

Conexión a Internet mediante “Arduino Ethernet Shield“. Puede funcionar como


servidor que acepta peticiones remotas o como cliente. Se permiten hasta
cuatro conexiones simultáneas. Los comandos usados son los siguientes:

 Servidor: Server(), begin(), available(), write(), print(), println()

 Cliente: Client(), connected(), connect(), write(),print(), println(),


available(), read(), flush(), stop().

WINDOWS

Los pasos a seguir son los siguientes:

Interfaz del entorno de desarrollo Arduino en el Sistema Operativo Windows.

 Descargar las versiones más reciente de Java Runtime Enviroment


(J2RE) y del IDE Arduino.
 Instalar los controladores FTDI USB, con la placa Arduino conectada.
 Ejecutar el IDE Arduino para abrir la interfaz

INSTITUTO TECNOLOGICO DE PUEBLA 3


REDES EMERGENTES

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.

El shield provee un conector ethernet estándar RJ45. La ethernet shield


dispone de unos conectores que permiten conectar a su vez otras placas
encima y apilarlas sobre la placa Arduino.

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 botón de reset en la shield resetea ambos, el W5100 y la placa Arduino.

La shield contiene un número de LEDs para información:

 ON: indica que la placa y la shield están alimentadas


 LINK: indica la presencia de un enlace de red y parpadea cuando la shield
envía o recibe datos
 100M: indica la presencia de una conexión de red de 100 Mb/s (de forma
opuesta a una de 10Mb/s)
 RX: parpadea cuando el shield recibe datos
 TX: parpadea cuando el shield envía datos

El jumper soldado marcado como “INT” puede ser conectado para permitir a la
placa Arduino recibir notificaciones de eventos por interrupción desde el

INSTITUTO TECNOLOGICO DE PUEBLA 4


REDES EMERGENTES

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).

Puntos a recordar del Ethernet Shield:

 Opera a 5V suministrados desde la placa de Arduino


 El controlador ethernet es el W5100 con 16K de buffer interno. No
consume memoria.
 El shield se comunica con el microcontrolador por el bus SPI, por lo tanto
para usarlo siempre debemos incluir la libreria SPI.h:
http://arduino.cc/en/Reference/SPI
 Soporta hasta 4 conexiones simultaneas
 Usar la librería Ethernet para manejar el shield:
http://arduino.cc/en/Reference/Ethernet
 El shield dispone de un lector de tarjetas micro-SD que puede ser usado
para guardar ficheros y servirlos sobre la red. Para ello es necesaria la
librería SD: http://arduino.cc/en/Reference/SD
 Al trabajar con la SD, el pin 4 es usado como SS.

El Ethernet shield es compatible con PoE gracias a un módulo adicional que


extrae la energía eléctrica del cable ethernet, anteriormente inyectada desde el
switch.

¿QUÉ ES UN SENSOR?

Un sensor o captador, como prefiera llamársele, no es más que un dispositivo


diseñado para recibir información de una magnitud del exterior y transformarla
en otra magnitud, normalmente eléctrica, que seamos capaces de cuantificar y
manipular.

Normalmente estos dispositivos se encuentran realizados mediante la


utilización de componentes pasivos (resistencias variables, PTC, NTC, LDR,
etc... todos aquellos componentes que varían su magnitud en función de
alguna variable), y la utilización de componentes activos.

INSTITUTO TECNOLOGICO DE PUEBLA 5


REDES EMERGENTES

DESCRIPCIÓN DE ALGUNOS SENSORES:

1. Sensores de posición: Su función es medir o detectar la posición de un


determinado objeto en el espacio, dentro de este grupo

2. Sensores de contacto: Estos dispositivos, son los más simples, ya que


son interruptores que se activan o desactivan si se encuentran en
contacto con un objeto, por lo que de esta manera se reconoce la
presencia de un objeto en un determinado lugar.

3. Captadores de circuitos oscilantes: Este tipo de captadores, se


encuentran basados en la existencia de un circuito en el mismo que
genera una determinada oscilación a una frecuencia prefijada, cuando
en el campo de detección del sensor no existe ningún objeto, el circuito
mantiene su oscilación de un manera fija, pero cuando un objeto se
encuentra dentro de la zona de detección del mismo, la oscilación deja
de producirse, por lo que el objeto es detectado.

4. Sensores por ultrasonidos: Este tipo de sensores, se basa en el mismo


funcionamiento que los de tipo fotoeléctrico, ya que se emite una señal,
esta vez de tipo ultrasónica, y esta señal es recibida por un receptor. De
la misma manera, dependiendo del camino que realice la señal emitida
podremos diferenciarlos entre los que son de barrera o los de reflexión.

5. Captadores de esfuerzos: Este tipo de captadores, se encuentran


basados en su mayor parte en el empleo de galgas extensométrica, que
son unos dispositivos que cuando se les aplica una fuerza, ya puede ser
una tracción o una compresión, varia su resistencia eléctrica, de esta
forma podemos medir la fuerza que se está aplicando sobre un
determinado objeto.

6. Sensores de Movimientos: Este tipo de sensores es uno de los más


importantes en robótica, ya que nos da información sobre las
evoluciones de las distintas partes que forman el robot, y de esta

INSTITUTO TECNOLOGICO DE PUEBLA 6


REDES EMERGENTES

manera podemos controlar con un grado de precisión elevada la


evolución del robot en su entorno de trabajo.

7. Sensores de Velocidad: Estos sensores pueden detectar la velocidad de


un objeto tanto sea lineal como angular, pero la aplicación más conocida
de este tipo de sensores es la medición de la velocidad angular de los
motores que mueven las distintas partes del robot. La forma más popular
de conocer la velocidad del giro de un motor, es utilizar para ello una
dinamo tacométrica acoplada al eje del que queremos saber su
velocidad angular, ya que este dispositivo nos genera un nivel
determinado de tensión continua en función de la velocidad de giro de su
eje, pues si conocemos a que valor de tensión corresponde una
determinada velocidad, podremos averiguar de forma muy fiable a qué
velocidad gira un motor. De todas maneras, este tipo de sensores al ser
mecánicos se deterioran, y pueden generar errores en las medidas.

8. Sensores de Aceleración: Este tipo de sensores es muy importante, ya


que la información de la aceleración sufrida por un objeto o parte de un
robot es de vital importancia, ya que si se produce una aceleración en un
objeto, este experimenta una fuerza que tiende ha hacer poner el objeto
en movimiento.

Como sabemos un sensor es un dispositivo capaz de detectar diferentes tipos


de materiales, con el objetivo de mandar una señal y permitir que continue un
proceso, o bien detectar un robo; dependiendo del caso que éste sea.

Dentro de la selección de un sensor, se deben considerar diferentes factores,


tales como: la forma de la carcasa, distancia operativa, datos eléctricos y
conexiones.

SENSOR HUMEDAD

Hay tres tipos de sensores de temperatura, los termistores, los RTD y los
termopares.

El sensor de temperatura, típicamente suele estar formado por el elemento


sensor, de cualquiera de los tipos anteriores, la vaina que lo envuelve y que

INSTITUTO TECNOLOGICO DE PUEBLA 7


REDES EMERGENTES

está rellena de un material muy conductor de la temperatura, para que los


cambios se transmitan rápidamente al elemento sensor y del cable al que se
conectarán el equipo electrónico.

Los sensores de humedad se aplican para detectar el nivel de líquido en un


depósito, o en sistemas de riego de jardines para detectar cuándo las plantas
necesitan riego y cuándo no.

El sensor que se ocupara en estará practica es el DHT11 que es un sensor de


temperatura muy económico y muy utilizado

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

INSTITUTO TECNOLOGICO DE PUEBLA 8


REDES EMERGENTES

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

Alimentación 3Vdc ≤ Vcc ≤ 5Vdc

Señal de Salida Digital

Rango de medidaDe 0 a 50 °C
Temperatura

Precisión Temperatura ±2 °C

Resolución Temperatura 0.1°C

Rango de medida Humedad De 20% a 90% RH

Precisión Humedad 4% RH

Resolución Humedad 1%RH

Tiempo de respuesta 1s

Tamaño 12 x 15.5 x 5.5mm

INSTITUTO TECNOLOGICO DE PUEBLA 9


REDES EMERGENTES

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í:

INSTITUTO TECNOLOGICO DE PUEBLA 10


REDES EMERGENTES

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.

En el IDE de Arduino se carga el siguiente código:

#include "DHT.h"

#define DHTPIN 2

#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

//librerias del DHT 11

void setup() {

INSTITUTO TECNOLOGICO DE PUEBLA 11


REDES EMERGENTES

Serial.begin(9600); //Se inicia la comunicación serial

dht.begin(); //Se inicia el sensor

void loop(){

float h = dht.readHumidity(); //se lee la humedad

float t= dht.readTemperature(); // se lee la temperatura

Serial.println("Humedad: ");

Serial.println(h);

Serial.println("Temperatura :");

Serial.println(t);

// se imprime las variables de temperatura y humedad

delay(500);

//con un retraso de 500 milisegundos

CONECTAR EL ETHERNET SHIELD

Abrir el ejemplo de webServer Arduino y modificar la ip 192.168.0.101 y el


puerto 125 para que nos quede de la siguiente manera:

INSTITUTO TECNOLOGICO DE PUEBLA 12


REDES EMERGENTES

#include <SPI.h>

#include <Ethernet.h>

// Configuración de direccion MAC e IP.

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

IPAddress ip(192,168,0,101);

INSTITUTO TECNOLOGICO DE PUEBLA 13


REDES EMERGENTES

// Inicia la libreria Ethernet server con el puerto 80 (por defecto el puerto HTTP).

EthernetServer server(125);

void setup() {

// Inicia el puerto serie.

Serial.begin(9600);

// Inicia la conexión Ethernet y el servidor.

Ethernet.begin(mac, ip);

server.begin();

Serial.print("IP local del servidor ");

Serial.println(Ethernet.localIP());

void loop() {

EthernetClient client = server.available(); // Escucha a los clientes entrantes.

if (client) { // Si un cliente se conecta al servidor:

Serial.println("Nuevo cliente");

boolean currentLineIsBlank = true; // Marcador para enviar la respuesta desde el servidor.

while (client.connected()) { // Repite mientas existe clientes conectados:

if (client.available()) {

char c = client.read();

Serial.write(c); // Imprime por el puerto serie la petición del cliente (caracter a caracter)

if (c == '\n' && currentLineIsBlank) { // Se envia la respuesta a una petición de un


cliente cuando a finalizado la petición:

// Respuesta:

INSTITUTO TECNOLOGICO DE PUEBLA 14


REDES EMERGENTES

client.println("HTTP/1.1 200 OK"); // Enviar un encabezado de respuesta HTTP


estándar

client.println("Content-Type: text/html");

client.println("Connection: close"); // Se cerrará la conexiós despues de enviar la


respuesta.

client.println("Refresh: 5"); // Refrescar automáticamente la página después de 5


segundos.

client.println();

client.println("<!DOCTYPE HTML>"); // Tipo de documento.

client.println("<html>"); // Etiqueta html inicio del documento.

client.print("Hola soy Arduino via internet!! - ");

client.print(millis()); // Tiempo de funcionamiento en ms.

client.print("ms encendido. ");

client.println("<br />"); // Etiqueta html salto de linea.

client.println("</html>"); // Etiqueta html fin del documento.

break;

if (c == '\n') { // Si el caracter es un salto de linea:

currentLineIsBlank = true; // La petición a terminado, se respondera a dicha peticón


en el sigueitne ciclo.

else if (c != '\r') { // Si el caracter no es un retorno de carro (la petición no a


terminado).

currentLineIsBlank = false; // Seguimos escuchando la petición.

delay(1); // Espera para dar tiempo al navegador a recivir los datos.

client.stop(); // Cierra la conexión.

INSTITUTO TECNOLOGICO DE PUEBLA 15


REDES EMERGENTES

Serial.println("Cliente desconectado");

Serial.println();

INSTITUTO TECNOLOGICO DE PUEBLA 16


REDES EMERGENTES

EJECUTAR EL WEBSERVER

Nos mostrara la dirección ip en la que se encuentra el servidor. Abrimos el


navegador e introducimos la dirección ip del servidor

COMPROBACION DE CONEXIÓN: ENCENDER UN LED

INSTITUTO TECNOLOGICO DE PUEBLA 17


REDES EMERGENTES

Utilizamos un ejemplo muy sencillo de encender un led a través de una página


web para probar el Ethernet shiled; para esto se conecta un resistencia de
10kohms al pin 8 del ARDUINO y a la pata positiva del led, mientras que la
pata negativa de nuestro led se conecta a GND en el arduino

Ahora abrimos Arduino IDE y pegamos el siguiente código:

#include <SPI.h>

#include <Ethernet.h>

//Declaración de la direcciones MAC e IP.

byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC

IPAddress ip(192,168,0,101); //IP

EthernetServer servidor(125);

int PIN_LED=8;

String readString=String(30); //lee los caracteres de una secuencia en una cadena.

//Los strings se representan como arrays de caracteres (tipo char)

String state=String(3);

INSTITUTO TECNOLOGICO DE PUEBLA 18


REDES EMERGENTES

void setup() {

Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas

servidor.begin();

pinMode(PIN_LED,OUTPUT);

digitalWrite(PIN_LED,LOW);

state="OFF";

void loop() {

//EthernetClient Crea un cliente que se puede conectar a

//una dirección específica de Internet IP

EthernetClient cliente= servidor.available();

if(cliente) {

boolean lineaenblanco=true;

while(cliente.connected()) {

if(cliente.available()) {

char c=cliente.read();

if(readString.length()<30) {

readString.concat(c);

//Cliente conectado

//Leemos petición HTTP caracter a caracter

//Almacenar los caracteres en la variable readString

if(c=='\n' && lineaenblanco) //Si la petición HTTP ha finalizado

int LED = readString.indexOf("LED=");

if(readString.substring(LED,LED+5)=="LED=T") {

INSTITUTO TECNOLOGICO DE PUEBLA 19


REDES EMERGENTES

digitalWrite(PIN_LED,HIGH);

state="ON"; }

else if (readString.substring(LED,LED+5)=="LED=F") {

digitalWrite(PIN_LED,LOW);

state="OFF";

//Cabecera HTTP estándar

cliente.println("HTTP/1.1 200 OK");

cliente.println("Content-Type: text/html");

cliente.println(); //Página Web en HTML

cliente.println("<html>");

cliente.println("<head>");

cliente.println("<title>LAMPARA ON/OFF</title>");

cliente.println("</head>");

cliente.println("<body width=100% height=100%>");

cliente.println("<body background=portada2.jpg>");

cliente.println("<center>");

cliente.println("<h1>LAMPARA ON/OFF</h1>");

cliente.print("<br><br>");

cliente.print("Estado de la lampara: ");

cliente.print(state);

cliente.print("<br><br><br><br>");

cliente.println("<input type=submit value=ON style=width:200px;height:75px


onClick=location.href='./?LED=T\'>");

cliente.println("<input type=submit value=OFF style=width:200px;height:75px


onClick=location.href='./?LED=F\'>");

INSTITUTO TECNOLOGICO DE PUEBLA 20


REDES EMERGENTES

cliente.println("</center>");

cliente.println("</body>");

cliente.println("</html>");

cliente.stop();

//Cierro conexión con el cliente

readString="";

Al ejecutar el código y abrir el navegador introduciendo la ip del servidor que en


nuestro caso es las 192.168.0.101 obtenemos la siguiente pagina web.

INSTITUTO TECNOLOGICO DE PUEBLA 21


REDES EMERGENTES

Como podemos observar ahora es posible encender y apagar el led a través de


esta pagina

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>

//Declara constantes y pin de entrada

#define DHT11PIN 2 // El sensor de temperatura y humedad

// Se introducen la ip y la mac.

byte mac[] = {

0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

INSTITUTO TECNOLOGICO DE PUEBLA 22


REDES EMERGENTES

IPAddress ip(192.160.0.101);

// Inicializa la libreria ethernet, el puerto 80 esta por defecto para HTTP

EthernetServer server(125)

dht11 DHT11; //El objeto sensor

void setup()

// Abrir comunicacion serial y esperar que el puerto responda

Serial.begin(9600);

while (!Serial) {

; // Esperar a que el puerto serial se conecte (solo cuando usamos Arduino


Leonardo)

//Inicializar la conexión Ethernet y el servidor

Ethernet.begin(mac, ip);

server.begin();

Serial.print("server is at ");

Serial.println(Ethernet.localIP());

} //Termina setup

void loop()

//Escucha clientes de entrada

EthernetClient client = server.available();

if (client) {

Serial.println("new client");

//Una solicitud http cuya linea esta en blanco

boolean currentLineIsBlank = true;

INSTITUTO TECNOLOGICO DE PUEBLA 23


REDES EMERGENTES

while (client.connected()) {

if (client.available()) {

char c = client.read();

Serial.write(c);

// Si la linea en la solicitud http esta en blanco y el cliente esta disponible


se puede enviar una respuesta

if (c == '\n' && currentLineIsBlank) {

client.println("HTTP/1.1 200 OK");

client.println("Content-Type: text/html");

client.println("Connnection: close");

client.println();

client.println("<!DOCTYPE HTML>");

client.println("<html>");

// Agregar una etiqueta meta que recargue la pagina cada segundo

client.println("<meta http-equiv=\"refresh\" content=\"1\">");

client.print("ESTOY VIVOOO!");

client.println("<br />");

//Obtener las lecturas del sensor e imprimir el resultado

int chk = DHT11.read(DHT11PIN);

Serial.print("Read sensor: ");

switch (chk)

case 0:

Serial.println("OK");

break;

case -1:

Serial.println("Checksum error");

INSTITUTO TECNOLOGICO DE PUEBLA 24


REDES EMERGENTES

break;

case -2:

Serial.println("Time out error");

break;

default:

Serial.println("Unknown error");

break;

client.print("Temperatura (Celsius): ");

client.println((float)DHT11.temperature, 1);

client.println("<br />");

client.print("Temperatura (Farenheit): ");

client.println(Fahrenheit(DHT11.temperature), 1);

client.println("<br />");

client.print("Temperatura (Kelvin): ");

client.println(Kelvin(DHT11.temperature), 1);

client.println("<br />");

client.print("Humedad (%): ");

client.println((float)DHT11.humidity, 0);

client.println("<br />");

//Termina lectura del sensor

client.println("</html>");

break;

if (c == '\n') {

//Linea en blanco

INSTITUTO TECNOLOGICO DE PUEBLA 25


REDES EMERGENTES

currentLineIsBlank = true;

else if (c != '\r') {

//Si hay un caracter en la linea en blanco

currentLineIsBlank = false;

//Darle al navegador web tiempo para recibir los datos

delay(1);

//Se cierra la conexion

client.stop();

Serial.println("client disonnected");

} //Termina loop

//Convertir de grados Centrigrados a Farenheit

double Fahrenheit(double celsius)

return 1.8 * celsius + 32;

//Centigrados a Kelvin

double Kelvin(double celsius)

return celsius + 273.15;

INSTITUTO TECNOLOGICO DE PUEBLA 26


REDES EMERGENTES

En la parte del ethernet shield conectaremos el cable rojo a 5volts, el cable


negro al GND de ARDUINO y el cable café al pin 2,como se muestra en la
imagen:

Al ejecutar el código y abrir el navegador introduciendo la ip del servidor que en


nuestro caso es las 192.168.0.101 obtenemos la siguiente pagina web.

INSTITUTO TECNOLOGICO DE PUEBLA 27


REDES EMERGENTES

Como pueden ver nuestro sensor ya puede comunicar datos hacia la pagina
web y se actualiza cada segundo.

Se mide la temperatura en grados Celsius, Fahrenheit, kelvin, y la unidad en


porcentaje.

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.

Para esto accedemos a la página de administración de router la cual en nuestro


caso es la dirección 192.168.0.1 que corresponde a un router TP-LINK modelo
TL-WR740N

INSTITUTO TECNOLOGICO DE PUEBLA 28


REDES EMERGENTES

Nos dirigimos a la ventana FORWARDING donde se agrega un nuevo servidor


virtual y se introducen los siguientes datos.

Después de guardar los cambios la dirección externa de nuestro Ethernet


Shield será la WAN: 125.

INSTITUTO TECNOLOGICO DE PUEBLA 29


REDES EMERGENTES

Así que para acceder al arduino se introduce en la URL del navegador la


dirección 102.168.0.101:125 y posteriormente intentamos acceder a el de
diferentes dispositivos.

INSTITUTO TECNOLOGICO DE PUEBLA 30

También podría gustarte