Funciones Wifi - Clase Wifi

Clase Wifi
La clase WiFi inicializa los ajustes de la biblioteca de Ethernet y de red.

Wifi.begin()

Descripción:
Inicializa la configuración de la biblioteca WiFi 101 y proporciona el estado actual.

Sintaxis:
WiFi.begin(); 
WiFi.begin(ssid); 
WiFi.begin(ssid, pass); 

WiFi.begin(ssid, keyIndex, key); 

Parámetros:
SSID: el SSID (Service Set Identifier) es el nombre de la red WiFi a la que desea conectarse.
keyIndex: las redes WEP cifradas puede contener hasta 4 claves diferentes. Esto identifica la clave que se va a utilizar.
key: una cadena hexadecimal utilizada como un código de seguridad en redes WEP cifradas.

pass: las redes WPA encriptadas utilizan una contraseña en forma de una cadena de seguridad.

Retornos:
WL CONECTRD cuando está conectado a una red

WL_IDLE_STATUS cuando no está conectado a una red, pero atá alimentada

Ejemplo:
#include <WiFi101.h>

 //SSID de su red
 char ssid[] = "Su red";
 //password de su red WPA  
 char pass[] = "Password";

 void setup()
 {
  WiFi.begin(ssid, pass);
 }

 void loop () {}
_________________________________________________________________________________

Wifi.disconnect()

Descripción:
Desconecta el  Escudo WiFi 101 de la red actual.

Sintaxis:
WiFi.disconnect(); 

Parámetros:
Ninguno

Retornos:
Ninguno
________________________________________________________________________

Wifi.config()

Descripción:
WiFi.config () le permite configurar una dirección IP estática, así como cambiar los DNS, puerta de enlace y las direcciones de subred en el escudo WiFi.

A diferencia de WiFi.begin (), que configura automáticamente el escudo WiFi para usar DHCP, WiFi.config () le permite configurar manualmente la dirección de red del escudo.

Llamando WiFi.config () antes de WiFi.begin () fuerza a begin() para configurar el escudo WiFi con las direcciones de red especificadas en config ().


Puede llamar a WiFi.config () después de llamar a WiFi.begin (), pero el escudo se inicializará con begin () en el modo DHCP por defecto. Una vez que se llama al método config (), cambia la dirección de la red conforme a lo solicitado.

Sintaxis:
WiFi.config(ip); 
WiFi.config(ip, dns); 
WiFi.config(ip, dns, gateway); 

WiFi.config(ip, dns, gateway, subnet); 

Parámetros:
IP: la dirección IP del dispositivo (serie de 4 bytes)
DNS: la dirección de un servidor DNS.
gateway: la dirección IP de la pasarela de red (serie de 4 bytes). opcional: por defecto la dirección IP del dispositivo con el último octeto puesto a 1

subnet: la máscara de subred de la red (serie de 4 bytes). opcional: por defecto es 255.255.255.0

Retornos:
Ninguno

Ejemplo:
Este ejemplo muestra cómo configurar la dirección IP estática, 192.168.0.177, de la red LAN para el Escudo  Arduino WiFi 101:

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

// la direccion IP del escudo:
IPAddress ip(192, 168, 0, 177);    

char ssid[] = "yourNetwork";    // su red SSID (nombr) 
char pass[] = "secretPassword"; //su password (useda para WPA, o usada como clave WEP)

int status = WL_IDLE_STATUS;

void setup()
{  
  // Initializa el puerto serie y espera a que se abra:
  Serial.begin(9600); 
  while (!Serial) {
    ; // espera a que el puerto serie se conecte. Solo necesario para Leonardo 
  }

  // comprueba la presencia del escudo:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("Escudo WiFi no presente"); 
    while(true);  // no continua
  } 

  WiFi.config(ip);

  // intenta conectar con una red Wifi :
  while ( status != WL_CONNECTED) { 
    Serial.print("Intentando conectar con SSID: ");
    Serial.println(ssid);
    // Conecta a una red WPA/WPA2. Cambie esta línea si se utiliza una red abierta o WEP:    
    status = WiFi.begin(ssid, pass);

    // espera 10 segundos para conectar:
    delay(10000);
  }

  // imprime la direccion IP del escudo WiFi:
  Serial.print("Direccion IP: ");
  Serial.println(WiFi.localIP()); 
}

void loop () {}
________________________________________________________________________

Wifi.setDNS()

Descripción:
WiFi.set DNS () le permite configurar el servidor (Domain Name System) DNS.

Sintaxis:
WiFi.setDNS(dns_server1)

WiFi.setDNS(dns_server1, dns_server2)

Parámetros:
dns server1: la dirección IP del servidor DNS primario

dns server2: la dirección IP del servidor DNS secundario

Retornos:
Ninguno

Ejemplo:
Este ejemplo muestra cómo configurar el DNS de Google (8.8.8.8). Usted puede establecer como un objeto  IPAddress.

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

// Direccion IP para el escudo:
IPAddress dns(8, 8, 8, 8);  //Google dns  

char ssid[] = "yourNetwork";    // su red SSID (nombr) 
char pass[] = "secretPassword"; // su password (usar para WPA, o usar como clave para WEP)

int status = WL_IDLE_STATUS;

void setup()
{  
  // Initializa el puerto serie y espera que se conecte:
  Serial.begin(9600); 
  while (!Serial) {
    ; // espera a que el puerto serie se conecte. Solo necesario para Leonardo 
  }

  // Comprueba la presencia del escudo:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("Escudo WiFi no presente"); 
    while(true);  // no continua
  } 

  // intenta conectar con una red Wifi:
  while ( status != WL_CONNECTED) { 
    Serial.print("Intentando conectar con SSID: ");
    Serial.println(ssid);
    // Conecta a una red WPA/WPA2. Cambie esta línea si se utiliza una red abierta o WEP:    
    status = WiFi.begin(ssid, pass);

    // espera 10 segundos para conectar:
    delay(10000);
  }

  // imprime la direccion WiFi del escudo:
  WiFi.setDNS(dns);
  Serial.print("Dns configurado.");
}

void loop () {
}
________________________________________________________________________

Wifi.SSID()

Descripción:
Obtiene el SSID de la red actual

Sintaxis:
WiFi.SSID(); 

WiFi.SSID(wifiAccessPoint)

Parámetros:
wifiAccessPoint: especifica de qué red se desea obtener la información

Retornos:
Una cadena que contiene el SSID del escudo WiFi que está conectado en ese momento.


string que contiene el nombre de la petición de red.

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

//SSID de su red
char ssid[] = "yourNetwork";
int status = WL_IDLE_STATUS;     // el estadio de la radio Wifi

void setup()
{
  // initializa el puerto serie:
  Serial.begin(9600);

  // escanea las redes axistentes:
  Serial.println("Escaneando las redes disponibles...");
  scanNetworks();

  // intenta conectarse usando cifrado WEP:
  Serial.println("Intentando conectar para abrir red...");
  status = WiFi.begin(ssid);

  Serial.print("SSID: ");
  Serial.println(ssid);

}

void loop () {}

void scanNetworks() {
  // buscar las redes cercanas:
  Serial.println("** Escaneo de redes **");
  byte numSsid = WiFi.scanNetworks();

  // imprime la lista de redes encontradas:
  Serial.print("Lista de SSID:");
  Serial.println(numSsid);
  // imprime el numero y nombre de cada red encontrada:
  for (int thisNet = 0; thisNet<numSsid; thisNet++) {
    Serial.print(thisNet);
    Serial.print(") Red: ");
    Serial.println(WiFi.SSID(thisNet));
  }
}
________________________________________________________________________

Wifi.BSSID()

Descripción:
Obtiene la dirección MAC del router que está conectado

Sintaxis:
WiFi.BSSID(bssid); 

Parámetros:
BSSID:matriz de 6  bytes

Retornos:
Una matriz de bytes que contiene la dirección MAC del router el escudo WiFi que está conectado en ese momento.

Ejemplo:
#include <WiFi101.h>

//SSID de su red
char ssid[] = "yourNetwork";
//password de su red WPA  
char pass[] = "secretPassword";

void setup()
{
 WiFi.begin(ssid, pass);

  if ( status != WL_CONNECTED) { 
    Serial.println("No se consigue ninguna conexion");
    while(true);
  } 
  // si esta conectado, imprimir informacion de la conexion:
  else {
  // imprime la direccion MAC del router al que esta conectado:
  byte bssid[6];
  WiFi.BSSID(bssid);    
  Serial.print("BSSID: ");
  Serial.print(bssid[5],HEX);
  Serial.print(":");
  Serial.print(bssid[4],HEX);
  Serial.print(":");
  Serial.print(bssid[3],HEX);
  Serial.print(":");
  Serial.print(bssid[2],HEX);
  Serial.print(":");
  Serial.print(bssid[1],HEX);
  Serial.print(":");
  Serial.println(bssid[0],HEX);
  }
}

void loop () {}
________________________________________________________________________

Wifi.RSSI()

Descripción:
Obtiene la intensidad de señal de la conexión con el router

Sintaxis:
WiFi.RSSI(); 

WiFi.RSSI(wifiAccessPoint);

Parámetros:
wifiAccessPoint: especifica de qué red se desea obtener la información

Retornos:
long: la potencia de señal de la actual RSSI de / Recibida en dBm

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

 //SSID de su red
 char ssid[] = "yourNetwork";
 //password de su red WPA  
 char pass[] = "secretPassword";

 void setup()
 {
  WiFi.begin(ssid, pass);

   if (WiFi.status() != WL_CONNECTED) {
     Serial.println("No se consigue una conexion");
     while(true);
   }
   // si se conecta, imprimir informacion acerca de la conexion:
   else {
    // imprimir la intensidad de la señal recibida:
   long rssi = WiFi.RSSI();
   Serial.print("RSSI:");
   Serial.println(rssi);
   }
 }

 void loop () {}
  _________________________________________________________

Wifi.encryptionType()

Descripción:
Obtiene el tipo de cifrado de la red actual

Sintaxis:
WiFi.encryptionType(); 

WiFi.encryptionType(wifiAccessPoint); 

Parámetros:
wifiAccessPoint: especifica de qué red se desea obtener información

Retornos:
byte : valor que representa el tipo de cifrado
  • TKIP (WPA) = 2
  • WEP = 5
  • CCMP (WPA) = 4
  • NONE = 7
  • AUTO = 8

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

 //SSID de su red
 char ssid[] = "yourNetwork";
 //password de su red WPA  
 char pass[] = "secretPassword";

 void setup()
 {
  WiFi.begin(ssid, pass);

   if ( status != WL_CONNECTED) {
     Serial.println("No se consigue una conexion");
     while(true);
   }
   // si esta conectado, imprimir la informacion de la conexion:
   else {
    // imprimir el tipo de cifrado:
   byte encryption = WiFi.encryptionType();
   Serial.print("Tipo de cifrado:");
   Serial.println(encryption,HEX);
   }
 }

 void loop () {}
 _______________________________________________________________

Wifi.scanNetworks()

Descripción:
Analiza en busca de redes WiFi disponibles y devuelve el número descubierto

Sintaxis:
WiFi.scanNetworks(); 

Parámetros:
Ninguno

Retornos:
byte: número de redes descubiertas
Ejemplo:
#include <SPI.h>
#include <WiFi101.h>

char ssid[] = "yourNetwork";     // el nombre de su red
int status = WL_IDLE_STATUS;     // el estado de radio de Wifi

byte mac[6];                     // la direccion MAC de su escudo Wifi 


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

 status = WiFi.begin(ssid);

 if ( status != WL_CONNECTED) { 
    Serial.println("No se consigue una conexion");
    while(true);
  } 
  // si se conecta, imprimir la direccion MAC:
  else {

  Serial.println("** Escaneo de redes **");
  byte numSsid = WiFi.scanNetworks();

  Serial.print("Lista de SSID:");
  Serial.println(numSsid);
  }
}

void loop () {}
________________________________________________________________________

Wifi.status()

Descripción:
Devuelve el estado de la conexion

Sintaxis:
WiFi.status();

Parámetros:
Ninguno

Retornos:
WL_CONNECTED: asignado cuando se conecta a una red Wi-Fi;
WL_NO_SHIELD: cuando ningún escudo WiFi está presente;
WL_IDLE_STATUS: se trata de un estado temporal asignado cuando se llama WiFi.begin () y permanece activo hasta que el número de intentos expira (que resulta en WL_CONNECT_FAILED) o se establece una conexión (que resulta en WL_CONNECTED);
WL_NO_SSID_AVAIL: se asigna cuando hay SSID que están disponibles;
WL_SCAN_COMPLETED: asignado cuando se haya completado el escaneo de redes;
WL_CONNECTION_LOST: asignado cuando se pierde la conexión;

WL_DISCONNECTED: asignado cuando se desconecta de una red;

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

char ssid[] = "yourNetwork";                     // su red SSID (nombr)
char key[] = "D0D0DEADF00DABBADEAFBEADED";       // su clave de red
int keyIndex = 0;                                // su numero clave Index 
int status = WL_IDLE_STATUS;                     // es estado de wifi

void setup() {
  //Initializa el puerto serie y espera que se abra:
  Serial.begin(9600);
  while (!Serial) {
    ; // espera que el puerto serie se conecte. Solo necesario par Leonardo 
  }

  // comprueba la presencia del escudo:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("Escudo WiFi no presente");
    // no continua:
    while (true);
  }

  // intenta la conexion con una red Wifi:
  while ( status != WL_CONNECTED) {
    Serial.print("Intentando conectar con una red WEP, SSID: ");
    Serial.println(ssid);
    status = WiFi.begin(ssid, keyIndex, key);

    // espera 10 segundos para la conexion:
    delay(10000);
  }

  // una vez que se conecta :
  Serial.print("Esta conectado a la red");
}

void loop() {
  // comprueba el estado de conexion cada 10 segundos:
  delay(10000);
 Serial.println(WiFi.status();
}
________________________________________________________________________

Wifi.macAddress()

Descripción:
Obtiene la dirección MAC de su escudo WiFi

Sintaxis:
WiFi.macAddress(mac); 

Parámetros:
mac: una matriz de 6 bytes para mantener la dirección MAC

Retornos:
byte array: 6 bytes que representan la dirección MAC de su escudo
Ejemplo:
#include <SPI.h>
#include <WiFi101.h>

char ssid[] = "yourNetwork";     // el nombre de su
int status = WL_IDLE_STATUS;     // el estado de radio del Wifi

byte mac[6];                     // la direccion MAC de su escudo Wifi 


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

 status = WiFi.begin(ssid);

 if ( status != WL_CONNECTED) { 
    Serial.println("No se consigue una conexion");
    while(true);
  } 
  // si se conecta, imprimir la direccion MAC:
  else {
  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 loop () {}


2 comentarios:

  1. SSID: el SSID (Service Set Identifier) es el nombre de la red WiFi a la que desea conectarse. keyIndex: las redes WEP cifradas puede contener hasta 4 claves diferentes. https://consejoscomunales.net/la-era-del-guano/

    ResponderEliminar
  2. La mac sale exactamente al revés de como se muestra en el router o con el comando ip neigh de linux

    ResponderEliminar