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:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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 | |
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(;;) | |
; | |
} | |
} |
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
6 pts lab integrados
ResponderEliminarBuenos dias, ante todo me gustaria expresar mi agradecimiento por compartir todos estos conocimientos.
ResponderEliminarEstoy 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!!!