WebClientRepeating
De ArduWiki
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