Funciones Wifi - Clase Client

La clase client crea clientes que pueden conectarse a los servidores y enviar y recibir datos.

Client()
client es la clase base para todas las llamadas basadas en cliente WiFi. No se llama directamente, sino que invoca cada vez que se utiliza una función que depende de él.


FUNCIONES

WifiClient()

Descripción:
Crea un cliente que puede conectarse a una dirección IP de Internet y el puerto como se define en client.connect ().

Sintaxis:
WiFiClient()

Parámetros:
Ninguno

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

 char ssid[] = "myNetwork";          //  su red SSID (nombr)
 char pass[] = "myPassword";   // su password de red

 int status = WL_IDLE_STATUS;
 IPAddress server(74,125,115,105);  // Google

 // Initializa la biblioteca Client
 WiFiClient client;

 void setup() {
   Serial.begin(9600);
   Serial.println("Intentando conectar con una red WPA...");
   Serial.print("SSID: ");
   Serial.println(ssid);

   status = WiFi.begin(ssid, pass);
   if ( status != WL_CONNECTED) {
     Serial.println("No se consigue conexion wifi");
     // no hacer nada entonces:
     while(true);
   }
   else {
     Serial.println("Conectado a wifi");
     Serial.println("\nIniciando conexion...");
     // si se consigue una conexion, informar por el monitor serie:
     if (client.connect(server, 80)) {
       Serial.println("Conectado");
       // Make a HTTP request:
       client.println("GET /search?q=arduino HTTP/1.0");
       client.println();
     }
   }
 }

 void loop() {

 }
________________________________________________________________________

WifiSSLClient()

Descripción:
Esta clase le permite crear un cliente que siempre se conecta en SSL para la dirección IP y el puerto  especificados, incluso si client.connect () se utiliza en lugar de client.connectSSL (). Esto es útil si usted tiene una biblioteca que sólo acepta clientes normales, pero quiere forzarlo a utilizar SSL, manteniendo los mismos nombres de los métodos que el cliente no SSL.

Sintaxis:
WiFiSSLClient()

Parámetros:
Ninguno

Ejemplo:
// En este ejemplo se crea un objeto cliente que se conecta y  
// transfiere datos utilizando siempre SSL.

// Es compatible con los métodos normalmente relacionados // con las conexiones planas, como client.connect (host, puerto).

// Escrito por Arturo Guadalupi 
// última revisión de Noviembre del año 2015

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

char ssid[] = "yourNetwork"; //  su red SSID (nombr)
char pass[] = "secretPassword";    // su password de red (usada para WPA, o usada como clave para WEP)
int keyIndex = 0;            // su numero clave Index de red (solo necesario para WEP)

int status = WL_IDLE_STATUS;
// Si no desea utilizar DNS (y reducir el tamaño de su programa)
// utilice la IP numérica en lugar del nombre del servidor:
// Dirección IP del servidor (74125232128); 
// IP numérica para Google (sin DNS)
char server[] = "www.google.com";    // nombre de direccion Google (usando DNS)

// Inicializa la biblioteca client Ethernet
// con la dirección IP y el puerto del servidor
// al que desea conectarse (puerto 80 es por defecto para HTTP):
WiFiSSLClient client;

void setup() {
  //Initializa el puerto serie y espera a que se abra:
  Serial.begin(9600);
  while (!Serial) {
    ; // espera la conexion del puerto serie. Solo para el puerto USB nativo
  }

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

  // intenta conectarse a una red Wifi:
  while (status != WL_CONNECTED) {
    Serial.print("Intentando la conexion con SSID: ");
    Serial.println(ssid);
    // Se conecta 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 conexion:
    delay(10000);
  }
  Serial.println("Conectado a wifi");
  printWifiStatus();

  Serial.println("\nIniciando la conexion al servidor...");
  // si se conecta, informar por el monitor serie:
  if (client.connect(server, 443)) {
    Serial.println("Conectado al servidor");
    // Make a HTTP request:
    client.println("GET /search?q=arduino HTTP/1.1");
    client.println("Host: www.google.com");
    client.println("Conexion cerrada");
    client.println();
  }
}

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

  // si el servidor se desconecta, desconetar el cliente:
  if (!client.connected()) {
    Serial.println();
    Serial.println("Desconectado desde el servidor.");
    client.stop();

    // no hacer nada entonces:
    while (true);
  }
}


void printWifiStatus() {
  // imprimir el SSID de la red a la que esta conectado:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // imprimie la direccion IP del escudo WiFi
  IPAddress ip = WiFi.localIP();
  Serial.print("Direccion IP: ");
  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");
}
________________________________________________________________________

connected()

Descripción:
Si o no está conectado el cliente. Tenga en cuenta que un cliente se considera conectado si la conexión se ha cerrado, pero todavía hay datos leídos.

Sintaxis:
client.connected()

Parámetros:
Ninguno

Retornos:
Devuelve true si el cliente está conectado, false en caso contrario.

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

 char ssid[] = "myNetwork";          //  su red SSID (nombre)
 char pass[] = "myPassword";   // su password de red

 int status = WL_IDLE_STATUS;
 IPAddress server(74,125,115,105);  // Google

 // Initializa la biblioyeca Client
 WiFiClient client;

 void setup() {
   Serial.begin(9600);
   Serial.println("Intentando conectar con una red WPA...");
   Serial.print("SSID: ");
   Serial.println(ssid);

   status = WiFi.begin(ssid, pass);
   if ( status != WL_CONNECTED) {
     Serial.println("No se consigue una red wifi");
     // no hacer nada:
     while(true);
   }
   else {
     Serial.println("Conectado a wifi");
     Serial.println("\nIniciando conexion...");
     // si se conecta, informar po el monitor serie:
     if (client.connect(server, 80)) {
       Serial.println("connected");
       // Hace una peticion HTTP:
       client.println("GET /search?q=arduino HTTP/1.0");
       client.println();
     }
   }
 }

 void loop() {
    if (client.available()) {
     char c = client.read();
     Serial.print(c);
   }

   if (!client.connected()) {
     Serial.println();
     Serial.println("Desconectando.");
     client.stop();
     for(;;)
       ;
   }
 }
________________________________________________________________________

connect()

Descripción:
Conecta a la dirección IP y el puerto especificado en el constructor. El valor de retorno indica el éxito o el fracaso. connect () también es compatible con las búsquedas de DNS cuando se utiliza un nombre de dominio (por ejemplo: google.com).

Sintaxis:
client.connect(ip, port)

client.connect(URL, port)

Parámetros:
ip: la dirección IP a la que el cliente se conectará al (serie de 4 bytes)
URL: el nombre de dominio del cliente al que se conectará  (string, Por ejemplo:"arduino.cc ")

port: el puerto al que el cliente se conectará (int)

Retornos:
Devuelve true si la conexión se realiza correctamente, false en caso contrario.

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

 char ssid[] = "myNetwork";          //  su red SSID (nombre) 
 char pass[] = "myPassword";   // su password de red

 int status = WL_IDLE_STATUS;
 IPAddress server(74,125,115,105);  // Google

 // Initializa la biblioyeca Client
 WiFiClient client;

 void setup() {
   Serial.begin(9600);
   Serial.println("Intentando conectar con una red WPA...");
   Serial.print("SSID: ");
   Serial.println(ssid);

   status = WiFi.begin(ssid, pass);
   if ( status != WL_CONNECTED) {
     Serial.println("No se consigue una red wifi");
     // no hacer nada:
     while(true);
   }
   else {
     Serial.println("Conectado a wifi");
     Serial.println("\nIniciando conexion...");
     // si se conecta, informar po el monitor serie:
     if (client.connect(servername, 80)) {
       Serial.println("connected");
       // Hace una peticion HTTP:
       client.println("GET /search?q=arduino HTTP/1.0");
       client.println();
     }
   }
 }

 void loop() {
    if (client.available()) {
     char c = client.read();
     Serial.print(c);
   }

   if (!client.connected()) {
     Serial.println();
     Serial.println("Desconectando.");
     client.stop();
     for(;;)
       ;
   }
 }
________________________________________________________________________

connectSSL()

Descripción:
Conecta a la dirección IP y el puerto especificado en el constructor mediante el protocolo SSL. Se necesita el método connectSSL solo cuando el servidor proporciona conexiones HTTPS. Antes de utilizar este método, se necesita cargar el certificado SSL utilizado por el servidor en el Escudo WiFi 101 Arduino . El escudo viene ya cargado con los certificados y debe estar listo para su uso. Para cambiar o subir nuevos certificados SSL debe seguir los procedimientos que se ponen a disposición. connectSSL () también es compatible con las búsquedas de DNS cuando se utiliza un nombre de dominio (por ejemplo: google.com).

Sintaxis:
client.connectSSL(ip, port) 

client.connectSSL(URL, port)

Parámetros:
ip: la dirección IP a la que el cliente se conectará al (serie de 4 bytes)
URL: el nombre de dominio del cliente al que se conectará  (string, Por ejemplo:"arduino.cc ")

port: el puerto al que el cliente se conectará (int)

Retornos:
Devuelve true si la conexión se realiza correctamente, false en caso contrario.

Ejemplo:
// Este programa se conecta a un sitio web a través de una // conexión SSL usando un escudo WiFi.

 // Este ejemplo está escrito para una red mediante el cifrado WPA.
 Para WEP o WPA, cambiar  Wifi.begin () llamanslo en consecuencia.

 //Circuito:
 //* Escudo WiFi101 conectado

 // creado el 13 de Julio de 2010 por DLF (Metodo2 srl)
  // modificado el 31 de de Mayo de 2012 por Tom Igoe

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

 char ssid[] = "yourNetwork"; //  su red SSID (nombre)
 char pass[] = "secretPassword";    // su password de res (usar WPA, o usar como clave para WEP)
 int keyIndex = 0;            // su numero de clave Index (solo necesario para WEP)

 int status = WL_IDLE_STATUS;
 char server[] = "www.arduino.cc";    // nombre de direccion Arduino (usando DNS)

 // Inicializa la biblioteca Client Wifi
 // con la dirección IP y el puerto del servidor
 // al que desea conectarse (puerto 80 es por defecto para HTTP):
 WiFiClient client;

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

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

   // intenta conectar con una red Wifi:
   while (status != WL_CONNECTED) {
     Serial.print("Intentando conestar con SSID: ");
     Serial.println(ssid);
     // Conecta con 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 la conexion:
     delay(10000);
   }
   Serial.println("Conectado a wifi");

   Serial.println("\nIniciando la conexion con el servidor...");
   // si se conecta, informar por el puerto serie:
   if (client.connectSSL(server, 443)) {
     Serial.println("Conectado al servidor");
     // Make a HTTP request:
     client.println("GET /asciilogo.txt HTTP/1.1");
     client.println("Host: www.arduino.cc");
     client.println("Conexion cerrada");
     client.println();
     Serial.println("Peticion enviada");
   }
 }

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

   // si el servidor desconecta, detener el cliente:
   if (!client.connected()) {
     Serial.println();
     Serial.println("Desconectando del servidor.");
     client.stop();

     // no hacer nada:
     while (true);
   }
 }
________________________________________________________________________

write()

Descripción:
Escribe datos en el servidor al que el cliente está conectado.

Sintaxis:
client.write(data)

Parámetros:
data: el byte o char a escribir

Retornos:
byte: el número de caracteres escritos.
_____________________________________________________________

print()

Descripción:
Imprime datos al servidor al que un cliente está conectado. Imprime los números como una secuencia de dígitos, cada uno como un carácter ASCII (por ejemplo, el número 123 es enviado como los tres caracteres '1', '2', '3').

Sintaxis:
client.print(data) 

client.print(data, BASE)

Parámetros:
data: los datos a imprimir (char, byte, int, long o string)
BASE (opcional): la base en la que desea imprimir los números :

DEC para decimal (base 10), 
OCT para octal (base 8), 

HEX para hexadecimal (base 16).

Retornos:
byte: devuelve el número de bytes escritos
___________________________________________________________________

println()

Descripción:
Imprime datos, seguidos por un retorno de línea, al servidor al que un cliente está conectado. Imprime los números como una secuencia de dígitos, cada uno como un carácter ASCII (por ejemplo, el número 123 es enviado como los tres caracteres '1', '2', '3').

Sintaxis:
client.print(data) 

client.print(data, BASE)

Parámetros:
data: los datos a imprimir (char, byte, int, long o string)
BASE (opcional): la base en la que desea imprimir los números :

DEC para decimal (base 10), 
OCT para octal (base 8), 

HEX para hexadecimal (base 16).

Retornos:
byte: devuelve el número de bytes escritos

________________________________________________________________________

available()

Descripción:
Devuelve el número de bytes disponibles para la lectura (es decir, la cantidad de datos que se ha escrito para el cliente por el servidor al que está conectado).

Sintaxis:
client.available()

Parámetros:
Ninguno

Retornos:
el número de bytes disponibles

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

 char ssid[] = "yourNetwork"; //  su red SSID (nombre)
 char pass[] = "secretPassword";    // su password de res (usar WPA, o usar como clave para WEP)
 int keyIndex = 0;            // su numero de clave Index (solo necesario para WEP)

 int status = WL_IDLE_STATUS;
 char server[] = "www.arduino.cc";    // nombre de direccion Arduino (usando DNS)

 // Inicializa la biblioteca Client Wifi
 // con la dirección IP y el puerto del servidor
 // al que desea conectarse (puerto 80 es por defecto para HTTP):
 WiFiClient client;

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

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

   // intenta conectar con una red Wifi:
   while (status != WL_CONNECTED) {
     Serial.print("Intentando conestar con SSID: ");
     Serial.println(ssid);
     // Conecta con 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 la conexion:
     delay(10000);
   }
   Serial.println("Conectado a wifi");

   Serial.println("\nIniciando la conexion con el servidor...");
   // si se conecta, informar por el puerto serie:
   if (client.connectSSL(server, 443)) {
     Serial.println("Conectado al servidor");
     // Make a HTTP request:
     client.println("GET /asciilogo.txt HTTP/1.1");
     client.println("Host: www.arduino.cc");
     client.println("Conexion cerrada");
     client.println();
     Serial.println("Peticion enviada");
   }
 }

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

   // si el servidor desconecta, detener el cliente:
   if (!client.connected()) {
     Serial.println();
     Serial.println("Desconectando del servidor.");
     client.stop();

     // no hacer nada:
     while (true);
   }
 }
________________________________________________________________________

read()

Descripción:
Lee el siguiente byte recibido desde el servidor al que el cliente está conectado (después de la última llamada a read()).

Sintaxis:
client.read()

Parámetros:
Ninguno

Retornos:
El siguiente byte (o carácter), o -1 si no hay ninguno disponible.
________________________________________________________________________

flush()

Descripción:
Descarta cualquiera de los bytes que se han escrito para el cliente, pero aún no leídos.

Sintaxis:
client.flush()

Parámetros:
Ninguno

Retornos:
Ninguno
_______________________________________________________________________

stop()

Descripción:
Desconecta del servidor

Sintaxis:
client.stop()

Parámetros:
Ninguno

Retornos:
Ninguno


1 comentario:

  1. Esta clase le permite crear un cliente que siempre se conecta en SSL para la dirección IP y el puerto especificados, incluso si client.connect. https://consejoscomunales.net/cultura-chincha/

    ResponderEliminar