Robotics | Arcade | Electronics

Cart

Your Cart is Empty

Back To Shop

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

Wifi con Arduino

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 inalámbrica, con un alcance de 20m en interiores y algo superior en exteriores.

Materiales usados

Arduino uno leantecArduino UNO R3
ESP8266 leantecMódulo ESP8266
Cables protoboard leantecCables

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.

Conexión Modulo ESP8266

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 configurado. (Configurar como la imagen).

configuración monitor serial leantec

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.

tutorial esp8266 leantec ready

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.

tutorial esp8266 ok leantec

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.

post esp8266 leantec
tutorial esp8266 wifi leantec

El siguiente comando os ayudará a saber que puntos WIFI tenéis a vuestros alrededores.

Este comando es: AT+CWLAP

post blog esp8266 leantec

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.

tutorial esp8266 arduino leantec

Para saber que IP os ha asignado el módulo automáticamente, tecleamos el comando: AT+CIFSR.

A nosotros en concreto nos ha asignado la dirección 192.168.2.100

post leantec esp8266 arduino

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.

esp8266 tutorial leantec arduino

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…

esp8266 funcionamiento leantec

en el monitor serial aparecerá esto…

esp8266 funcionamiento leantec

Conclusiones y resultados

En esta entrada del blog de Leantec; hemos aprendido a usar el módulo ESP8266. Conectándolo a nuestra red WIFI, hemos enviado datos desde nuestro navegador web a Arduino.

También aprendimos un poco sobre el protocolo WIFI.

En próximos post profundizaremos más en este módulo y sus posibilidades.


Esperamos que les sea de utilidad y no olviden que en nuestro blog encontrará muchos otros post de su interes.


13 thoughts on “Como conectar Arduino a una red WIFi con el módulo ESP8266

  1. Buenas, he probado ha hacer lo que dices pero no me aparece nada en el monitor serial aunque conecte y desconecte la alimentación. Sabes por qué puede ser?

  2. queria avisarle que esta mal el comando AT+CWLAP= “nombre del punto”, “contraseña”
    que escribió, el que me funciono fué:
    AT+CWJAP= “nombre del punto”, “contraseña”
    para que lo edite 🙂
    Buena guía.

  3. Buenas tardes, Llevo poco tiempo con arduino y mi problema es que cada vez que quito alimentacion al módulo ESP8266, el comando AT+CIPMUX cambia de 1 a 0 y pierdo la comunicación.
    ¿Podrias darme una solución al problema?
    Muchas gracias

    Rafael

  4. hola, necesito enviar datos de un arduino a una base de datos haciendo uso del esp8266 pero de momento me es imposible, si pudieran proporcionarme una guía me seria muy util

  5. Por cierto, a mi me funciona con la propia alimentacion del arduino DUE (en mi caso 3.3v), gracias a que pongo a nivel bajo y tras esperar un instante lo pongo a nivel alto, las dos patillas que unos dicen que no se conectan, y otros dicen que se deben dejar fijos a nivel alto.
    ======= int LED = 13;
    boolean LEDst = false;

    //este par de pines han de estar en estado HIGH para que opere el modulo wifi.
    //pero debo pasarlos de LOW a HIGH tras el encendido para que se active el wifi.
    //y para ello debo añadir un DELAY(1), o no se activara el wifi.
    int RST_8266 = 51;
    int CH_PD_8266 = 53;

    void setup() {
    pinMode(RST_8266, OUTPUT);
    pinMode(CH_PD_8266, OUTPUT);

    pinMode(LED, OUTPUT);
    digitalWrite(LED, LEDst);

    Serial.begin(74880); // la del arduino
    Serial3.begin(74880); // la del modulo wifi

    delay(1);
    digitalWrite(RST_8266, LOW);
    digitalWrite(CH_PD_8266, LOW);
    delay(1);
    digitalWrite(CH_PD_8266, HIGH);
    digitalWrite(RST_8266, HIGH);
    }

    void loop() {
    while (Serial.available() > 0) {
    char a = Serial.read();
    Serial3.write(a);
    }
    }

    void serialEvent3() {
    while (Serial3.available() > 0) {
    char a = Serial3.read();
    Serial.write(a);
    ToggleLED();
    }
    }

    void ToggleLED(){
    //por cada respuesta del wifi se cambia el estado del LED
    digitalWrite(LED, LEDst = !LEDst);
    }
    =======

  6. hay dos velocidades en baudios.
    la del modulo wifi puede ser diferente a 9600
    en mi caso tuve que probar hasta dar con la de 115200
    Cuando empezo a funcionar bien, use el comando AT+CIOBAUD=74880 y esos son los que se quedan fijos en el modulo wifi hasta que los cambie yo de nuevo.

    Luego, los baudios del arduino conviene igualarlos a los del modulo wifi para que no pierda caracteres el arduino al recibir textos muy largos.

    yo he puesto ambas velocidades a 74880 y asi recibo todos los mesajes del modulo wifi, esos que salen al principio en forma rara.

  7. Hola he recibido un modulo esp 07 y lo he conectado con el arduino pero no recibo ninguna contestacion por parte del modulo. He probado todo, el arduino recibe pues si hago contactos a masa con un cable algun simbolo sale. El modulo ya lo puse a 3,3 v con baterias y he puesta a vcc la pata»RSTt» y «EN» ademas de la vcc y nada de nada.
    Pregunta hay que programar o hacer algo con el modulo antes?

    1. TX>>3; RX>>2; GPIO15&GND>>GND; RST&EN&VCC>>3.3V

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

      Serial Monitor >> 115200baud

      Desconecta y vuelve a conectar la alimentacion

  8. Hola.

    He probado tu ejemplo con dos módulos esp8266 (el 01 y el 12) y sólo consigo recibir cadenas de caracteres extraños con ambos. He probado con las conexiones que indicas y también poniendo el pin CHPD/EN a +3.3 V. También he probado con otras velocidades y nada. ¿a qué se puede deber?
    Lo alimento con una fuente externa (de un PC).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Cart

Your Cart is Empty

Back To Shop