🛠 Se connecter au Wi-Fi en mode station et suivre le RSSI
Objectifs
Relier l'ESP8266-ESP-12E à un réseau Wi-Fi en mode station (WIFI_STA), seul mode compatible avec les réseaux 2,4 GHz classiques (la puce ne gère ni le 5 GHz ni le Bluetooth). On affiche l'adresse IP obtenue par DHCP, puis la puissance du signal RSSI en dBm toutes les deux secondes, et on implémente une reconnexion automatique quand le lien tombe. Le RSSI est un excellent diagnostic : au-delà de -80 dBm la connexion devient instable. C'est aussi la base de tous les tutoriels réseau suivants (serveur web, MQTT, OTA).
Matériel
- 1 module ESP8266-ESP-12E (antenne PCB intégrée)
- 1 routeur Wi-Fi 2,4 GHz (le 5 GHz n'est pas supporté)
- Alimentation 3,3 V capable de fournir des pointes ≥ 500 mA (l'émission Wi-Fi attire des pics de courant brutaux)
- Condensateur 100 à 470 µF recommandé entre 3,3 V et GND près du module
- Console série USB (CP2102/CH340)
Code complet
#include <ESP8266WiFi.h>
const char* SSID = "mon-réseau";
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;
}
Vérification attendue
À la mise sous tension, la console affiche les points de progression puis l'adresse IP locale (par exemple 192.168.1.42) et le RSSI. Ensuite, une ligne RSSI s'affiche toutes les deux secondes. Éloigne le module du routeur : le RSSI doit baisser (par exemple de -45 à -85 dBm) ; trop loin, la connexion tombe et le module affiche « Lien perdu, reconnexion... » puis se reconnecte seul.
Erreurs fréquentes
- Alimentation 3,3 V trop chiche : au premier essai Wi-Fi, le module reboot en boucle avec des messages « c0 3 3 3 » ou « rd RST » (brownout detector). Solution : alimention ≥ 500 mA et condensateur de découplage.
- Essayer de se connecter à un réseau 5 GHz : l'ESP8266 est strictement 2,4 GHz 802.11 b/g/n.
- Oublier WiFi.mode(WIFI_STA) : par défaut le module peut rester en mode point d'accès et ne jamais se connecter.
- Mots de passe avec caractères accentués ou SSID cachés : le comportement est capricieux, teste d'abord avec un réseau simple.
- Bloquer la boucle avec de longs delay : le stack Wi-Fi a besoin de s'exécuter, utilise yield ou des delays courts.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.inoArduinobouton-led.inoArduinorespiration.inoArduinodht11.inoArduinoluxmetre.inoArduinoserveur-web.inoArduino