jueves, 24 de mayo de 2012

Arduino Ethernet Client

Intro.
En entradas anteriores se ha hablado sobre el arduino ethernet, pero este poniendolo en forma de servidor, en esta ocasión, interactuaremos con el arduino ethernet en forma de cliente.

¿Diferencia?
La diferencia si ponemos nuestro arduino en forma de cliente o servidor, en Servidor, como se vió en entradas anteriores, nos derá la oportunidad de hacerlo un servidor web y un cliente, lo que hará, será leer paramatros o pedir de determinada url.



Material:
El material a emplear es el mismo que se ha usado en entrada anteriores:
  • Arduino Uno
  • Arduino Ethernet shield
  • Cable USB

Desarrollo:
Para el desarrollo de este ejemplo no usaremos materiales extras, ya que lo buscado, será hacer una consulta a una url y ver los resultados que nos arroja.

Código:
#include <Server.h>
#include <Client.h>
#include <Ethernet.h>
#include <Udp.h>
#include <SPI.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 177 }; //Ip de nuestro arduino
byte server[] = { 173,194,37,55 }; // Direccion a hacer nuestro get
//google
Client client(server, 80);//Creamos el cliente y hacemos
//la conexion con el servidor por medio del puerto 80
void setup()
{
Ethernet.begin(mac, ip); //inicializamos la coneccion
Serial.begin(9600); //Establece el puerto serial
delay(1000); //tomamos un delay de un minuto
Serial.println("connecting...");
if (client.connect()) { //Si establecemos la comunicacion
Serial.println("connected");imprimimos un mensaje
client.println("GET /search?q=arduino HTTP/1.0"); //Mdnamos un Get
//con la conexion de cliente y le agregamos a la url un search
client.println();
} else {
Serial.println("connection failed"); //De lo contrario imprimos
//un mensaje
}
}
void loop()
{
if (client.available()) {//Mientras la conexion este establecida
char c = client.read();//Guardamos los parametros en la variable char
Serial.print(c); //Imprimos lo obtenido
}
if (!client.connected()) { //Si la conexion no es exitosa
Serial.println();
Serial.println("disconnecting.");
client.stop();//Quitamos la conexion que tenemos
for(;;)
;
}
}
view raw gistfile1.c hosted with ❤ by GitHub


Resultados:

Los resultados podemos ver que hizo una consulta a google, donde buscamos arduino y nos regresa un lo arrojado por google.

Bibliografía:
http://luisfuentesr.blogspot.mx/2012/02/arduino-ethernet-shield.html

2 comentarios:

  1. Buenos dias, ante todo me gustaria expresar mi agradecimiento por compartir todos estos conocimientos.

    Estoy buscando como loco codigo para Android que pueda mandar un paquete UDP con un dato que me sirva posteriormente para actuar sobre un "if" en un arduino y mandar activar/desactivar una salida. Por ahora no encontre nada de codigo abierto en Android que me diga como hacerlo. ¿Podeis ayudarme? mi correo es amesaotero@gmail.com

    Muchas gracias!!!

    ResponderEliminar