0% encontró este documento útil (0 votos)
145 vistas9 páginas

Arduino Con Ethernet Shield

Este documento describe cómo usar un Arduino Ethernet Shield para comunicar un Arduino con una plataforma web y un sistema domótico a través de Internet. Explica que el Ethernet Shield permite a un Arduino conectarse a Internet usando un chip Ethernet. También presenta problemas como las direcciones IP dinámicas y cómo solucionarlos mediante configuración estática y apertura de puertos en el router. Finalmente, propone usar HTML y código Arduino para crear una interfaz web que permita controlar un LED conectado al Arduino de forma remota a través de Internet.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
145 vistas9 páginas

Arduino Con Ethernet Shield

Este documento describe cómo usar un Arduino Ethernet Shield para comunicar un Arduino con una plataforma web y un sistema domótico a través de Internet. Explica que el Ethernet Shield permite a un Arduino conectarse a Internet usando un chip Ethernet. También presenta problemas como las direcciones IP dinámicas y cómo solucionarlos mediante configuración estática y apertura de puertos en el router. Finalmente, propone usar HTML y código Arduino para crear una interfaz web que permita controlar un LED conectado al Arduino de forma remota a través de Internet.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

ARDUINO CON ETHERNET SHIELD

OBJETIVOS:
-

Comunicar Ethernet shield con Arduino en una plataforma web.


Comunicar la plataforma web con el sistema domotico.

QUE FUNCIN CUMPLE ETHERNET SHIELD


Arduino Ethernet Shield permite a una placa Arduino conectarse
a internet. Est basada en el chip ethernet Wiznet W5100
(datasheet). El Wiznet W5100 provee de una pila de red
IP capaz de TCP y UDP.
Cita: http://www.artinteractivo.com/arduino-ethernet
QUE ES UN ARDUINO
Arduino es una plataforma de hardware libre, basada en
una placa con un microcontrolador y un entorno de
desarrollo, diseada para facilitar el uso de la electrnica
en proyectos multidisciplinares.
El hardware consiste en una placa con un
microcontrolador Atmel AVR y puertos
de entrada/salida. Los microcontroladores ms usados
son el Atmega168, Atmega328, Atmega1280,
y Atmega8 por su sencillez y bajo coste que permiten el
desarrollo de mltiples diseos. Por otro lado el software consiste en un
entorno de desarrollo que implementa el lenguaje de
programacinProcessing/Wiring y el cargador de arranque que es ejecutado en
la placa. Se programa en el ordenador para que la placa controle los
componentes electrnicos

Cita: WIKIPEDIA

PROBLEMA DE LA CONEXIN DE ETHERNET SHIELD A UNA IP


Cuando conectas tu Arduino Ethernet Shield con tu Router, ste le asigna
una direccin IP, es decir, una identificacin que le permite diferenciar a tu
Arduino del resto de ordenadores y dems elementos que tengas conectados a
la red local de tu casa, as que esa direccin que va a utilizar tu Arduino tienes
que introducirla en tu sketch. El problema es que esa IP es cambiante y cada
vez que su valor cambie, tu sistema dejar de funcionar.
Del mismo modo, la direccin de tu Router cambia salvo que tengas contratado
un sistema con IP esttica. Esto no es lo ms habitual ya que estos sistemas
son ms caros y a la compaa que te proporciona el Internet le interesa que
t tengas una IP dinmica.
Como lo que t quieres es implementar tu sistema sobre tu Arduino Ethernet
Shield, poder controlarlo desde cualquier parte del mundo (y no solo desde tu
red de rea local) y que este siga funcionando sin tener que modificar tu
cdigo (sketch) con independencia de lo que pase en tu red.
SOLUCIONAR VARIOS PROBLEMAS:
1. Conseguir que conexin IP entre tu Arduino Ethernet Shield y tu
Router (rea local) no cambie.
2. Abrir los puertos de tu Router para permitir que entre y salga
informacin.
3. Conseguir que la conexin entre tu Router e Internet no cambie
(para que puedas acceder siempre desde la misma direccin).

Conexion entre Ethernet shield router


para poder conectar la placa Ethernet se tiene que saber que cada router tiene
su propia configuracion y distinta a las otras. Por lo que se tiene que ver en
este proyecto saber como acceder a un router que nos proporcione el internet
en nuestra facultad.

Segunda fase: programacin en HTML

Luego que se halla configuramos el ethernet shield para que tenga una IP
estatica necesitamos la programacin para lo que se quiere alcanzar.
En la investigacin que se est haciendo se ha planteado crear una interface
en HTML con el cual se creara una pgina web con los comandos necesario
para realizar funciones y ordenar al arduino que cumpla ordenes mediante
internet en cualquier parte de donde se encuentre el usuario.
QUE ES HTML:
El HTML es un lenguaje de descripcin de pginas que ha evolucionado en sus
ltimas versiones, (HTML5, a la hora de escribir esto) en algo muy sofisticado
que sin llegar a ser un lenguaje de programacin, es capaz de ofrecer una
potencia espectacular.
Un curso medianamente organizado de HTML escapa con mucho la capacidad
y el objetivo de estas humildes sesiones, pero para continuar presentando
como hacer ciertas cosas con Arduino y la conexin a Ethernet, necesitamos

presentar algunas ideas al respecto, porque sin ellas cualquier intento de


avanzar seria vano.
Por ejemplo, es muy til disponer de un programa tipo, que nos permita
manipular un LED conectado a nuestro Arduino mediante una pgina Web, y
este es el objetivo de la sesin actual.

ESTE EL EL CODIGO BASE CON EL QUE VAMOS A EMPEZAR A


TRABAJAR, EL CODIGO SE GUARDA EN UN BLOC DE NOTAS CON LA
EXTENSION .HTML Y RAPIDAMENTE SE CREA UNA PEQUENIA PAGINA
WEB EL LA CUAL SE PUEDE MANDAR UNA ORDEN AL ARDUINO POR
MEDIO DEL INTERNET PARA QUE PUEDA PRENDER O APAGAR EL LED
CUANDO SE DESEE. CON ESTE PRINCIPIO DE PRENDER Y APAGAR UN
LED SE VA A COMENZAR A TRABAJAR EN NUESTRO PORYECTO, SE
HARA INVESTIGACION PARA AGRANDAR Y MEJORAR EL CODIGO PARA
QUE NOS PUEDA SERVIR COMO DESEAMOS.

<!DOCTYPE html>
<html>
<head>
<title> Control de LEDs en Arduino</title>
</head>
<body>
<h1>LED remoto</h1>
<p>Haz click para conmutar el LED.</p>
<form method="get">
<input type="checkbox" name="LED2" value="2"
onclick="submit();">LED2
</form>
</body>
</html>

PROGRAMA BASE PARA ARDUINO.

#include <SPI.h>
#include <Ethernet.h>

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


IPAddress ip(192,168,1,177);
EthernetServer server(80);

String HTTP_req;

// Para guardar la peticion del cliente

boolean LED2_status = 0;

void setup()
{ Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);
pinMode(2, OUTPUT);

}
void loop()
{ EthernetClient client = server.available(); // Comprobamos si hay peticiones
if (client)

// En caso afirmativo

{ boolean currentLineIsBlank = true;


while (client.connected())
{ if (client.available())

// Hay algo pendiente de leer

{ char c = client.read(); // Leemos los caracteres de uno en uno


HTTP_req += c;

// Los aadimos al String

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


{ client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
client.println("<!DOCTYPE html>");

// Envia la pagina Web

client.println("<html>");
client.println("<head>");
client.println("<title>Control de LEDs en Arduino</title>");
client.println("</head>");
client.println("<body>");
client.println("<h1>LED</h1>");
client.println("<p>Haz click para conmutar el LED.</p>");
client.println("<form method=\"get\">");
ProcessCheckbox(client);
client.println("</form>");
client.println("</body>");

client.println("</html>");
Serial.print(HTTP_req);
HTTP_req = "";

// Una vez procesador, limpiar el string

break;
}
if (c == '\n')
currentLineIsBlank = true;
else if (c != '\r')
currentLineIsBlank = false;
} // if (client.available
} // WHile
delay(10);

// dar tiempo

client.stop(); // Cerra conexion


} // If client
}
void ProcessCheckbox(EthernetClient cl)
{ if (HTTP_req.indexOf("LED2=2") > -1)
LED2_status = !LED2_status ;

// LED2 pinchado?
// Si pichado invertimos el valor

digitalWrite(2, LED2_status);
if (LED2_status)
cl.println("<input type=\"checkbox\" name=\"LED2\" value=\"2\" \\
onclick=\"submit();\" checked>LED2");
else
cl.println("<input type=\"checkbox\" name=\"LED2\" value=\"2\" \\
onclick=\"submit();\">LED2");
}

También podría gustarte