


































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Programación de arduino + Ethernet Shield
Tipo: Apuntes
1 / 42
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!



































1
Implantación de Arduino en las redes Ethernet: “Arduino y el Internet de las Cosas”
Índice
Hyperterminal de Windows
canales analógicos de la tarjeta Arduino UNO.
Este trabajo está bajo licencia Creative Commons Attribution 3.0 Unported License 12 Enero de 2013 Versión de Documento: Versión. 1 Blog de referencia: http://josemanuelruizgutierrez.blogspot.com [email protected]
Arduino Ethernet Shield
Recomiendo la lectura de los documentos que figuran en el ANEXO de Bibliografía con el fin de poder acceder a la información ampliada.
El Shield Arduino Ethernet se conecta a Internet en cuestión de minutos. Sólo tiene que conectar este módulo en la placa Arduino, conectarlo a la red con un cable RJ45 y seguir algunas instrucciones sencillas para empezar a controlar el mundo a través de Internet. Como siempre con Arduino, todos los elementos de la plataforma - hardware, software y documentación - son de libre acceso y de código abierto.
Estas son algunas de las características del shield:
Tensión de alimentación 5V (se alimenta directamente desde la tarjeta Arduino) Controlador Ethernet: W5100 con una memoria interna de 16K Velocidad de conexión: 10/100Mb Conexión con Arduino a traves del Puerto SPI
Descripción
Arduino Ethernet Shield permite a una placa Arduino conectarse a internet. Se basa en el chip Wiznet W5100 ethernet (hoja de datos). El W5100 Wiznet proporciona una red (IP) de pila capaz de TCP y UDP. Soporta hasta cuatro conexiones de socket simultáneas. Utilice la biblioteca de Ethernet a escribir sketches que se conectan a Internet a través de la pantalla. El shield de Ethernet se conecta a una placa Arduino con largas Wire Wrap-headers que se extienden a través del shield. Esto mantiene la disposición de las clavijas intacta y permite que otro shield para ser apilados en la parte superior.
The Shield Ethernet tiene un estándar de conexión RJ-45, con un transformador de línea integrada y Power over Ethernet habilitado.
Hay una ranura para insertar una tarjeta micro-SD, que puede ser usado para almacenar archivos para servir a través de la red. Es compatible con el Arduino Uno y Mega (usando la biblioteca de Ethernet). El CODEC de lector de tarjetas microSD se puede acceder a través de la Biblioteca SD. Cuando se trabaja con esta biblioteca, SS es el pin 4.
La pantalla también incluye un controlador de reajuste, para asegurarse de que el módulo Ethernet W5100 se reinicia correctamente en el encendido. Las revisiones anteriores del shield no eran compatibles con la Mega y la necesidad de restablecer manualmente después del encendido.
El shield actual tiene una alimentación a través de Ethernet (PoE), módulo diseñado para extraer energía de una convencional de par trenzado Categoría 5 cable Ethernet:IEEE802.3af compliant. El Shield dispone de un conector RJ45 para conectarse a una red Ethernet. El botón de reinicio sirve para reiniciar el Shield y la propia tarjeta Arduino. El shield contiene un número de LEDs informativos:
El puente de soldadura de la marca "INT" puede conectarse para permitir que la placa Arduino reciba interrupciones y sean notificadas desde W5100, pero esta opicion no esta en la librería estándar de Ethernet. El puente conecta el pin INT del W5100 para pin digital 2 de la Arduino.
Con este ejemplo vamos a conectarnos a una página Web de la que previamente
conoceremos su IP y recibiremos en nuestro nodo Ethernet Arduino la información que nos envíe esta página. Lo haremos haciendo uso del “monitor” del puerto serie que tiene el IDE
Arduino.
Antes de nada diremos como averiguar la IP de una pagina Web.
¿Cómo AVERIGURA LA IP DE UNA PAGINA WEB?
Invocamos la consola de Windows “ejecutar” y escribimos cmd
Después escribimos “ ping (la dirección web)”
Para averiguar, por ejemplo, la dirección de Facebook lo hacemos como sigue.
Escribimos “ ping www.facebook.com ”
Y vemos que la IP es [69.171.247.37]
Colocaremos esa IP en el programa que se lista a continuación
byte server[] = {69,171,242,74}; // Direccion IP de www.facebook.com
Descargamos el programa en la tarjeta Arduino mediante el IDE de Arduino como
siempre hacemos.
Abrimos la ventana de Visualización del puerto de comunicación de Arduino y vemos
A partir de ese momento comenzará a visualizarse la información en formato texto que
nos llega a traves de nuestro nodo Ethernet.
Este es el programa
/*
Web client
En este sketch Arduino se conecta a una pagina Web (http://www.google.com) usando un Arduino Wiznet Ethernet shield. Circuit:
#include <SPI.h>
#include <Ethernet.h>
// Pone la dirección MAC en el controlador.
// Los Shields Ethernet más actuales Ethernet tienen una dirección MAC impresa en una
// etiqueta pegada en ellos
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server(74,125,230,223); // Google
Serial.print(c); }
// Si el servidor está desconectado, se detiene el cliente: if (!client.connected()) { Serial.println(); Serial.println("disconnectar."); client.stop();
// no hace nada: for(;;) ; }
}
Hyperterminal de Windows.
En esta aplicación vamos a utilizar el shield Ethernet como receptor de datos que le mandaremos desde un PC haciendo uso de Hyperterminal.
/* Telnet client
Este sketch conecta a un servidor telnet (http://www.google.com) Usando un shield Arduino Ethernet. Necesitaremos un servidor telnet para probarlo
El ejemplo de Processing ChatServer example (incluido en la librería de red) trabaja muy bien en el puerto 10002. Este puede encontrase en la parte de ejemplos en la aplicación Processing disponible en http://processing.org/
Circuito:
*/
#include <SPI.h> #include <Ethernet.h>
// Colocar la dirección MAC y la IP para nuestro ejemplo. // La dirección IP dependerá de nuestra red local: byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192,168,1,177);
// Colocar la dirección IP del servidor conectado a la red: IPAddress server(1,1,1,1);
// Inicualizar le libreria Ethernet client // con la IP y el Puerto del servidor // que nos conecatmos (Puerto 23 por defecto para telnet); // si usamos el ChatServer de Processing's usaremos el puerto 10002): EthernetClient client;
void setup() { // Inicia la conexion Ethernet: Ethernet.begin(mac, ip); // Abre la comunicación serie y espera a que se abra el puerto serie de comunicaciones:
canales analógicos de la tarjeta Arduino UNO.
Se trata de que en la misma IP a la que está conectado Arduino Ethernet se escriban los valores de los canales analógicos leídos en Arduino
byte ip[] = {192,168,1,37};
aquí hay que colocar la IP de nuestro puerto de Arduino.
Ahora que ya comprendemos mejor de que se trata el protocolo HTTP veamos un código que transforma nuestro Arduino en un servidor web.
Servidor Web
Un servidor web simple que muestra el valor de los pines de entrada analógica. utilizando un Arduino Ethernet Shield Wiznet.
Circuitos:
created 18 Dec 2009 by David A. Mellis
modified 9 Apr 2012 by Tom Igoe Traducido J.M. Ruiz Nov. 2012
*/
#include <SPI.h> #include <Ethernet.h>
// Escriba una dirección MAC y la dirección IP para el controlador. // La dirección IP será dependiente de la red local: byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192,168,1,36);
// Inicializar la libreria de servidor Ethernet // Con la dirección IP y el puerto que desee utilizar // (Puerto 80 es el valor predeterminado para HTTP): EthernetServer server(80);
void setup() { // Abre el puero serie de cmunicacion y espera: Serial.begin(9600); while (!Serial) { ; // poner aqui un delay de espera para que se conecte el puerto. Solo necesario para // Arduino Leonardo }
// inicia la conexion y el servidor: Ethernet.begin(mac, ip); server.begin(); Serial.print("server is at "); Serial.println(Ethernet.localIP()); }
void loop() { // Detectar los clientes entrantes EthernetClient client = server.available(); if (client) { Serial.println("Nuevo cliente"); // Una petición http termina con una línea en blanco boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); // Si se ha llegado al final de la línea (recibirá una nueva línea // con un Caracter en blanco, la petición http ha terminado,
Bastará que desde cualquier lugar de la red escribamos la dirección de nuestro servidor en la ventana de direcciones del navegador para que aparezcan escritos los valores números de los canales analógicos. Para actualizar el valor basta que demos al botón de recargar pagina y se refrescaran los datos.
Las pruebas las realice dentro de una red LAN pero teniendo los correspondientes permisos de acceso podemos hacerlo desde cualquier lugar de Internet, siempre que escribamos correctamente la IP de nuestro nodo Ethernet remoto.
(Basado en el trabajo publicado en: http://www.diarioelectronicohoy.com/arduino/arduino- ethernet-shield-relay )
En este ejemplo se trata de encender y apagar una bombilla a través de Internet y, para ello, vamos a utilizar el Shield Ethernet Arduino. Serán necesarios unos conocimientos básicos de HTML, simplemente para poder hacer la página Web a nuestro gusto. A través de esta página Web, podremos encender y apagar nuestra bombilla cuando queramos. Desde el ordenador, iPad, tablet, o cualquier dispositivo con conexión WI-FI.
Todos los dispositivos que estén conectados a la misma red a la que esté conectado Arduino tendrán la posibilidad de acceder a la página que implementemos en el nodo Ethernte de Arduino, es decir, quien esté en la red de casa, de la oficina, del edificio, etc.
Se pone una bombilla como podríamos poner otra carga cualquiera e incluso varias.
Lo que vamos a crear con el Ethernet Shield, es un servidor Web, el cual nos proporcionará el código HTML para poder verlo en nuestro navegador y poder, así, interactuar con él.
Veamos brevemente que es un servidor Web.
En Internet, un servidor es un ordenador remoto que provee los datos solicitados por parte de los navegadores de otros ordenadores. En redes locales (LAN, Local Area Network), se entiende como el software que configura un PC como servidor para facilitar el acceso a la red y sus recursos. Los servidores almacenan información en forma de páginas Web y, a través del protocolo HTTP lo entregan a petición de los clientes (navegadores Web) en formato HTML.
A continuación, escribiremos “ipconfig” y, podremos ver en qué subred estamos. Mi puerta de enlace predeterminada es 192.168.0.1, así que, le asignaré al Ethernet Shield la dirección 192.168.0.100/24.
Pero, antes de asignarle esta dirección, hay que comprobar que no hay ningún otro equipo con esa misma IP, por lo que realizaremos un PING a la dirección que queramos asignar. Si no obtenemos respuesta, perfecto.
Host de destino inaccesible, por lo que podremos asignar esa IP.
Por otra parte, el montaje del proyecto es muy sencillo, ya que sólo se necesita un diodo 1N4001, un transistor BD137, una resistencia de 1K Ohm y un relé. El relé que he utilizado es el FINDER 5V DC, 10A, 250V~.
Un relé es un interruptor controlado por un electroimán. La conexión o desconexión entre sus terminales no será realizada por un usuario, sino que un electroimán será el encargado de mover las piezas necesarias para que el interruptor cambie de posición.
Como ya he mencionado antes, con este relay, seremos capaces, por ejemplo, de encender una lámpara, entre otras muchas cosas, como es el caso de este tutorial.