Wifi Escaneo de redes

En este ejemplo se escanea en busca de redes 802.11b/g WiFi con el escudo Arduino 101 o una placa MKR1000. Su monitor serie  del software Arduino (IDE) imprimirá información sobre el placa y las redes que se pueden ver. No va a conectarse a una red.

Hardware necesario

Escudo Arduino Wifi101
Placa Arduino o Genuino Zero
o
Placa MKR1000

Circuito

El pin digital 7 se utiliza como un pin de diálogo entre el escudo WiFi101 y la placa, y no debe ser utilizado.

Abra monitor serie de su  software Arduino (IDE) para acceder a las redes que escudo Wi-Fi101 puede ver. El escudo no puede ver tantas redes como su ordenador.


En la imagen superior, la placa Arduino o Genuino Zero se apilan debajo del escudo WiFi.

Código

// En este ejemplo se imprime la dirección MAC del escudo Wifi, y se buscan 
// las redes WiFi disponibles utilizando el escudo Wifi. Cada diez segundos, 
// se analiza de nuevo. En realidad, no se conecta a ninguna red, por lo que 
// no se especifica ningún esquema de cifrado. 

// Circuito: 
// * Wi-Fi escudo conectado 

// creado el 13 de Julio de 2010 por DLF (Metodo2 srl) 
//modificado el 21 de Junio de 2012 por Tom Igoe y Jaymes Dec


#include <SPI.h>
#include <WiFi101.h>

void setup() {
  //Initializel puerto serie y espera a que se abra:
  Serial.begin(9600);
  while (!Serial) {
    ; // espera a que el puerto serie se conecte. Solo necesario para el USB nativo
  }
  
  // comprueba la presencia del escudo:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("Escudo WiFi no prsente");
    // no continua:
    while (true);
  }

  // Imprime la direccion MAC del WiFi:
  printMacAddress();

  // escanea las redes existentes:
  Serial.println("Escaneando redes dispinibles...");
  listNetworks();
}

void loop() {
  delay(10000);
  // escaneando redes existentes:
  Serial.println("Escaneando redes existentes...");
  listNetworks();
}

void printMacAddress() {
  // ls direccion MAC de su escudo Wifi 
  byte mac[6];

  // imprime su diresccion MAC:
  WiFi.macAddress(mac);
  Serial.print("MAC: ");
  Serial.print(mac[5], HEX);
  Serial.print(":");
  Serial.print(mac[4], HEX);
  Serial.print(":");
  Serial.print(mac[3], HEX);
  Serial.print(":");
  Serial.print(mac[2], HEX);
  Serial.print(":");
  Serial.print(mac[1], HEX);
  Serial.print(":");
  Serial.println(mac[0], HEX);
}

void listNetworks() {
  // busca redes cercanas:
  Serial.println("** Escaneando redes **");
  int numSsid = WiFi.scanNetworks();
  if (numSsid == -1)
  {
    Serial.println("No se consigue ninguna conexion");
    while (true);
  }

  // imprime la lista de redes encontradas:
  Serial.print("Número de redes encontradas:");
  Serial.println(numSsid);

  // imprimir el número de red y el nombre de cada red encontrada:
  for (int thisNet = 0; thisNet < numSsid; thisNet++) {
    Serial.print(thisNet);
    Serial.print(") ");
    Serial.print(WiFi.SSID(thisNet));
    Serial.print("\tSignal: ");
    Serial.print(WiFi.RSSI(thisNet));
    Serial.print(" dBm");
    Serial.print("\tCifrado: ");
    printEncryptionType(WiFi.encryptionType(thisNet));
    Serial.flush();
  }
}

void printEncryptionType(int thisType) {
  // lee el tipo de cifrado e imprime el nombre:
  switch (thisType) {
    case ENC_TYPE_WEP:
      Serial.println("WEP");
      break;
    case ENC_TYPE_TKIP:
      Serial.println("WPA");
      break;
    case ENC_TYPE_CCMP:
      Serial.println("WPA2");
      break;
    case ENC_TYPE_NONE:
      Serial.println("Ninguna");
      break;
    case ENC_TYPE_AUTO:
      Serial.println("Automático");
      break;
  }
}



No hay comentarios:

Publicar un comentario