Conectar a la WiFi con ESP8266
Buscando señales de WiFi con la placa NodeMCU ESP8266.
Introducción
En este tutorial vamos a explicar cómo buscar señales WiFi con la ESP8266 para conectarnos en modo cliente o estación a una red conociendo el SSID y la contraseña.
Antes de empezar
Para este tutorial vas a necesitar los siguientes componentes:
- NodeMCU o equivalente
- Arduino IDE con placa NodeMCU ESP12
NodeMCU ESP8266 WiFi
Conectarse a una red Wifi con la ESP8266 es muy sencillo gracias a la librería ESP8266WiFi, añadida anteriormente en el IDE de Arduino.
Buscar señales WiFi
La idea es obtener a través del monitor del IDE de Arduino el listado de todas las redes WiFi encontradas. Y este proceso se repetirá cada 5 segundos. Para cada red encontrada se mostrará el SSID (nombre de la WiFi) y el RSSI (intensidad de la señal).
Cuanto mayor sea el RSSI mejor será la señal encontrada.
![](https://raw.githubusercontent.com/ProgramoErgoSum/Tutoriales/master/v1/conectar-a-la-wifi-con-esp8266/img/buscar.jpg)
En primer lugar cargamos la librería ESP8266WiFi.h
para poder utilizar las funciones sobre la WiFi.
En la función setup()
establecemos la velocidad de transmisión a 115200 baudios y establecemos el modo de conexión, que en este caso es en modo cliente o estación WiFi.mode(WIFI_STA)
.
En la función loop()
vamos a escanear cada 5 segundos en busca de redes, y esto lo hacemos con la función WiFi.scanNetworks()
la cual obtiene el número de redes disponibles. A continuación, por cada una de las redes encontradas mostramos los valores que nos interesa, que son el SSID mediante la función WiFi.SSID(i)
y el RSSI mediante la función WiFi.RSSI(i)
.
#include <ESP8266WiFi.h>
void setup() {
Serial.begin(115200);
// Modo cliente
WiFi.mode(WIFI_STA);
}
void loop() {
Serial.println("");
// Obtenemos el número de redes encontradas
int n = WiFi.scanNetworks();
Serial.print(n);
Serial.println(" redes encontradas");
// Se imprimen las redes encontradas (SSID e RSSI)
for (int i = 0; i < n; i++){
Serial.print(i + 1);
Serial.print(": ");
Serial.print(WiFi.SSID(i));
Serial.print(" (");
Serial.print(WiFi.RSSI(i));
Serial.println(")");
delay(100);
}
delay(5000);
}
Conectar a una red WiFi
Una vez tenemos el listado de redes WiFi disponibles, vamos a conectarnos a una mediante SSID y password conocido.
![](https://raw.githubusercontent.com/ProgramoErgoSum/Tutoriales/master/v1/conectar-a-la-wifi-con-esp8266/img/conectar.jpg)
Además de importar la librería, vamos a establecer las constantes SSID y PASSWORD que utilizaremos en la función setup()
para establecer la conexión.
En la función loop()
simplemente comprobaremos si estamos conectados a la WiFi mediante la función WiFi.status()
la cual me indica si estoy conectado o no.
#include <ESP8266WiFi.h>
const char* ssid = "NOMBRE";
const char* password = "PASSWORD";
void setup () {
Serial.begin(115200);
// Conectar a la WiFi
WiFi.begin(ssid, password);
// Modo cliente
WiFi.mode(WIFI_STA);
// Esperar hasta conectar
while (WiFi.status() != WL_CONNECTED)
delay(200);
}
void loop() {
// Comprobar si estamos conectados
if (WiFi.status() == WL_CONNECTED) {
Serial.println("Conectado");
}
delay(5000);
}
Ejercicios propuestos
1.- Busca todas las redes WiFi disponibles y conectate a una red WiFi conocida.
2.- Utilizando los pines GPIO, añade un LED rojo y un LED verde indicando cuando estás conectado a una red y cuando no lo estás.
Contribuciones
¿Has encontrado algún error en el contenido?
Edita
esta página
en GitHub y aparecerás en este apartado.