WebClientRepeating

De ArduWiki
Saltar a: navegación, buscar

Este ejemplo muestra cómo realizar solicitudes HTTP repetidas utilizando un escudo Ethernet. Este ejemplo utiliza DNS, asignando al cliente Ethernet una dirección MAC, una dirección IP y una dirección DNS. Se conecta a http://www.arduino.cc/latest.txt. El contenido de la página se puede ver a través de la ventana serie de Arduino.

Codigo

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

//Ethernet shield attached to pins 10, 11, 12, 13
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};  //Asigna una MAC al modulo
IPAddress ip(192, 168, 1, 177);   //Asigna un IP libre
IPAddress myDns(1, 1, 1, 1);      //Asigna tu servidor DNS

EthernetClient client;             //Inicializa cliente

char server[] = "www.arduino.cc";
//IPAddress server(64,131,82,241);

unsigned long lastConnectionTime = 0;                //Ultima conexion
const unsigned long postingInterval = 10L * 1000L;   //Retardo entre actualizaciones

void setup() {
   Serial.begin(9600);
   delay(1000);
   Ethernet.begin(mac, ip, myDns);             //Inicia conexion Ethernet
   Serial.print("Mi direccion IP: ");
   Serial.println(Ethernet.localIP());
}

void loop() {
   if (client.available()) {
      char c = client.read();
      Serial.write(c);
   }
   if (millis() - lastConnectionTime > postingInterval) {
      httpRequest();
   }
}

void httpRequest() {
   client.stop();  //Cierra conexion y libera socket
   if (client.connect(server, 80)) {
      Serial.println("conectando...");
      client.println("GET /latest.txt HTTP/1.1");   //Envia requerimiento HHTTP GET
      client.println("Host: www.arduino.cc");
      client.println("User-Agent: arduino-ethernet");
      client.println("Connection: close");
      client.println();
      lastConnectionTime = millis();
   }else{
      Serial.println("conexion fallo.");
   }
}

Vea también


Referencias externas