Como conectar Arduino a una red WIFI con el módulo ESP8266

En nuestra entrada de hoy, conoceremos la tecnología WIFI y haremos una practica en la que conectamos Arduino a una de estas redes, configuraremos el sistema y enviaremos datos desde nuestro navegador web a Arduino.
Para hacer esto, hemos elegido el módulo ESP8266, ya que es una de las mejores y más económicas opciones que nos ofrece el mercado.
En primer lugar, decir que este módulo es muy sencillo de usar y esta diseñado desde el principio para la corriente tecnológica del Internet de las cosas. Este módulo incluye todo lo necesario para conectarse a un punto WIFI enviando comandos AT (Comandos de texto) mediante un puerto serie.

Algo sobre la tecnología WIFI.

WI-FI, es una marca comercial de la WIFI-Alliance, esta es la organización encargada de certificar que los equipos cumplan los standares para usar esta tecnología.
WIFI, es un metodo de conexión de los dispositivos electrónicos de forma inalambrica, con un alcance de 20m en interiores y algo superior en exteriores.

Conexion del módulo:

-En la siguiente imagen se puede ver una descripción de los pines del módulo.
El pin GND del módulo lo conectamos a GND de Arduino, VCC y RST, lo conectamos al pin de 3,3V de Arduino. TX lo conectamos al pin 2 de Arduino y RX al pin 3.

Decir que si usamos como fuente de alimentación la que incorpora Arduino de 3,3V tendremos problemas en el arranque, ya que está fuente nos proporciona una corriente máxima de salida de 50mA y el módulo en su arranque necesita algo más. Aun así para la primera toma de contacto y hacer algunas pruebas se puede usar los 3,3V de Arduino. Si se dispone de una fuente externa a Arduino es aconsejable usarla.

Práctica. (Primer programa y comandos AT)

Código

En primer lugar carga el siguiente código en tu Arduino

#include <SoftwareSerial.h>
SoftwareSerial BT1(3, 2); // RX | TX

void setup()
  {  Serial.begin(9600);
     BT1.begin(9600);
  }

void loop()
  {  String B= "." ;
     if (BT1.available())
         { char c = BT1.read() ;
           Serial.print(c);
         }
     if (Serial.available())
         {  char c = Serial.read();
            BT1.print(c);
         }
   }


A continuación abrimos el monitor serial de nuestro arduino y nos aseguramos que esta bien comfigurado. (Configurar como la imagen)

Si en el monitor serial no aparece nada, desconecta y vuelve a conectar la alimentación, es posible que el modulo wifi no haya arrancado por el motivo que antes comentábamos.

Como se aprecia en la imagen superior, tiene que aparecer el mensaje “ready” cuando el módulo haya arrancado. Los símbolos que parecen en las primeras lineas son normales, no hace falta prestarles mucha atención.


Empezamos con los comandos AT.
El primer comando que usaremos será, AT. Escribimos AT y pulsamos intro.

El módulo os responderá con un OK si recibió correctamente los comandos.
El ESP8266 tiene tres modos de funcionamiento, 1,2y3. La mejor opción según nuestra experiencia es la 3.
Para cambiarlo usad el comando AT+CWMODE=(número de modo).
Para saber el modo actual usad el comando; AT+CWMODE?, después si no tenéis el modo 3 seleccionado, lo seleccionáis.

El siguiente comando os ayudará a saber que puntos WIFI tenéis a vuestros alrededores.
Este comando es: AT+CWLAP

Aparecen 2, LIBERATEL.ES es la nuestra.
El siguiente paso es conectarse al uno de los puntos WIFI que os apareció antes. Para esto hay que usar el siguientes comando:
AT+CWLAP= “nombre del punto”, “contraseña”
Al poco tiempo, si todo esta bien, el modulo os responderá con un OK y esto nos indica que esta conectado correctamente.

Para saber que IP os ha asignado el módulo automáticamente, tecleamos el comando: AT+CIFSR.
A mi en concreto me ha asignado la dirección 192.168.2.100

Ahora se puede empezar con a manejar cosas más interesantes de este módulo, como por ejemplo montar un pequeño servidor web.
Para activar conecciones simultaneas teclea: AT+CIPMUX=1
y para arrancar un servicio web con el número de servicio 1 y el puerto 80 teclea: AT+CIPSERVER=1,80.

Una vez configurado el módulo para hacer funcionar Arduino como servidor WEB, podéis enviar datos desde el navegador a Arduino de una forma muy sencilla.
Por ejemplo; escribiendo en el navegador esto...

en el monitor serial aparecerá esto...