Diferencia entre revisiones de «WebServer»

De ArduWiki
Saltar a: navegación, buscar
(Ejemplo)
 
(No se muestra una edición intermedia del mismo usuario)
Línea 1: Línea 1:
 
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.
 
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 ==
 
<syntaxhighlight lang="c++">
 
<syntaxhighlight lang="c++">
 
#include <SPI.h>
 
#include <SPI.h>
 
#include <Ethernet.h>
 
#include <Ethernet.h>
  
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
+
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };   //Asignar MAC al modulo
IPAddress ip(192, 168, 1, 177);
+
IPAddress ip(192, 168, 1, 177);                       //Asignar IP al servidor
  
 
//Ethernet shield attached to pins 10, 11, 12, 13
 
//Ethernet shield attached to pins 10, 11, 12, 13
 
//Analog inputs attached to pins A0 through A5 (optional)
 
//Analog inputs attached to pins A0 through A5 (optional)
EthernetServer server(80);
+
EthernetServer server(80);                             //Inicializa Ethernet
  
 
void setup() {
 
void setup() {
 
   Serial.begin(9600);
 
   Serial.begin(9600);
   Serial.println("Ethernet WebServer Example");
+
   Serial.println("Ejemplo Servidor Web");
 
+
   Ethernet.begin(mac, ip);                 //Inicializa Ethernet
  // start the Ethernet connection and the server:
 
   Ethernet.begin(mac, ip);
 
  
 
   // Check for Ethernet hardware present
 
   // Check for Ethernet hardware present
 
   if (Ethernet.hardwareStatus() == EthernetNoHardware) {
 
   if (Ethernet.hardwareStatus() == EthernetNoHardware) {
       Serial.println("Ethernet shield was not found. Sorry, can't run without hardware. :(");
+
       Serial.println("Modulo Ethernet no encointrado. No podemos hacer nada sin hardware.");
 
       while (true) {
 
       while (true) {
 
         delay(1);    //do nothing, no point running without Ethernet hardware
 
         delay(1);    //do nothing, no point running without Ethernet hardware
Línea 27: Línea 26:
 
   }
 
   }
 
   if (Ethernet.linkStatus() == LinkOFF) {
 
   if (Ethernet.linkStatus() == LinkOFF) {
       Serial.println("Ethernet cable is not connected.");
+
       Serial.println("Conecta el cable RJ-45 en el modulo.");
 
   }
 
   }
 
+
   server.begin();                       //Inicializa servidor
  //start the server
+
   Serial.print("El servidor este en IP: ");
   server.begin();
 
   Serial.print("server is at ");
 
 
   Serial.println(Ethernet.localIP());
 
   Serial.println(Ethernet.localIP());
 
}
 
}
  
 
void loop() {
 
void loop() {
  // listen for incoming clients
+
   EthernetClient client = server.available();   //Esperando algún cliente
   EthernetClient client = server.available();
 
 
   if (client) {
 
   if (client) {
       Serial.println("new client");
+
       Serial.println("Nuevo cliente");
      // an http request ends with a blank line
+
       boolean blanco = true;
       boolean currentLineIsBlank = 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.");
 
   }
 
   }
 
}
 
}
Línea 94: Línea 82:
  
 
[[Category:Ejemplos]]
 
[[Category:Ejemplos]]
 +
[[Category:Libreria Ethernet]]

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