Wifi Servidor Web

En este ejemplo, va a utilizar su escudo  WiFi101 y la placa Arduino o Genuino Zero, o una placa MKR1000, para crear un servidor Web. Usando la biblioteca WiFi, el dispositivo será capaz de responder a una petición HTTP recibida de la conexión Wi-Fi. Después de abrir un navegador y navegar con su escudo WiFi o la dirección IP del MKR1000, su placa responderá con  un navegador HTML para mostrar los valores de entrada de los seis pines analógicos.

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

Hardware necesario

Escudo Wifi101 Arduino
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


// Servidor Web WiFi  

// Un sencillo servidor web que muestra el valor de los pines de entrada 
// analógica. usando un escudo WiFi. Este ejemplo está escrito para una 
// red cifrada WPA. Para WEP o WPA, cambiar Wifi.begin () llamandolo 
// en consecuencia. 

// Circuito: 
// Escudo Wi-Fi conectado
// Las entradas analógicas conectadas a los pines A0 a A5 (opcional) 

// 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 red
int keyIndex = 0;                 // su clave numero Index (solo necesario para WEP)

int status = WL_IDLE_STATUS;

WiFiServer server(80);

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

  // comprueba la presencia del escudo:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("EscudoWiFi 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);
  }
  server.begin();
  // ahora esta conectado, puede imprimir su estado:
  printWifiStatus();
}


void loop() {
  // escuchando clientes entrantes
  WiFiClient client = server.available();
  if (client) {
    Serial.println("Nuevo cliente");
    // una petición http termina con una línea en blanco
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
    // Si ha llegado al final de la línea (recibido una nueva línea 
    // carácter) y la línea está en blanco, la petición HTTP ha 
    // terminado, por lo que puede enviar una respuesta
        if (c == '\n' && currentLineIsBlank) {
          // enviar un encabezado de respuesta HTTP estándar
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Conexión cerrada");  // la conexión se cierra después de la finalización de la respuesta
          client.println("Refreco: 5");  // actualizar la página automáticamente cada 5 segundos
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          // salida el valor de cada pin de entrada analógica
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            int sensorReading = analogRead(analogChannel);
            client.print("La entrada analogica ");
            client.print(analogChannel);
            client.print(" es ");
            client.print(sensorReading);
            client.println("<br />");
          }
          client.println("</html>");
          break;
        }
        if (c == '\n') {
          // usted está comenzando una nueva línea
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // usted ha llegado a un caracter en la línea actual
          currentLineIsBlank = false;
        }
      }
    }
    // dar tiempo al navegador web para recibir los datos
    delay(1);

    // cerrar la conexion:
    client.stop();
    Serial.println("Cliente desconectado");
  }
}


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

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

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



1 comentario:

  1. En este ejemplo, va a utilizar su escudo WiFi101 y la placa Arduino o Genuino Zero, o una placa MKR1000, para crear un servidor Web. https://consejoscomunales.net/rebeliones-indigenas-del-siglo-xviii/

    ResponderEliminar