Wifi Repetidas llamadas

Este ejemplo muestra cómo realizar peticiones HTTP reptidas usando un  Escudo WiFi101 o una placa MKR1000. Se conecta a http://www.arduino.cc/latest.txt. El contenido de la página se puede ver a través de la ventana del monitor serie de Arduino Software (IDE).

Este ejemplo está escrito para una red cifrada WPA. Para la WEP o WPA, cambie Wifi.begin () en consecuencia.

Hardware necesario

Escudo Arduino Wifi
Placa Arduino o Genuino Zero
o
Placa MKR1000

Circuito

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

Usted debe tener acceso a una red inalámbrica 802.11b/g que se conecte a internet para este ejemplo. Tendrá que cambiar la configuración de red en el programa para que se corresponda con su red SSID particular.

Para redes que utilizan WPA / WPA2 Personal, necesita el SSID y la contraseña. El escudo no se conecta a las redes que utilizan el cifrado WPA2 Enterprise. 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.


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


Código


// Repetición de llamadas a cliente Web Wifi 

// Este programa se conecta a un servidor de una red y hace una solicitud 
// usando un escudo Arduino Wifi. 

// Circuito: 
// * Escudo WiFi conectado a los pines SPI y al pin 7 

// Creado el 23 de Abril de 2012 
// modificado el 31 de de Mayo de 2012 por Tom Igoe 
// modificado el 13 de Enero de 2014 por Federico Vanzati
// http://arduino.cc/en/Tutorial/WifiWebClientRepeating 

// Este código es de dominio público.

#include <SPI.h>
#include <WiFi101.h>
 
char ssid[] = "yourNetwork";      //  your network SSID (name)
char pass[] = "secretPassword";   // your network password
int keyIndex = 0;            // your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;

// Initializa la biblioteca client Wifi
WiFiClient client;

// direcion del servidor:
char server[] = "www.arduino.cc";
//Direccion IP del servidor (64,131,82,241);

unsigned long lastConnectionTime = 0;            // última vez que se conecto al servidor, en milisegundos
const unsigned long postingInterval = 10L * 1000L; // tiempo entre actualizaciones, en milisegundos

void setup() {
   // Inicializar el puerto serie y esperar a que se abra el puerto:
  Serial.begin(9600);
  while (!Serial) {
    ; // Espera para que el puerto serie se conecte. 
    // Necesario para el puerto USB nativo solamente
  }

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

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

    // espera 10 segundos para la conexión:
    delay(10000);
  }
  // ahora eta conectado, puede impimir su estado:
  printWifiStatus();
}

void loop() {
 // Si hay bytes entrantes disponibles 
  // desde el servidor, leerlos e imprimirlos:
  while (client.available()) {
    char c = client.read();
    Serial.write(c);
  }

  // si han pasado 20 segundos desde la ultima conexion,
  // conectar de nuevo y enviar los datos:
  if (millis() - lastConnectionTime > postingInterval) {
    httpRequest();
  }

}

// este método hace una conexión HTTP con el servidor:
void httpRequest() {
  // Cerrar cualquier conexión antes de enviar una nueva solicitud. 
  // esto liberará el conector del escudo WiFi
  client.stop();

  // si la conex´on se hace con exito:
  if (client.connect(server, 80)) {
    Serial.println("Conectando...");
    // send the HTTP PUT request:
    client.println("GET /latest.txt HTTP/1.1");
    client.println("Host: www.arduino.cc");
    client.println("User-Agent: ArduinoWiFi/1.1");
    client.println("Conexión errada");
    client.println();

    // tenga en cuenta el momento en que se realizó la conexión:
    lastConnectionTime = millis();
  }
  else {
    // si no se puede conectar:
    Serial.println("Fallo de conexión");
  }
}


void printWifiStatus() {
  // imprime el SSID de su red conectada:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // imprimir la direccion IP del escudo WiFi:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // imprime la potencia de la señal recibida:
  long rssi = WiFi.RSSI();
  Serial.print("Potencia de la señal (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}



1 comentario:

  1. Usted debe tener acceso a una red inalámbrica 802.11b/g que se conecte a internet para este ejemplo. Tendrá que cambiar la configuración de red en el programa para que se corresponda con su red SSID particular. https://consejoscomunales.net/cultura-tiahuanaco/

    ResponderEliminar