Post on 24-Oct-2015
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
// 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