martes, 12 de noviembre de 2013

Arduino 006: Conectar Arduino por wifi mediante WIFLY.

     En esta práctica vamos a conectar nuestro Arduino por wifi mediante el modulo wifly. Para ello los componentes que vamos a utilizar son: la placa Arduino UNO, la placa de comunicación XBee y el módulo wifly. Además necesitaremos una red wifi para poder conectarnos a ella.


   La conexión wifi la podemos realizar de dos formas diferentes: manualmente y programando.


     MANUALMENTE
    La conexión de forma manual la haremos mediante el programa TeraTerm y en tiempo real. Para ello tenemos que cargar un Sketch vació en el micro-controlador lo que nos permitirá que se acceda a la configuración del wifly directamente. Para cargar el programa tendremos que tener los jumpers de la placa de comunicación XBee en la posición USB
     Skecth que debemos cargar:
void setup() { }

 void loop() { }
  Después de cargar el programa, abrimos el programa TeraTerm y seleccionamos el puerto serie que tiene el Arduino. Para entrar en el modo comando y así poder programar el módulo tendremos que introducir $$$ (de forma rápida). A continuación nos saldrá el texto CMD y comenzaremos a configurar el modulo. Aquí os dejamos un vídeo que hemos realizado nosotros con los pasos que hay que seguir para configurar el modulo wifly y establecer la conexión.

   
     CON PROGRAMA
    En este caso realizaremos la configuración del modulo wifly mediante la programación del micro-controlador. Básicamente las instrucciones de configuración del modulo wifly son las mismas tanto en la forma manual como en la de programa, la diferencia es que en esta ocasión en vez de cargar un Skecth vació, tendremos que programar dichas instrucciones.
    Para cargar el programa los jumpers deberán estar en la posición USB como antes y una vez cargado el programa deberemos cambiarlos a la posición XBEE.
     Skecth que debemos cargar:
#include <SoftwareSerial.h>
#include <WiFly.h>
#include <SPI.h>

char recibe[150];
int i = 0;

SoftwareSerial SerialWiFly(7,8);

void setup() {

  Serial.begin(9600);
  SerialWiFly.begin(9600);
  configuraWifi();

}

void loop(){}

void configuraWifi(){

  Serial.print("$$$");
  respuesta();

  Serial.print("set ip dhcp 1\r");
  respuesta();
  
  Serial.print("set ip protocol 2\r");
  respuesta();
  
  Serial.print("set wlan join 0\r");
  respuesta();

  Serial.print("set wlan phrase maiki44frtk\r");
  respuesta();

  Serial.print("join LSB_Elektronika\r"); 
  respuesta();

  Serial.print("save\r");
  respuesta();

}

void respuesta(){
 delay(2000);
  i=0;

  // Recibe la respuesta del Wifly
  while (SerialWiFly.available()!=0) {

    recibe[i]=SerialWiFly.read();
    i++;
  }
  recibe[i]='@';

  //Escribe la respuesta por el puerto Serie
  i=0;
  while(recibe[i] != '@'){
    Serial.print(recibe[i]);
    recibe[i]=' ';
    i++;
  }
  recibe[i]='\0';
  Serial.println(recibe);

  // Vacia el buffer
  SerialWiFly.flush();
  delay(1000);
}
   Esperamos que os haya gustado y os sirva de ayuda en vuestros proyectos.


   Autores: Jon Fernandez, Ion Arbizu y Mikel Jimenez



No hay comentarios:

Publicar un comentario