🛠 Se connecter au Wi-Fi en mode station et suivre le RSSI
Objetivos
Conectar el ESP8266-ESP-12E a una red Wi-Fi en modo estación (WIFI_STA), el único modo compatible con las redes clásicas de 2,4 GHz (el chip no admite ni 5 GHz ni Bluetooth). Se muestra la dirección IP obtenida por DHCP, luego la potencia de la señal RSSI en dBm cada dos segundos, y se implementa una reconexión automática cuando se pierde el enlace. El RSSI es un excelente diagnóstico: por encima de -80 dBm la conexión se vuelve inestable. Esta es también la base de todos los siguientes tutoriales de red (servidor web, MQTT, OTA).
Material
- 1 módulo ESP8266-ESP-12E (antena PCB integrada)
- 1 router Wi-Fi de 2,4 GHz (no se admite 5 GHz)
- Fuente de alimentación de 3,3 V capaz de proporcionar picos ≥ 500 mA (la emisión Wi-Fi provoca picos de corriente bruscos)
- Condensador de 100 a 470 µF recomendado entre 3,3 V y GND cerca del módulo
- Consola serie USB (CP2102/CH340)
Código completo
#include <ESP8266WiFi.h>
const char* SSID = "mon-reseau";
const char* PASS = "mot-de-passe";
void connexion {
WiFi.mode(WIFI_STA);
WiFi.begin(SSID, PASS);
Serial.printf("Connexion a %s", SSID);
unsigned long t0 = millis;
while (WiFi.status != WL_CONNECTED && millis - t0 < 20000) {
delay(250);
Serial.print(".");
yield;
}
if (WiFi.status == WL_CONNECTED) {
Serial.printf("\nIP = %s RSSI = %d dBm\n", WiFi.localIP.toString.c_str, WiFi.RSSI);
} else {
Serial.println("\nEchec : verifie SSID, mot de passe et distance du routeur");
}
}
void setup {
Serial.begin(115200);
connexion;
}
void loop {
static unsigned long derniere = 0;
if (WiFi.status != WL_CONNECTED) {
Serial.println("\nLien perdu, reconnexion...");
WiFi.disconnect;
connexion;
}
if (millis - derniere > 2000) {
derniere = millis;
Serial.printf("RSSI = %d dBm canal = %d\n", WiFi.RSSI, WiFi.channel);
}
delay(10);
yield;
}
Verificación esperada
Al encender, la consola muestra los puntos de progreso y luego la dirección IP local (por ejemplo, 192.168.1.42) y el RSSI. A continuación, se muestra una línea de RSSI cada dos segundos. Aleja el módulo del router: el RSSI debe disminuir (por ejemplo, de -45 a -85 dBm); si está demasiado lejos, la conexión se cae y el módulo muestra «Enlace perdido, reconectando...» y se reconecta solo.
Errores frecuentes
- Fuente de alimentación de 3,3 V insuficiente: en el primer intento de Wi-Fi, el módulo se reinicia en bucle con mensajes «c0 3 3 3» o «rd RST» (detector de brownout). Solución: alimentación ≥ 500 mA y condensador de desacoplo.
- Intentar conectarse a una red de 5 GHz: el ESP8266 es estrictamente 2,4 GHz 802.11 b/g/n.
- Olvidar WiFi.mode(WIFI_STA): por defecto, el módulo puede permanecer en modo punto de acceso y nunca conectarse.
- Contraseñas con caracteres acentuados o SSID ocultos: el comportamiento es errático, prueba primero con una red simple.
- Bloquear el bucle con largos delay: la pila de Wi-Fi necesita ejecutarse, usa yield o delays cortos.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.inoArduinobouton-led.inoArduinorespiration.inoArduinodht11.inoArduinoluxmetre.inoArduinoserveur-web.inoArduino