Cómo conectar un ESP8266 a una WiFi

En el anterior post expliqué qué era el ESP8266, para qué servía y cómo empezar a trastear con el. Hoy voy a explicar una de las características estrellas de este micro controlador y es su capacidad de conectarse a una red WiFi.

Este módulo incorpora el stack TCP/IP completo con lo que no necesitaremos nada más para hacerlo funcionar. Como en el anterior ejemplo, vamos a volver a utilizar el core de Arduino para programarlo por lo que podremos utilizar la librería WiFi de Arduino para realizar la configuración y conexión.

Ejemplo para conectarse a una WiFi

Lo primero que tendremos que hacer después de haber creado nuestro proyecto en PlatformIO como expliqué en el anterior post es incluir las cabeceras de las dependencias que vamos a utilizar y definir dos variables donde indicaremos el nombre de la WiFi y la contraseña.

#include <ESP8266WiFi.h>

char ssid[] = "";
char password[] = "";

En este caso vamos a conectarnos a una red WiFi autenticada, pero si en tu caso la red no tiene contraseña no será necesario definir esta variable y cuando tratemos de iniciar la conexión no le deberemos de pasar como parámetro ninguna contraseña.

Dentro del método setup va a ser donde coloquemos el código para realizar la conexión con la red WiFi. Después de haber iniciado la conexión tendremos que esperar indefinidamente hasta que esta se haya establecido correctamente.

void setup() {
  Serial.begin(9600);
  Serial.println("Wifi test!");

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println(WiFi.localIP());
}

void loop() {
}

Una vez que la conexión se haya establecido veremos por la salida de la consola la dirección IP local que el ESP8266 haya obtenido. Como en este caso no queremos hacer nada más que conectarnos y mostrar la dirección IP, el método loop quedará vacío.

Si después de desplegar el programa en el micro controlador y abrir la consola del monitor de serie no vemos nada porque la conexión ya se ha realizado, podemos pulsar sobre el botón RST que hay en la placa para resetearla y que el programa vuelva a comenzar.

Puedes encontrar el ejemplo completo en mi GitHub y si tienes cualquier duda no dudes en dejar un comentario.