🛠 Se connecter au Wi-Fi en mode station et suivre le RSSI

ESP8266 (module ESP-12E) · intermediaire · Schéma : IMG-esp8266-esp-12e-intermediaire-1-esp8266-wifi-sta-rssi.svg — Module ESP8266-ESP-12E relié à un point d'accès Wi-Fi 2,4 GHz, antenne PCB, condensateur de découplage sur le rail 3,3 V, console série sur UART0.

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

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

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels