Diferencia entre revisiones de «WebServer»

De ArduWiki
Saltar a: navegación, buscar
(Ejemplo)
 
Línea 34: Línea 34:
  
 
void loop() {
 
void loop() {
   EthernetClient client = server.available();    //Esperando algun cliente
+
   EthernetClient client = server.available();    //Esperando algún cliente
 
   if (client) {
 
   if (client) {
 
       Serial.println("Nuevo cliente");
 
       Serial.println("Nuevo cliente");
       boolean currentLineIsBlank = true;
+
       boolean blanco = true;
 
       while (client.connected()) {
 
       while (client.connected()) {
 
         if (client.available()) {
 
         if (client.available()) {
 
             char c = client.read();
 
             char c = client.read();
 
             Serial.write(c);
 
             Serial.write(c);
            //if you've gotten to the end of the line (received a newline
+
             if (c == '\n' && blanco) {
            //character) and the line is blank, the http request has ended,
+
               client.println("HTTP/1.1 200 OK");       //Envia respuesta estandar
            //so you can send a reply
 
             if (c == '\n' && currentLineIsBlank) {
 
              //send a standard http response header
 
               client.println("HTTP/1.1 200 OK");
 
 
               client.println("Content-Type: text/html");
 
               client.println("Content-Type: text/html");
               client.println("Connection: close");    //the connection will be closed after completion of the response
+
               client.println("Connection: close");    //Cierra la conexion luego de completar
               client.println("Refresh: 5");            //refresh the page automatically every 5 sec
+
               client.println("Refresh: 5");            //Refresca pagina automaticamente cada 5 sec
 
               client.println();
 
               client.println();
 
               client.println("<!DOCTYPE HTML>");
 
               client.println("<!DOCTYPE HTML>");
               client.println("<html>");
+
               client.println("<html><body>");
               //output the value of each analog input pin
+
               //Lee todo los puertos análogos
               for (byte analogChannel = 0; analogChannel < 6; analogChannel++) {
+
               for (byte pin=0; pin<6; pin++) {
                   int sensorReading = analogRead(analogChannel);
+
                   int sensorReading = analogRead(pin);
 
                   client.print("analog input ");
 
                   client.print("analog input ");
                   client.print(analogChannel);
+
                   client.print(pin);
 
                   client.print(" is ");
 
                   client.print(" is ");
 
                   client.print(sensorReading);
 
                   client.print(sensorReading);
 
                   client.println("<br />");
 
                   client.println("<br />");
 
               }
 
               }
               client.println("</html>");
+
               client.println("</body></html>");
 
               break;
 
               break;
 
             }
 
             }
 
             if (c == '\n') {
 
             if (c == '\n') {
               //you're starting a new line
+
               blanco = true;
              currentLineIsBlank = true;
 
 
             }else if (c != '\r') {
 
             }else if (c != '\r') {
               // you've gotten a character on the current line
+
               blanco = false;
              currentLineIsBlank = false;
 
 
             }
 
             }
 
         }
 
         }
 
       }
 
       }
      //give the web browser time to receive the data
 
 
       delay(1);
 
       delay(1);
       client.stop();     //Cierra conexion
+
       client.stop();                 //Cierra conexion del cliente
       Serial.println("client disconnected");
+
       Serial.println("cliente desconectado.");
 
   }
 
   }
 
}
 
}

Revisión actual del 20:39 30 may 2019

En este ejemplo, con Ethernet Shield y Arduino se crea un servidor web simple. Con la biblioteca Ethernet, su dispositivo podrá responder a una solicitud HTTP. Después de abrir un navegador y navegar a la dirección IP de su escudo Ethernet, su Arduino responderá con HTML para que un navegador muestre los valores de entrada de los seis pines analógicos.

Ejemplo

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };   //Asignar MAC al modulo
IPAddress ip(192, 168, 1, 177);                        //Asignar IP al servidor

//Ethernet shield attached to pins 10, 11, 12, 13
//Analog inputs attached to pins A0 through A5 (optional)
EthernetServer server(80);                             //Inicializa Ethernet

void setup() {
   Serial.begin(9600);
   Serial.println("Ejemplo Servidor Web");
   Ethernet.begin(mac, ip);                 //Inicializa Ethernet

   // Check for Ethernet hardware present
   if (Ethernet.hardwareStatus() == EthernetNoHardware) {
      Serial.println("Modulo Ethernet no encointrado. No podemos hacer nada sin hardware.");
      while (true) {
         delay(1);    //do nothing, no point running without Ethernet hardware
      }
   }
   if (Ethernet.linkStatus() == LinkOFF) {
      Serial.println("Conecta el cable RJ-45 en el modulo.");
   }
   server.begin();                        //Inicializa servidor
   Serial.print("El servidor este en IP: ");
   Serial.println(Ethernet.localIP());
}

void loop() {
   EthernetClient client = server.available();    //Esperando algún cliente
   if (client) {
      Serial.println("Nuevo cliente");
      boolean blanco = true;
      while (client.connected()) {
         if (client.available()) {
            char c = client.read();
            Serial.write(c);
            if (c == '\n' && blanco) {
               client.println("HTTP/1.1 200 OK");       //Envia respuesta estandar
               client.println("Content-Type: text/html");
               client.println("Connection: close");     //Cierra la conexion luego de completar
               client.println("Refresh: 5");            //Refresca pagina automaticamente cada 5 sec
               client.println();
               client.println("<!DOCTYPE HTML>");
               client.println("<html><body>");
               //Lee todo los puertos análogos
               for (byte pin=0; pin<6; pin++) {
                   int sensorReading = analogRead(pin);
                   client.print("analog input ");
                   client.print(pin);
                   client.print(" is ");
                   client.print(sensorReading);
                   client.println("<br />");
               }
               client.println("</body></html>");
               break;
            }
            if (c == '\n') {
               blanco = true;
            }else if (c != '\r') {
               blanco = false;
            }
         }
      }
      delay(1);
      client.stop();                  //Cierra conexion del cliente
      Serial.println("cliente desconectado.");
   }
}

Vea también


Referencias