Introduction: Shield Ethernet Arduino, Controlar Servo Y Led Por Internet
En este proyecto aprenderemos como manejar nuestro Arduino mediante el Shield de Ethernet, usando llamadas básicas de una API. Usaremos Teleduino, esta API nos facilitara el control del Arduino mediante cualquier dispositivo que pueda navegar por Internet, sin necesidad de estar conectados a la misma red (LAN), para poder mandarle comandos para prender o apagar un led, y manejar los valores de un servo, por medio de links.
Step 1: Materiales
- Arduino UNO
- Shield Ethernet
- Servo
- Led
- Jumpers
- Protoboard
Step 2: Obtener Una Llave Única Y MAC
Teleduino y su API nos facilitaran todo el proceso para manejar el Arduino remotamente por Internet, para esto, Teleduino al registrarte te creara una clave única que sera enviada a tu correo, esa clave es importante guardarla ya que sera obligatoria para configurar el código a tu Arduino, y para manejar los links que próximamente controlaran nuestro Arduino.
Registrate en Teleduino, con tu nombre y correo electrónico, luego revisa tu correo, allí estará una "Unique API Key" o llave única ligada a tu correo, guardala. En este correo también habrá un link, que te redireccionará a esta pagina, donde con tu llave única, obtendrás tu llave convertida para programar el código en la IDE de Arduino, guarda esta otra llave.
Para saber la dirección MAC (Media Access Control, identificador único a un dispositivo de red) de tu shield ethernet, busca una serie de números y letras seguidos de un guion "por ejemplo 00-A0-BE-EF-0E-ED" (si tienes el shield ethernet r3, esta estará escrita en un papel pegado en la parte de abajo del shield); esta dirección es única para identificar tu dispositivo en la red. Ahora vamos a traducirla a una dirección mac que pueda ser leída en nuestro código, lo que haremos simplemente es agregar "0x" antes de cada par de letras o números, para que quede así (0x00, 0xA0, 0xBE, 0xEF, 0x0E, 0xED), guarda esta dirección mac también.
Step 3: Descargar Libreria Y Sketch
Dejo los archivos necesarios para trabajar con el código y Teleduino.
- La librería contiene los valores de Teleduino328.h para poder conectarse al servidor.
- El sketch trae el código para subir al Arduino, el cual hay que modificarlo con nuestra llave única, mas adelante explicare como configurarlo.
Este código usa varias librerías mas (EEPROM, Servo, Wire, SPI y Ethernet) hay que tener las librerías actualizadas o la ultima versión del IDE de Arduino para que nada salga mal.
Attachments
Step 4: Añade La Librería Y Modifica El Codigo
Para añadir la librería en la IDE de Arduino, pega la carpeta en la dirección de instalación de la IDE, o importando la librería desde el mismo programa, en la parte de "Sketch - import library". Si tenias abierto la IDE, ciérrala y vuelve a abrirla para que reconozca la nueva librería.
Ahora, abre el código TeleduinoBasic.ino, allí esta todo el código que hay que subir al Arduino, pero antes de subirlo, hay que modificarlo con tu llave única de teleduino traducida al sketch arduino y la dirección mac de tu shield ethernet, previamente conocidos. En la imagen y dentro del código se especifica donde y que hay que modificar.
Step 5: Conectar El Shield, Led Y Servo
- Vamos a conectar el shield a nuestro Arduino, con mucho cuidado, intentaremos encajar el shield perfectamente encima del Arduino, cada pin en su lugar, al principio sin forzarlo para que cada pin entre en el que le corresponde, luego se puede hacer un poco de presión para que todo quede bien encajado.
- Cuando el shield este perfectamente encajado, le conectaremos el cable de ethernet para que ya disponga de conexión a Internet.
- Conectaremos ground y 5v a los bordes de la protoboard, ya que de allí se conectara el led y el servo.
- Con el led, su pata mas larga ira al pin digital 3, y su pata mas corta al ground, en la protoboard.
- El servo tendrá 5v y ground en la protoboard, y su tercer cable ira conectado al pin digital 2.
Step 6: Subir El Código Al Arduino
Con el led y el servo bien conectados, subiremos el código a nuestro Arduino, no se preocupen si al final les aparece una linea naranja, no es que el código este mal, es por que 269 de código y tantas librerías que usa, se gasta un 77% del total de la memoria del Arduino.
Step 7: Los Links Para Manejar Al Arduino
Teleduino lo que hace es crear unos links que mediante nuestra llave unica de API, controlaremos el Arduino, su API es mas extensa, la pueden consultar aquí, pero por el momento solo usaremos 2 series, para controlar el led y el potenciometro.
Cada link empieza de la siguiente forma "https://us01.proxy.teleduino.org/api/1.0/328.php?k={KEY}&r=" así inician todos los links para empezar los comandos, en donde "KEY" es la llave única de API que nos dieron en el correo (por ejemplo http://us01.proxy.teleduino.org/api/1.0/328.php?k={0123456789ABCDEFGHIJKLMNOPQRSTUW}&r=), siempre para cada link hay que modificarlo por nuestra llave única. luego de la llave, se empezara a mandar los comandos al Arduino, en general siempre hay que definir los pines y luego las acciones, ya explicare mejor para definir a un led y a un servo. Los links los podemos abrir desde nuestro mismo pc, o desde el navegador del celular, o comentarle a un amigo que lo intente, de aquí en adelante, se podrá controlar con los links próximamente especificados desde cualquier parte del mundo por Internet nuestro Arduino.
Step 8: Controlar El Led
Este link hay que utilizarlo siempre una vez cada inicio, declarara el pin en el que esta el led (definePinMode&pin=3) en este caso el pin 3, luego, lo pone en OUTPUT (mode=1):
- http://us01.proxy.teleduino.org/api/1.0/328.php?k={KEY}&r=definePinMode&pin=3&mode=1
Ahora le daremos los comandos para prender o apagar el led, en este caso (setDigitalOutput&pin=3) seleccionaremos el pin digital en salida 3 y lo pondremos en HIGH (output=1) para que el led se encienda:
- http://us01.proxy.teleduino.org/api/1.0/328.php?k={KEY}&r=setDigitalOutput&pin=3&output=1
Y paga apagar el led, sera el mismo link anterior pero cambiando (output=1) por 0 para poner el pin en LOW:
- http://us01.proxy.teleduino.org/api/1.0/328.php?k={KEY}&r=setDigitalOutput&pin=3&output=0
Step 9: Controlar Servo
Este link hay que utilizarlo siempre una vez cada inicio, declarara el pin donde esta el servo (pin=2) y el numero del servo, en este caso sera nuestro servo numero 0 (defineServo&servo=0):
- http://us01.proxy.teleduino.org/api/1.0/328.php?k={KEY}&r=defineServo&servo=0&pin=2
Luego, vamos a darle los valores al servo, recordando que son desde 0 hasta 179, llamamos el servo nuestro (setServo&servo=0) y decimos a que posicion lo moveremos (position=15):
- http://us01.proxy.teleduino.org/api/1.0/328.php?k={KEY}&r=setServo&servo=0&position=15
Y para darle otra posicion, solo cambiamos el valor final de (position=15) a otro como 179:
- http://us01.proxy.teleduino.org/api/1.0/328.php?k={KEY}&r=setServo&servo=0&position=179
Step 10: Amplia Las Posibilidades!
Esto es solo un poco de lo que el shield de ethernet puede dar, y de lo que la API de Teleduino también puede dar, investiga las demás variables que nos da esta API para saber mas de como controlar tu Arduino remotamente y experimenta.
Espero que hayas comprendido muy bien este instructable.
:D
Los links originales de los programas y códigos usados: