sábado, 26 de noviembre de 2016

ESP8266: Diagnóstico WiFi y dirección MAC

El siguiente código muestra por el puerto serie un diagnóstico de estado del Wifi y la dirección MAC del dispositivo:

#include <ESP8266WiFi.h>

void setup() {
  Serial.begin(115200);

  Serial.print("\nDiagnóstico...\n");
  WiFi.printDiag(Serial);
  Serial.println();


  Serial.printf("MAC Address = %s\n", WiFi.softAPmacAddress().c_str());
}

void loop() {
}

El diagnóstico utilizan el comando WiFi.printDiag(Serial). En mi caso, me devuelve por el puerto serie:

Diagnostic...
Mode: STA+AP
PHY mode: N
Channel: 1
AP id: 0
Status: 1
Auto connect: 1
SSID (10): arduino-er
Passphrase (8): 12345678
BSSID set: 0

MAC: 18:FE:34:E0:3A:58

Mode: Nos indica el modo de funcionamiento del módulo WiFi. Puede tomar tres valores:
  • STA (Station): Modo Estación o modo cliente.
  • AP (Access Point): Modo punto de acceso
  • STA+AP: Mixto
Para establecer el modo de funcionamiento se utiliza la instrucción WiFi.mode(valor); donde valor puede tener los valores:
  • WIFI_STA  : Modo estación
PHY mode: nos indica el estándar 802.11 (el que regula las redes locales inalámbricas) configurado en el módulo. Puede tomar los valores:
  • B: 802.11b
  • G: 802.11g
  • N: 802.11n
Channel: Nos indica el canal que está utilizando el módulo Wifi. Cuando se definió el standard IEEE 802.11 se especificó también los tres rangos de frecuencia disponibles para los dispositivos que desearan emitir de esta forma: 2.4 GHz, 3.6 GHz y 5 GHz. La mayoría de dispositivos actuales operan, por defecto, en la franja de frecuencias cercana a 2.4 GHz, Cada rango de frecuencias fue subdividido, a su vez, en multitud de canales. Para 2.4 GHz, estamos hablando de 14 canales, separados por 5 MHz. Eso sí, cada país y zona geográfica aplica sus propias restricciones al número de canales disponibles. Por ejemplo, en Norteamérica tan sólo se utilizan los 11 primeros, mientras que en Europa disponemos de 13. El problema de esta distribución es que cada canal necesita 22MHz de ancho de banda para operar, y esto produce un solapamiento de varios canales contiguos como se parecía en la siguiente figura:

AP id:

Status: estado de la conexión. Puede tener los siguientes valores:
  • 0 : WL_IDLE_STATUS cuando el Wi-Fi está en proceso de cambiar de estado
  • 1 : WL_NO_SSID_AVAIL en caso de que el SSID configurado no pueda ser alcanzado
  • 3 : WL_CONNECTED después de establecer una conexión satisfactoriamente
  • 4 : WL_CONNECT_FAILED si la contraseña es incorrecta
  • 6 : WL_DISCONNECTED si el módulo no está configurado en el modo de estación
Auto connect:

SSID (n): Nos indica el nombre de la red Wifi configurada en nuestro módulo cuando se establece en modo AP. n nos indica la longitud de dicho nombre

Passphrase (n): Password configurado en el módulo wifi. n nmos indica la longitud de dicho password

BSSID set: es el identificador único de una red wifi y se forma a partir de su dirección MAC

Para obtener la dirección MAC utilizamos la instrucción WiFi.softAPmacAddress().

Fuentes:
ESP8266WiFi Library
https://es.wikipedia.org/wiki/Printf
Módulo wifi

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.