Diferencia entre revisiones de «WebServer»

De ArduWiki
Saltar a: navegación, buscar
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 algun 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 currentLineIsBlank = true;
 
       boolean currentLineIsBlank = true;
 
       while (client.connected()) {
 
       while (client.connected()) {
Línea 94: Línea 89:
  
 
[[Category:Ejemplos]]
 
[[Category:Ejemplos]]
 +
[[Category:Libreria Ethernet]]

Revisión del 20:17 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 algun cliente
   if (client) {
      Serial.println("Nuevo cliente");
      boolean currentLineIsBlank = true;
      while (client.connected()) {
         if (client.available()) {
            char c = client.read();
            Serial.write(c);
            //if you've gotten to the end of the line (received a newline
            //character) and the line is blank, the http request has ended,
            //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("Connection: close");     //the connection will be closed after completion of the response
               client.println("Refresh: 5");            //refresh the page automatically every 5 sec
               client.println();
               client.println("<!DOCTYPE HTML>");
               client.println("<html>");
               //output the value of each analog input pin
               for (byte analogChannel = 0; analogChannel < 6; analogChannel++) {
                   int sensorReading = analogRead(analogChannel);
                   client.print("analog input ");
                   client.print(analogChannel);
                   client.print(" is ");
                   client.print(sensorReading);
                   client.println("<br />");
               }
               client.println("</html>");
               break;
            }
            if (c == '\n') {
               //you're starting a new line
               currentLineIsBlank = true;
            }else if (c != '\r') {
               // you've gotten a character on the current line
               currentLineIsBlank = false;
            }
         }
      }
      //give the web browser time to receive the data
      delay(1);
      client.stop();     //Cierra conexion
      Serial.println("client disconnected");
   }
}

Vea también


Referencias