Diferencia entre revisiones de «WebServer»

De ArduWiki
Saltar a: navegación, buscar
(Página creada con «== Web Server == 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...»)
 
(Ejemplo)
 
(No se muestran 13 ediciones intermedias de 2 usuarios)
Línea 1: Línea 1:
== Web Server ==
+
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++">
 +
#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());
 +
}
  
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.
+
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.");
 +
  }
 +
}
 +
</syntaxhighlight>
 +
 
 +
== Vea también ==
 +
<categorytree mode=all>Libreria Ethernet</categorytree>
 +
 
 +
== Referencias ==
 +
 
 +
[[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