Icono del sitio CiberTips

Escáner de redes Wi-Fi con NodeMCU Esp8266

escaner

Escanear redes wifi y mostrarlas en el monitor serie.

Configuración del escáner

Para escanear redes lo primero que hacemos es abrimos el IDE Arduino e incluimos la biblioteca ESP8266WiFi. Esta es la que nos permitirá incluir en nuestro código todo lo relacionado a la red.

Pasamos al void setup e iniciamos el monitor serie en 9600, esto es lo que me dice el Node en su parte trasera.

Debemos saber que el node tiene 3 configuraciones Modo estación (STA) que significa que la Wi-Fi transfiere contenido a dos rutas de datos, Modo de punto de acceso (AP) este proyecta una señal Wi-Fi en un área designada y ambas a la vez (STA+AP). Como queremos escanear redes Wi-Fi lo vamos a configurar en modo estación (STA).

Introducción al código

En el void loop primero mostramos un letrero en el monitor serie que diga que el proceso de escaneo está empezando. Guardamos en una variable la cantidad de redes que el Node está detectando y mostramos en otro letrero que el escáner ha finalizado.

Hay que pensar que existen dos posibilidades la primera que no encuentre redes y otra que si la encuentre. Es decir que la lógica seria si ‘n’ (que es nuestra variable) que es la cantidad de redes es igual a ‘0’ mostramos un letrero que diga ‘No se encontraron redes’. En el caso de encontrarlas voy a mostrar en el monitor serie la cantidad que encontré.

Ahora con estas redes hacemos un arreglo donde mostremos de cada red su posición, su nombre, la intensidad de la señal y si tiene contraseña. Así tenemos un escáner de redes Wi-Fi con un Node. Para comprobar pueden hacer con el móvil una zona de cobertura inalámbrica y si la detecta es que funciona correctamente.

#include "ESP8266WiFi.h" 	//biblioteca Wi-Fi
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600); 	//Inicializar el monitor serie

WiFi.mode(WIFI_STA);  		//Configurar el Node en modo STA
WiFi.disconnect();
}
void loop() {
  // put your main code here, to run repeatedly:
Serial.println("Escaneando...");		//Letrero de escaneando
int n = WiFi.scanNetworks();		//Guardar cantidad de redes en variable n
Serial.println("Escaner terminado");	//Letrero de escáner terminado

//Si n es igual a 0 muestra que no se encontraron redes
if(n == 0){	
Serial.println("No se encontraron redes Wi-Fi"); 
}

//Si encuentra redes va a mostrar la cantidad
else{
    Serial.print(n);
  Serial.println("Redes encontradas");

//Arreglo que me va a dar los datos de la Red
  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.print(") ");
    Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE) ? " " : "*");
    delay(10000);
  }
}
}

Para leer el artículo anterior: https://ciber-tips.com/sensor-de-aguadht-con-node/

Descarga el IDE Arduino: https://www.arduino.cc/en/main/software

Salir de la versión móvil