En línea

Tenemos 9 invitados conectado

Redes Sociales

feedfacebookyoutube

picasa

You are here: Home Tutoriales Arduino Arduino 03 - Ethernet Shield
Arduino 03 - Ethernet Shield PDF Imprimir E-mail
Lunes, 06 de Septiembre de 2010 09:25

 

arduino_ethernet

La manipulación de datos de forma remota de un sistema ahora es posible gracias a las redes, en la red se pueden enviar y recibir datos entre los diversos elementos que la componen, es aquí cuando surgen términos como cliente, servidor, dirección IP, Ethernet. En el este Tutorial 3 se trabaja con la placa Arduino Ethernet Shield que nos permite comunciar a nuestro Arduino a la red de redes, la Internet. Veremos un ejemplo de como buscar en el servidor de Google utlizando nuestro Arduino Ethernet Shield y otra aplicación nos permitirá monitorear desde un navegador web los valores de un Sensor Ultrasónico y un pulsador. Puedes adquirir los componentes necesarios para este Tutorial en Tienda de Robótica.

 

 

 

 

Adquiera los componentes para este proyecto en:

tdr negro

 

Veamos de que trata este artículo:

t3_tabla

 

Esta es la disposición sugerida para montar la red de nuestro Arduino Ethernet Shield

T3_Disposicin_red

 

Veamos el vídeo de la práctica

 

Este es el montaje utilizado en el video. Se pretende manejar una señal digital y una señal análoga

T3_montaje

Las prácticas que se plantean son:

Cliente Web: Este ejemplo muestra cómo hacer una petición HTTP utilizando el  Ethernet Shield. Devuelve una búsqueda en Google con el término "Arduino". Los resultados de esta búsqueda se pueden ver como HTML a través de la caonsola serie de Arduino.

Cliente Web
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
 
/* 
 ------------------------------------------ 
  Cliente Web
 ------------------------------------------
 
  Hacer una petición al servidor de Google para buscar
   el término "Arduino", los resultados se pueden ver
   en la consola serial en HTML
  
  
  Cosas de Mecatrónica y Tienda de Robótica
  
*/
 
 
#include <Ethernet.h>  // Incluye la librería Ethernet
 
 
// Identificador Ethernet unico
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
 
// Dirección IP asignanda al Arduino Ethernet Shield
byte ip[] = { 192, 168, 0, 4 };
 
// Dirección del servidor al que se va a conectar
byte server[] = { 173, 194, 33, 104 }; // Google
 
 
// Es el puerto HTML para conexión a Internet
Client client(server, 80);
 
 
//------------------------------------
//Funcion principal
//------------------------------------
void setup()
{
  //Incializa libreria y configuraciones de red
  Ethernet.begin(mac, ip);
 
  //Incia comunicación a trevés del puerto
  Serial.begin(9600);
 
  // Reatrdo 1s
  delay(1000);
 
  // Imprime el mensaje
  Serial.println("conectando...");
 
 
  // Verifica la condición de la función
  if (client.connect()) 
  {
 
    // Imprime el mensaje
    Serial.println("conectado");
 
    // Termino a buscar "Arduino"
    client.println("GET /search?q=arduino HTTP/1.0");
 
    // Fin de linea
    client.println();
 
  } 
  else 
  {
 
    // Imprime mensaje
    Serial.println("La conexión fallo");
 
  }
}
 
 
//------------------------------------
//Funcion ciclicla
//------------------------------------ 
void loop()
{
  // Condición que evalua al cliente disponible
  if (client.available()) 
  {
    char c = client.read();
    Serial.print(c);
  }
 
  // Condición para verificar si el cliente esta coenctado
  if (!client.connected()) 
  {
    Serial.println();
    Serial.println("desconectado.");
    client.stop();
    for(;;)
      ;
  }
}

 

Servidor Web: El dispositivo será capaz de responder a una petición HTTP con su Ethernet Shield. Después de abrir un navegador web e ingresar la dirección IP asiganada al Arduino Ethernet Shield, su Arduino responderá mostrando los valores del estado de su entrada análoga (A0) y su entrada digital (Pin 2).

Servidor Web
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
 
/* 
 ------------------------------------------ 
  Servidor Web
 ------------------------------------------
 
  Muestra el valor de una entrada digital y una entrada análoga
   a través de una página web
 
   Entrada digital -> Pulsador NO
   Entrada análoga -> Sensor Ultrásonico LV-MaxSonar-EZ1
  
  
  Cosas de Mecatrónica y Tienda de Robótica
  
*/
 
 
 
#include <Ethernet.h>   // Incluye la librería Ethernet
 
 
// Identificador Ethernet unico
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
 
// Dirección IP asignanda al Arduino Ethernet Shield
byte ip[] = { 192, 168, 0, 4 };
 
// Es el puerto HTML para conexión a Internet
Server server(80);
 
 
//------------------------------------
//Funcion principal
//------------------------------------
void setup()
{
 
   //Incializa libreria y configuraciones de red
  Ethernet.begin(mac, ip);  
 
  //Incia comunicación a trevés del puerto
  server.begin();
}
 
 
//------------------------------------
//Funcion ciclicla
//------------------------------------ 
void loop()
{
 
  Client client = server.available();
 
  if (client) {
 
   //Una petición http termina con una línea en blanco
    boolean current_line_is_blank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
 
        // Si hemos llegado al final de la línea (recibió una nueva línea
        // Carácter) y la línea está en blanco, 
        // la petición http ha terminado,
        // Para que podamos enviarle una respuesta
        if (c == '\n' && current_line_is_blank) 
        {
 
          // Envió de un encabezado estándar de respuesta HTTP 
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
 
            //Imprimir valor entrada digital
	    client.print("Entrada digital ");
            client.print("2");
            client.print(" es ");
            client.print(digitalRead(2)); // Lectura del pin 2 (digital)
            client.println("<br />");
            client.println("<br />");
 
            //Imprimir valor entrada análoga
            client.print("Entrada analoga");
            client.print("0");
            client.print(" es ");
            client.print(analogRead(0));  // Lectura del pin 0 (analogo)
            client.println("<br />");
            client.println("<br />");
 
          break;
        }
 
        if (c == '\n') 
        {
          // Comenzaremos una nueva línea
          current_line_is_blank = true;
        } 
        else if (c != '\r') 
        {
          // Obtenemos un caracter en la línea actual
          current_line_is_blank = false;
        }
      }
    }
    // Damos un tiempo al servidor web para recibir los datos
    delay(1); //Retardo de un 1 ms(milisegundo)
 
    client.stop();
  }
}

 

tdr negro

Laughing


 

Comentarios
Buscar
¡Sólo los usuarios registrados pueden escribir comentarios!
RODOLFO ROMERO |2011-06-15 13:17:08
muy buen tutorial los felicito,estoy tratando de conectar el Arduino + Ethernet Shield a pachube para monitorear un LM35 pero no he podido, me genera un error de conexion, me podrian dar una mano con el codigo.
Richard  - Felicitaciones y sugerencia |2010-10-18 11:23:17
Hola Juan,

Primeramente para felicitarte por tus aportaciones en temas como este que siempre son muy relevantes. Apenas me estoy iniciando en el proyecto ARDUINO pero tengo la necesidad de realizar un proyecto en el que debo enviar un mail por medio del sistema Arduino + Ethernet Shield; la condicion es que ese mail debe enviar un informe relacionado con ciertos registros bajo dos condiciones:
a) Cuando yo se lo mande pedir por medio de la WEB.
b) Cada cierto tiempo este mandando el registro de manera automatica.


Te agradeceria infinitamente tu colaboracion.

Saludos a todos
Equipo Cosas de Mecatronica  - Re: e-Mail por arduino |2010-10-21 14:43:54
Hola Richard

Muchas gracias por tu comentario. Respecto a tu idea de trabajo, enviar datos por email a través del Arduino podría existir la dificultad ya que las direcciones de correo son https// lo que quiere decir que son direcciones seguras y los más probable es que los datos de tu correo no sean accesibles a través del Arduio. Otra posiblidad que tienes es utlizar Pachube que es una herramienta para trabajar con registros relacionados con sensores, la idea de esta comunidad es poder visualizar ciertos datos en tiempo real en la web a través del Arduino + Ethernet Shield. Puedes conocer en más acerca de Pachube en http://www.pachube.com/

En Cosas de Mecatrónica estamos para ayudarte, cualquier duda adelante

Adios
Gerardo Rodriguez  - LED |2010-09-28 15:31:03
Hola Juan, muy buenos los tutoriales, oye de casualidad no esta en tus planes realizar algun tutorial para poder encender un LED desde internet con el Arduino Ethernet. Saludos y Muchas gracias!
Equipo Cosas de Mecatrónica  - RE: Led Arduino Ethernet Shield |2010-09-30 14:52:11
Hola Gerardo

Muchas gracias por el comentario. Aùn no hemos desarrollado dicho tutorial pero si quieres puedes revisar el siguiente enlace donde, existe una aplicaciòn en html para utilizar los puertos del Arduino Ethernet Shield y con esto podrias encender el Led. http://community.pachube.com/node/112#controller

Cualquier duda que tengas en Cosas de Mecatrónica estamos para ayudarte

Adios
Andrés Botero H.  - Arduino |2010-09-09 20:33:37
Saludo !!!
Juan Camilo muchas gracias por estos tutoriales, quería saber si vas a realizar mas tutoriales con arduino.
No se si tengas experiencia usando relevos para manejar voltajes de alterna (110-120V ac) si la tienes me gustaría que me ayudaras con un proyecto que tengo ya que no he podido hacer lo que tengo en mente.

Gracias !!!

Andrés Botero H.
Equipo Cosas de Mecatrónica  - Re: Arduino - Relevo |2010-09-10 19:56:09
Hola Andrés

Gracias por el comentario. De Arduino tenemos planteados muchos tutoriales y cada semana estaremos realizando una entrega. Respecto a tu pregunta una salida digital del Arduino la puedes conectar para manejar un relevo, la bobina del relevo podría ser de 5VDC y luego a través de sus contactos puedes manejar voltajes alternos 110V AC. Para conectar tu Arduino al relevo debes realizar una etapa para acondicionar la señal y poder proteger a tu Arduino de cortos y sobrecargas, para ello revisa la siguiente imagen que muestra como debes conectar el relevo. Si tienes alguna duda en Cosas de Mecatrónica estamos para ayudarte.
http://img175.imageshack.us/img175/7300/releyx1.png
Adiós

!joomlacomment 4.0 Copyright (C) 2009 Compojoom.com . All rights reserved."

Última actualización el Martes, 28 de Diciembre de 2010 17:55
 
Joomla! Template by Red Evolution - Joomla Web Design