Comienzo con Arduino Wifi

El escudo Arduino 101 WiFi permite que una placa Arduino / Genuino se conecte a Internet usando la biblioteca WiFi101. La biblioteca WiFi101 se puede descargar mediante el Administrador de Biblioteca de Arduino. La biblioteca WiFI101 es similar a la biblioteca Ethernet y muchas de las llamadas a funciones son las mismas.

Conexionado del escudo


Para utilizar el escudo, montarlo en la parte superior de una placa Arduino / Genuino (por ejemplo el Zero). Para cargar programas a la placa, conectarlo al ordenador mediante un cable USB como lo haría normalmente. Una vez que el programa se ha cargado, se puede desconectar la placa del ordenador y alimentarlo con una fuente de alimentación externa.

El pin digital 7 se usa como un pin de conversación entre el escudo WiFi y el Arduino, y no se debe utilizar;

El PIN6 digital se conecta al pulsador de la placa;

El pin 5 Digital controla el reset incorporado del módulo WINC1500;

Configuración de la red

El escudo se conectará a redes abiertas, así como las que utilizan WEP y WPA2 Personal. El escudo no se conecta a las redes que utilizan el cifrado WPA2 Enterprise.

El SSID (nombre de red) debe ser transmitido por el escudo a conectar.

Dependiendo de la configuración del router inalámbrico, necesita una información diferente.

Para una red abierta (no cifrada), necesita el SSID.

Para redes que utilizan WPA / WPA2 Personal encriptación, necesita el SSID y la contraseña.
Las contraseñas de red WEP son cadenas hexadecimales conocidas como claves. Una red WEP puede tener 4 claves diferentes; a cada clave se le asigna un valor "Key Index". En redes WEP cifradas, necesita el SSID, la clave y el número clave.

Escaneado de redes disponibles

El siguiente programa es una buena manera de ejecutar la primera vez que se utiliza la placa en un área nueva. Este programa no se conecta a una red, pero le mostrará las redes que el escudo puede ver. Su escudo WiFi probablemente no va a ver tantas redes como un ordenador con una antena Wi-Fi más grande. Una vez que haya descargado el programa para la placa Arduino, abrir el puerto serie para ver las redes disponibles.

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

void setup() {
  // initializa el puerto serie y espera que se conecte:
  Serial.begin(9600);
  while(!Serial) ;

  // intenta conectar  usando la encriptacion WEP:
  Serial.println("Inicializando Wifi...");
  printMacAddress();

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

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

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

  // imprime la direccion 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 las redes cercanas:
  Serial.println("** Scan Networks **");
  byte numSsid = WiFi.scanNetworks();

  // imprime la lista de redes encontadas:
  Serial.print("Numero de redes disponibles:");
  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("\tSeñal: ");
    Serial.print(WiFi.RSSI(thisNet));
    Serial.print(" dBm");
    Serial.print("\tEncriptacion: ");
    Serial.println(WiFi.encryptionType(thisNet));
  }
}

Ejemplo para abrir una red

El programa siguiente muestra cómo iniciar una conexión con una red abierta llamada "yourNetwork".

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

 char ssid[] = "yourNetwork";     // nombre de su red
 int status = WL_IDLE_STATUS;     // el estado de la radio Wi-Fi

 void setup() {
   // initializa la conexion serie:
   Serial.begin(9600);

   // intenta conectar con una red abierta:
   Serial.println("Intentando conectar con una red abierto...");
   status = WiFi.begin(ssid);

   // si no puede conectar, se detiene:
   if ( status != WL_CONNECTED) {
     Serial.println("No se puede conectar al Wifi");
     while(true);
   }
   // si se conecta :
   else {
       Serial.print("Conectado a la red");
   }
 }

 void loop() {
   // no hace nada
 }
  
Ejemplo de red WPA

El siguiente ejemplo muestra cómo conectarse a una WPA / WPA2 Personal encriptacion con nombre de red "yourNetwork" y con la contraseña "12345678".

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

 char ssid[] = "yourNetwork";     //  su red SSID (nombre)
 char pass[] = "12345678";    // su password de red
 int status = WL_IDLE_STATUS;     // el estado de la radio Wifi

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

   // intenta conectarse con encriptacion WPA2:
   Serial.println("Intentando conectar con red WPA...");
   status = WiFi.begin(ssid, pass);

   // si no se consigue, detener:
   if ( status != WL_CONNECTED) {
     Serial.println("No se cosigue una conexión");
     while(true);
   }
   // si se conecta, imprime informacion acerca de la conexion
   else {
     Serial.println("Conectado a la red");
   }
 }

 void loop() {
   // no hace nada
 }

Ejemplo de red WEP

Lo más probable es que el router tenga un diálogo de configuración similar al de abajo para generar la clave WEP basada en una contraseña ASCII:


Si usted no tiene acceso a las herramientas administrativas de su router, consulte a su administrador de red.

Cada clave tiene de 10 o 26 dígitos hexadecimales (40 o 128 bits) y se combina con un número de clave. Por ejemplo, una clave de 40 bits, ABBADEAF01 funcionará, pero no funcionará ABBADEAF (demasiado corto) y ABBAISDEAF no funcionará (I y S no son caracteres hexadecimales) .vFor de 128 bits, se necesita una cadena que es de 26 caracteres de longitud. D0D0DEADF00DABBADEAFBEADED funcionará porque es 26 caracteres, todos en el rango de 0-9, A-F.

Nota: WEP proporciona un mecanismo de cifrado de base, pero puede ser crakeado. Si necesita una fuerte encriptación de la red, se recomienda que utilice WPA.

El siguiente ejemplo muestra cómo conectarse a una red WEP cifrada llamada "yourNetwork" con una clave hexadecimal "ABBADEAF01", y una clave de índice 0.

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

 char ssid[] = "yourNetwork";     //  su red SSID (nombre)
 char key[] = "ABBADEAF01";    // su clave de red
 int keyIndex = 0;            //su numero de clave Index
 int status = WL_IDLE_STATUS;     //el estado de radio Wifi

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

   // intenta conectar usando encriptacion WEP:
   Serial.println("Intentando conectar con una red WEP...");
   status = WiFi.begin(ssid, keyIndex, key);

   // si no se conecta, detener:
   if ( status != WL_CONNECTED) {
     Serial.println("No se consigue una conexion wifi");
     while(true);
   }
   // si se conecta, imprimir la informacion de la conexion:
   else {
     Serial.println("Conectado a la red");
   }
 }

 void loop() {
   // do nothing
 }
  

SPI

Arduino se comunica con el escudo mediante el bus SPI. Esto es en los pines digitales 11, 12 y 13 en el Uno y los pines 50, 51, y 52 en los Mega. En ambas placas, el pin 10 se utiliza como SS. En los Mega, el pin de hardware SS, el 53, no se utiliza, pero debe mantenerse como una salida o la interfaz SPI no funcionará.

Tutoriales

A continuación una lista de tutoriales que le ayudarán en cosas muy interesantes:

Interact with Google Calendar (Interactuar con Google Calendar) - Este ejemplo muestra cómo hacer peticiones a Google Calendar utilizando un escudo WiFi101.

Weather audio notifier (Notificador tiempo audio) - En este ejemplo, la información del clima de openweathermap.org se utiliza para mostrar la información meteorológica actual.

Upload data to Thingspeak (Cargar datos en Thingspeak) - Enviar una transmisión en directo de los valores de luz y temperatura del entorno con ThingSpeak.com.

Siguientes pasos

Consulte la página de la biblioteca WiFi 101 para obtener más información sobre la funcionalidad delescudo, así como otros ejemplos.


1 comentario:

  1. Cada clave tiene de 10 o 26 dígitos hexadecimales (40 o 128 bits) y se combina con un número de clave. Por ejemplo, una clave de 40 bits. https://consejoscomunales.net/cultura-chachapoyas/

    ResponderEliminar