Páginas

miércoles, 23 de enero de 2013

Módulo Ethernet II Arduino


 

  

 

 

 

Módulo Ethernet II



La otra opción es utilizar un módulo ethernet basado en el chip W5100, estos módulos se presentan más completos, ya que suelen venir para montar sobre el Arduino directamente y con un lector de tarjetas microSD.




Al venir así, la conexión no plantea ninguna duda, hay que tener en cuenta al comprarlo que no todos estos módulos son compatible con todos los modelo de Arduino. Hay que fijarse que sea compatible tanto con Arduinos Uno como Mega. No supondrá un aumento significativo del coste.


Para poder utilizar este módulo necesitamos utilizar 2 librerías:

#include <SPI.h>
#include <Ethernet.h>


Dichas librerías vienen con el compilador de Arduino o sea que este módulo está soportado de forma estandar lo cual es una gran ventaja. Aquí os dejo un ejemplo muy sencillo a través de la web podemos pasarle parámetros al Arduino. En la barra navegación del Navegador podemos poner por ejemplo: http://192.168.5/?Adios

De esta forma el Arduino recibirá el parámetro Adios

 


// Red W5100
#include "SPI.h"
#include "Ethernet.h"

// Le asignamos los datos de Red Mac, IP y Puerto.
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,5);
EthernetServer server(80);

//Constantes
#define MON_BUF_LEN 128

// Variables
EthernetClient ethernet;    
char buffer[MON_BUF_LEN];
char* params;
int bufferSize;

void setup()
{
  Serial.begin(9600);
  // Inicializamos la conexión Ethernet
  Ethernet.begin(mac, ip);
  server.begin(); 
  
}


// Función de Respuesta a peticiones LAN

void RespuestaLan(){

  EthernetClient ethernet = server.available();   
    
 // Tratar comandos botones
 
  params = (params + 5); 
  strstr(params, " HTTP")[0] = 0;
  Serial.print("params: ");
  Serial.println(params); 
  if ( strstr(params, "?" ) ){
//// Los comandos empiezan por ? si no muestra ficheros
      params = params + 1;
      Serial.print("params: ");
      Serial.println(params); 
  }  
  
   ethernet.println("Hola Mundo ");
   ethernet.print("Parametro: ");
   ethernet.println( params); 

}




void loop() {
  
  ethernet = server.available(); 
  buffer[0] = ' ';
  bufferSize = 0;

  while (ethernet.connected()) {
    if (ethernet.available()) {
      char c = ethernet.read();
      if (c == '\n')
        break;
      else
        if (bufferSize < MON_BUF_LEN)
          buffer[bufferSize++] = c;
        else
          break;
    }
  }
  if (buffer[0] != ' ') {
    Serial.println ("Evento Red recibido, parametros: ");
    params = buffer;
    Serial.println (params);
    RespuestaLan();
    ethernet.stop();
  }
} 


Bajar Ejemplo 



Un módulo como este se puede comprar por unos 8€, por ejemplo en eBay: Comprar eBay



2 comentarios:

  1. estimado, ando buscando como conectarme a mi arduino via wifi, la idea es poder controlarlo a traves de una IP pública.

    la verdad es que no se que componentes necesito ni nada..., alguna ayuda???

    Slds

    ResponderEliminar
    Respuestas
    1. Hola, para dotar al Ardunio de WIFI hay varios componentes en el mercado pero su precio no es económico (unos 50€) busca en eBay y podrás encontrar bastantes modelos.

      Un saludo.

      Eliminar