Arduino Con Ethernet Shield

29
UNIVERSIDAD ANDRÉS BELLO FACULTAD DE INGENIERÍA ESCUELA DE INDUSTRIAS INGENIERIA EN AUTOMATIZACIÓN Y ROBÓTICA ARDUINO CON ETHERNET SHIELD Alumnos: Gerardo Jerez V. Aníbal Rubilar F. Profesor: Néstor Palominos. Fecha de entrega: Noviembre de 2013

Transcript of Arduino Con Ethernet Shield

Page 1: Arduino Con Ethernet Shield

UNIVERSIDAD ANDRÉS BELLOFACULTAD DE INGENIERÍAESCUELA DE INDUSTRIAS

INGENIERIA EN AUTOMATIZACIÓN Y ROBÓTICA

ARDUINO CON ETHERNET SHIELD

Alumnos: Gerardo Jerez V.

Aníbal Rubilar F.

Profesor: Néstor Palominos.

Fecha de entrega: Noviembre de 2013

Page 2: Arduino Con Ethernet Shield

Tabla de Contenido

Arduino...................................................................................................................................1

Aplicaciones del Arduino....................................................................................................1

Arduino Uno...........................................................................................................................2

Características del Arduino Uno.........................................................................................3

Ethernet shield.........................................................................................................................3

Router......................................................................................................................................5

Características del Router....................................................................................................5

Actividad.................................................................................................................................6

Conclusión............................................................................................................................16

ANEXOS..............................................................................................................................17

Anexo 1: Especificaciones Técnicas del Router...............................................................17

Anexo 2: Código de “Arduino Telnet Server”..................................................................18

Page 3: Arduino Con Ethernet Shield

Arduino.

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.

El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida.

Los microcontroladores más usados son el Atmega168, Atmega328, Atmega1280, ATmega8 por su

sencillez y bajo coste que permiten el desarrollo de múltiples diseños. Por otro lado el software

consiste en un entorno de desarrollo que implementa el lenguaje de programación

Processing/Wiring y el cargador de arranque (boot loader) que corre en la placa.

Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software

y hardware flexibles muy fáciles de usar, debido a que el IDE con el que trabaja es fácil de aprender

a utilizar, y el lenguaje de programación con el que trabaja es simple.

Aplicaciones del Arduino.

Las aplicaciones que nos ofrece Arduino son múltiples, y dependerá de nuestra imaginación.

Mediante sensores podemos crear aplicaciones sencillas enfocadas a la docencia para estudiantes de

electrónica, proyectos más elaborados para la industria o incluso sistemas dirigidos simplemente al

ocio. Es muy utilizado también en los entornos artísticos para crear obras más elaboradas, dada su

facilidad de programación.

1

Page 4: Arduino Con Ethernet Shield

Figura 1. Arduino.

Arduino Uno.

El Arduino Uno R3 utiliza el microcontrolador ATmega328. En adición a todas las características

de las tarjetas anteriores, el Arduino Uno utiliza el ATmega16U2 para el manejo de USB en lugar

del 8U2 (o del FTDI encontrado en generaciones previas). Esto permite ratios de transferencia más

rápidos y más memoria. No se necesitan drivers para Linux o Mac (el archivo inf para Windows es

necesario y está incluido en el IDE de Arduino).

La tarjeta Arduino Uno R3 incluso añade pins SDA y SCL cercanos al AREF. Es más, hay dos

nuevos pines cerca del pin RESET. Uno es el IOREF, que permite a los shields adaptarse al voltaje

brindado por la tarjeta. El otro pin no se encuentra conectado y está reservado para propósitos

futuros. La tarjeta trabaja con todos los shields existentes y podrá adaptarse con los nuevos shields

utilizando esos pines adicionales.

El Arduino es una plataforma computacional física open-source basada en una simple tarjeta de I/O

y un entorno de desarrollo que implementa el lenguaje Processing/Wiring. El Arduino Uno R3

puede ser utilizado para desarrollar objetos interactivos o puede ser conectado a software de tu

computadora (por ejemplo, Flash, Processing, MaxMSP). El IDE open-source puede ser descargado

gratuitamente (actualmente para Mac OS X, Windows y Linux).

Figura2. Arduino Uno.

2

Page 5: Arduino Con Ethernet Shield

Características del Arduino Uno.

Microcontrolador ATmega328.

Voltaje de entrada 7-12V.

14 pines digitales de I/O (6 salidas PWM).

6 entradas análogas.

32k de memoria Flash.

Reloj de 16MHz de velocidad.

Ethernet shield

Se trata de un módulo que proporciona conexión de Arduino con internet. En la Figura 3 se

muestra el módulo empleado para realizar la comunicación.

Figura 3. Módulo Ethernet.

Este módulo se conecta por un lado a un router a través de un cable RJ45; y por el otro se conecta

con Arduino a través del puerto SPI. Viene ya ensamblado con las dimensiones del Arduino, por lo

que la conexión con él consiste en acoplarlo sobre la placa Arduino usada. Esta extensión provee de

una dirección IP al Arduino y soporta hasta 4 conexiones simultáneas.

3

Page 6: Arduino Con Ethernet Shield

El controlador Ethernet de éste módulo es el W5100 y utiliza la librería Ethernet. A éste módulo le puede ser añadido a su vez un módulo PoE (Power over Ethernet). Se ha utilizado el modelo sin PoE, dado que para las necesidades es suficiente y además más barato.

Figura 5.Esquema comunicación módulo Ethernet.

En el módulo de expansión hay un lector de tarjetas SD integrado que se puede utilizar para

almacenar archivos, para utilizarlo se debe usar la librería SD.

Además éste módulo contiene varios LEDs de información:

ON: Indica que al módulo le llega energía.

LINK: Indica la presencia de una red, parpadea cuando se emiten/reciben datos.

RX: Parpadea al recibir datos.

TX: Parpadea al enviar datos.

100M: Indica que está conectado a 100Mb/s en lugar de a 10Mb/s.

4

Page 7: Arduino Con Ethernet Shield

Router.

El TL-WR740N es un dispositivo de conexión de red de cable / inalámbrico incluye un router para

compartir internet y un switch de 4 puertos. El router inalámbrico N es compatible con 802.11b & g

basado en la tecnología 802.11n, y le da rendimiento de 802.11n hasta 150 Mbps a un precio aún

más asequible. Al límite de 11N y superando la velocidad de 11g permite que las aplicaciones con

alto consumo de ancho de banda como difusión de videos puede ser más fluida. Usted puede

disfrutar de una experiencia de alta calidad en la difusión de un vídeo, VoIP o juegos en línea sin

cables, con los productos tradicionales g nunca fue muy práctico, desde cualquier lugar de su hogar.

¡Un paso a la era inalámbrica 11n con 150 Mbps TP-LINK!.

Características del Router.

Velocidad inalámbrica de hasta 150Mbps.

CCA mejora el rendimiento inalámbrico, mientras que de forma automática para evitar los

conflictos de canal.

Puente WDS inalámbrico ofrece una interconexión de ampliar su red inalámbrica.

Encriptación inalámbrica de seguridad con facilidad en un empuje de QSS botón.

Priorización de servicios garantiza la calidad de las aplicaciones sensibles, tales como voz y

video.

Es compatible con firewall SPI y manejo de control de acceso.

Es compatible con encriptación WPA/WPA2.

Perfectamente compatible con los dispositivos 802.11b/g/n.

Figura 4. Router TP-LINK.

5

Page 8: Arduino Con Ethernet Shield

Actividad

Implementación física del Arduino Uno con Ethernet Shield.

Objetivo

Realizar Experiencias de arduino con Ethernet shield. Utilizando el router TP-LINK mediante una

conexión de red Lan (área local), en donde, se pretende comunicar el arduino con Ethernet shield a

través del router para direccionar la transmisión de datos mediante la dirección IP.

Objetivos Específicos.

Estudiar características de arduino, Ethernet shield y router.

Conocer los diagramas de conexión de los equipos.

Lograr la utilización básica de los equipos anteriormente mencionados.

Realizar diversas pruebas de comunicación con los equipos

Verificar aplicabilidad de arduino con Ethernet shield y el router.

Materiales

2 notebook.

1 router.

1 Placa de Desarrollo Arduino UNO.

Conector USB tipo A/B.

Cable de red tipo RJ-45.

1 Protoboard.

Resistencias de 220 ohm.

Diodos LED.

6

Page 9: Arduino Con Ethernet Shield

Procedimiento

Se conectaran dos notebooks y dos placas Arduino Uno con Ethernet Shield, a las salidas que tiene el router a utilizar en la experiencia. Resetear el router para que tome los datos de fábrica y poder determinar nuevas direcciones de ip para su posterior utilización.

La topología que se utilizara para la conexión de red Lan es de tipo Estrella.

Figura 5. Conexión Topología Tipo Estrella.

La dirección IP que viene configurada por defecto de fábrica que tiene el router es el dominio

192.168.1.1, después se asignaran diferentes host a los Notebook y el Arduino Uno para poder

comunicarse con el router, estas direcciones tienen la misma mascara de subred 255.255.255.0 y

Gateway.

Para habilitar el módulo Arduino con Ethernet Shield,se procede a montar el módulo Ethernet a la

placa de Arduino. Básicamente, el módulo Ethernet le da al Arduino la capacidad de contar con una

dirección IP, una máscara de subred y una puerta de enlace o Gateway, lo cual sirve para que,

eventualmente, el Arduino pueda ser activado y controlado dentro de una arquitectura LAN.

Este módulo naturalmente cuenta con su entrada de red para poder enviar y recibir datos, en este

caso en particular recibirá un bit (1) en una salida digital, por donde se activará un diodo LED como

muestra la figura 6.

7

Page 10: Arduino Con Ethernet Shield

Figura 5. Módulo Arduino con Ethernet Shield.

En este procedimiento se conecta físicamente el PC con el Router y se conecta físicamente el

Arduino con Ethernet Shield con el Router, mediante un cable de red cat.5e con conector tipo RJ45,

como aparece en la figura 6.

Figura 6. Conexión física de enlace con el Router.

8

Page 11: Arduino Con Ethernet Shield

Luego se darán direcciones a los equipos a controlar cada uno con un host diferente, para poder

conectarnos a nuestra red Lan.

Figura 7. Tabla de direcciones IP.

Paso 1: Asignación de dirección al Notebook.

Para configurar una dirección IP al notebook, se debe ir al ícono donde se seleccionan las

conexiones cableadas e inalámbricas; y pinchar donde dice “Abrir centro de redes y recursos

compartidos”.

9

Page 12: Arduino Con Ethernet Shield

Figura 8. Configuración de conexión para una red local.

Después nos dirigimos a las propiedades en donde pinchamos y accedemos a la ventana de

propiedades de la red, seleccionamos en protocolo de comunicación TCP/IPV4 y pinchamos en

propiedades como muestra la figura 9.

Figura 9. Configuración para el protocolo de comunicación.

Posteriormente nos saldrá una ventana como muestra la figura 10, en donde, se debe habilitar la

opción “Usar la siguiente dirección IP”, ingresar los datos que se utilizarán, para poder conectarnos

a la red lan, de acuerdo a lo discutido anteriormente. Luego se presiona Aceptar y los datos quedan

configurados en el quipo.

10

Page 13: Arduino Con Ethernet Shield

Figura 10. Configuración para el protocolo de comunicación.

Como resultado a este procedimiento, estaremos conectado a la red de comunicación Lan de

topología tipo Estrella. Luego se realizaran pruebas de comunicación para ver si los equipos se

conectaron adecuadamente y así asegurar la transmisión de datos.

IMPORTANTE: Para este caso se debe apagar el Wi-fi, si se pretende que las direcciones estáticas

(es decir, las configuradas previamente) sean válidas.

11

Page 14: Arduino Con Ethernet Shield

Paso 2: asignar dirección IP y cargar datos al Arduino.

Para asignarle la dirección ip al módulo Ethernet del Arduino, se realiza un sketck de Arduino

como aparece en figura 11.

Figura 11. Asignación de ip al módulo Arduino Ethernet.

Finalmente el sketch se compila y carga al Arduino, a través de la conexión PC-Arduino que

consiste en el cable USB tipo A/B, la parte B va conectada hacia la Arduino.

12

Page 15: Arduino Con Ethernet Shield

Paso 3: Verificación de conexión de la Red Lan.

Para verificar las conexiones se ejecutara la aplicación cmd, ingresaremos en la aplicación el

comando

“ping 162.168.1.1”, este comando envía 4 paquetes de datos a las direcciones a ingresar. Si los

datos llegan a destino , significa que la conexión esta establecida.

Figura 12. Pruebas de comunicación con la aplicación cmd.

Realizando estas pruebas nos aseguramos que la conexión física de los equipos no este fallando. Si

se logra enviar un ping al arduino del notebook, significa que todo está listo para transmitir datos.

Luego para asegurar la transmisión de datos, se debe realizar una exploración al router, desde

cualquier navegador de internet. En la barra URL se debe ingresar o poner la dirección del router en

este cas 192.168.1.1 ,el cual, dará paso a las configuraciones del router.

El router solicitará un nombre de usuario y una contraseña, estos son datos con los que se debe

contar. En este caso (y por defecto) el router viene configurado con los siguientes datos:

User: admin

13

Page 16: Arduino Con Ethernet Shield

Pass: admin

Al querer ingresar al router desde el navegador, estos datos serán solicitados automáticamente a

través de un cuadro de texto, solo hay que ingresarlos.

Si todo está correcto, se debe poder visualizar el menú de configuración del router, esto indica que

se tiene acceso al router desde el PC, mediante el cable RJ-45.

Paso 4: Telnet/ Habilitar servidor en Arduino.

El protocolo Telnet es un sistema de transmisión de datos que se ejecuta desde la consola cmd. Es

un protocolo orientado a la transmisión de datos (tipo TCP), y es uno de los protocolos más

antiguos y utilizados. Su principal ventaja es que es ejecutable directamente desde la consola y no

involucra mayor complejidad en cuanto a software. Su desventaja es que la transmisión de datos no

está encriptada, por tanto es susceptible a ser espiada y vulnerada mediante un sniffer u otro medio

para hackear una red.

Es importante recordar que si el notebook tiene Windows 7 de sistema operativo, se debe habilitar

dese el Panel de Control la opción de utilizar telnet dese Windows 7.

Se debe habilitar el Arduino como servidor telnet. Para ello se debe cargar otro sketch en el

Arduino, este está en el siguiente enlace:

http://forum.arduino.cc/index.php/topic,8533.0.html

Una vez cargado correctamente en el Arduino, se procede a la comunicación Entre el PC y el

Arduino.

14

Page 17: Arduino Con Ethernet Shield

Paso 7 : Comunicación Telnet PC-Arduino.

Finalmente, desde la consola cmd se debe acceder al Arduino. Los comandos son los siguientes:

Telnet 162.198.1.3: No se especifica el número de puerto, ya que el puerto n°23 viene configurado

por defecto en el sketch que fue cargado al servidor-Arduino.

Luego si todo fue cargado correctamente, se ingresa al menú, y desde allí se ejecuta el comando

“dw9= hi”, lo cual significa que se escribirá en la salida digital número 9 del Arduino, la señal

HIGH; es decir, se le enviarán 5v a la salida n°9.

En la Arduino se tendrá un led conectado a la salida digital n°9, armado en el protoboard junto con

una resistencia limitadora de 220 ohm. En las siguientes imágenes puede verse el montaje final y su

topología.

Figura 13. Experiencia de prender un led con comunicación telnet..

15

Page 18: Arduino Con Ethernet Shield

Conclusión

Al realizar las experiencias planteadas en este informe, nos percatamos de que la única limitante

para el Arduino es la imaginación. La factibilidad de habilitar al arduino desde una conexión de

área local a un puerto abierto de entrada/salida, la capacidad de evaluación de transmitir datos para

luego decidir una acción y poder controlar los dispositivos externos, hacen que el Arduino sea el

cerebro de los equipos.

Estas experiencias nos hace ver que esta herramienta de trabajo es totalmente potente para

desarrollar proyectos a futuro en cualquier ámbito laborar o personal.

Algunas áreas en donde se puede utilizar su aplicaciones y utilizar su máximo funcionamiento es en

la electrónica industrial (automatizaciones), comunicaciones e interfaces con otros equipos

(conexión área local, USB), interfaces con otros microcontroladores, equipos de mediciones y de

diagnóstico, equipos para la adquisición de datos, servo mecanismos e interfaces con otros

dispositivos de lógica TTL; como por ejemplo, teclados, pantallas LCD, sensores, memorias,

potenciómetros digitales, entre otros.

16

Page 19: Arduino Con Ethernet Shield

ANEXOS

Anexo 1: Especificaciones Técnicas del Router.

CARACTERÍSTICAS DEL HARDWARE

Interface4 puertos LAN de 10/100Mbps

1 puerto WAN 10/100Mbps

BotónBotón de configuración rápida de seguridad

Botón de reinicio

Suministro de Energía Externa 9VDC / 0.6A

Estándares Inalámbricos IEEE 802.11n*, IEEE 802.11g, IEEE 802.11b

Antena omnidireccional fijo de 5dBi

Dimensiones (Largo x Ancho x Alto)

6.9 x 4.6 x 1.3 in. (174 x 118 x 33 mm)

CARACTERÍSTICAS INALÁMBRICAS

Frecuencia 2.4-2.4835GHz

Velocidad de Señal11n: Hasta 150Mbps (dinámico)11g: hasta 54Mbps (dinámico)11b: hasta 11Mbps (dinámico)

EIRP <20dBm(EIRP)

Sensibilidad de Recepción

130M: -68dBm@10% PER108M: -68dBm@10% PER54M: -68dBm@10% PER11M: -85dBm@8% PER6M: -88dBm@10% PER1M: -90dBm@8% PER

Funciones Inalámbricas Activar / Desactivar radio inalámbrica, WDS Bridge, WMM,

estadísticas inalámbricas

Seguridad Inalámbrica 64/128/152-bit WEP / WPA / WPA2,WPA-PSK / WPA2-PSK

17

Page 20: Arduino Con Ethernet Shield

CARACTERÍSTICAS INALÁMBRICAS

Anexo 2: Código de “Arduino Telnet Server”.

void setPinMode()  // if we got here, textBuff[0] = 'p'{  int pin = -1;  int pinModeSetting = -1;  if (textBuff[1] == 'm' && textBuff[3] == '=' && textBuff[6] == 0x0d) {        //if yes, get the pin number, setting, and set the pin        pin = parseDigit(textBuff[2]);        pinModeSetting = parseModeSetting();        if(pin > -1 && pinModeSetting == 0) {          pinMode(pin, OUTPUT);          client.println("OK");        }        if(pin > -1 && pinModeSetting == 1) {          pinMode(pin, INPUT);          client.println("OK");        }        if(pin < 0 || pinModeSetting < 0) printErrorMessage();      }   else printErrorMessage();}

int parseModeSetting()//look in the text buffer to find the pin setting//return -1 if not valid{  int pinSetting = -1;  if(textBuff[4] == 'o' && textBuff[5] == 'u') pinSetting = 0;  if(textBuff[4] == 'i' && textBuff[5] == 'n') pinSetting = 1;  return pinSetting;}

int parseDigit(char c){  int digit = -1;  digit = (int) c - 0x30; // subtracting 0x30 from ASCII code gives value  if(digit < 0 || digit > 9) digit = -1;  return digit;}

void printErrorMessage(){  client.println("Unrecognized command.  ? for help.");}

void checkCloseConnection()

18

Page 21: Arduino Con Ethernet Shield

  // if we got here, textBuff[0] = 'c', check the next two  // characters to make sure the command is valid{  if (textBuff[1] == 'l' && textBuff[2] == 0x0d)    closeConnection();  else    printErrorMessage();}

void closeConnection(){  client.println("\nBye.\n");  client.stop();  connectFlag = 0;}

void printHelpMessage(){  client.println("\nExamples of supported commands:\n");  client.println("  dr       -digital read:   returns state of digital pins 0 to 9");  client.println("  dr4      -digital read:   returns state of pin 4 only");  client.println("  ar       -analog read:    returns all analog inputs");  client.println("  dw0=hi   -digital write:  turn pin 0 on  valid pins are 0 to 9");  client.println("  dw0=lo   -digital write:  turn pin 0 off valid pins are 0 to 9");  client.println("  aw3=222  -analog write:   set digital pin 3 to PWM value 222");  client.println("                              allowed pins are 3,5,6,9");  client.println("                              allowed PWM range 0 to 255");  client.println("  pm0=in   -pin mode:       set pin 0 to INPUT  valid pins are 0 to 9");  client.println("  pm0=ou   -pin mode:       set pin 0 to OUTPUT valid pins are 0 to 9");  client.println("  cl       -close connection");  client.println("  ?        -print this help message");}

19