Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Arduino + Ethernet Shield, Apuntes de Electrotecnia

Programación de arduino + Ethernet Shield

Tipo: Apuntes

2019/2020

Subido el 24/05/2020

sergio-martinez-alvarez
sergio-martinez-alvarez 🇲🇽

2 documentos

1 / 42

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Arduino + Ethernet Shield José Manuel Ruiz Gutiérrez
1
Arduino + Ethernet Shield
Implantación de Arduino en las redes Ethernet:
“Arduino y el Internet de las Cosas”
+
Ver. 1.0
2
Serie: Arduino Comunicación
José Manuel Ruiz Gutiérrez
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a

Vista previa parcial del texto

¡Descarga Arduino + Ethernet Shield y más Apuntes en PDF de Electrotecnia solo en Docsity!

1

Arduino + Ethernet Shield

Implantación de Arduino en las redes Ethernet: “Arduino y el Internet de las Cosas”

Ver. 1.

Serie: Arduino Comunicación

José Manuel Ruiz Gutiérrez

Índice

  1. Objetivo de este trabajo
  2. Presentación de Arduino Ethernet Shield
  3. Conectando el Shield
  4. Conectar con una página Web sabiendo su IP
  5. Probando la aplicación Ethernet Shield con el

Hyperterminal de Windows

  1. Arduino como servidor en una red Ethernet: Lectura de 6

canales analógicos de la tarjeta Arduino UNO.

  1. Gobierno de un Relé con el Shield Arduino Ethernet.
  2. Leer una señal digital y una analógica.
  3. ANEXO I: Librería Ethernet

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]

  1. Presentación de Arduino Ethernet Shield

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:

  • PWR : indica que Arduino y el shield están alimentados
  • LINK : indica la conexión a una red y parpadea cuando el shield transmite o recibe datos
  • FULLD : indica que la conexión de red es full duplex
  • 100M : indica la presencia de una conexión de red 100 Mb / s (en lugar de 10 Mb / s)
  • RX : parpadea cuando el shield recibe datos
  • TX : parpadea cuando el shield envía datos
  • COLL : parpadea cuando se detectan colisiones de red

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.

  1. Conectar con una página Web sabiendo su IP

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:

  • Ethernet shield ocupa los pins 10, 11, 12, 13 created 18 Dec 2009 modified 9 Apr 2012 by David A. Mellis traducido J.M. Ruiz Nov. 2012 */

#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(;;) ; }

}

  1. Probando la aplicación Ethernet Shield con el

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:

  • Ethernet shield conectado a los pines 10, 11, 12, 13 creado 14 Sep 2010 modificado Apr 2012 por Tom Igoe traducido por J.M. Ruiz diciembre 2012

*/

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

  1. Arduino como servidor en una red Ethernet: Lectura de 6

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:

  • Ethernet shield conectado a los pines 10, 11, 12, 13
  • Entradas analogicas en los pines A0 a A

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.

  1. Gobierno de un Relé con el Shield Arduino Ethernet

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