Diferencia entre revisiones de «WebClientRepeating»
De ArduWiki
(→Referencias) |
(→Codigo) |
||
(No se muestran 5 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
− | |||
− | |||
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. | 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 == | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
#include <SPI.h> | #include <SPI.h> | ||
#include <Ethernet.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 | |
− | byte mac[] = { | + | IPAddress ip(192, 168, 1, 177); //Asigna un IP libre |
− | + | IPAddress myDns(1, 1, 1, 1); //Asigna tu servidor DNS | |
− | }; | ||
− | // | ||
− | |||
− | IPAddress ip(192, 168, 1, 177); | ||
− | |||
− | // | ||
− | IPAddress myDns(1, 1, 1, 1); | ||
− | + | EthernetClient client; //Inicializa cliente | |
− | EthernetClient client; | ||
char server[] = "www.arduino.cc"; | char server[] = "www.arduino.cc"; | ||
//IPAddress server(64,131,82,241); | //IPAddress server(64,131,82,241); | ||
− | unsigned long lastConnectionTime = 0; | + | unsigned long lastConnectionTime = 0; //Ultima conexion |
− | const unsigned long postingInterval = 10L * 1000L; // | + | const unsigned long postingInterval = 10L * 1000L; //Retardo entre actualizaciones |
− | |||
void setup() { | 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() { | void loop() { | ||
− | + | if (client.available()) { | |
− | + | char c = client.read(); | |
− | + | Serial.write(c); | |
− | + | } | |
− | + | if (millis() - lastConnectionTime > postingInterval) { | |
− | + | httpRequest(); | |
− | + | } | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | |||
void 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."); | |
− | + | } | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Vea también == | == Vea también == | ||
+ | <categorytree mode=all>Libreria Ethernet</categorytree> | ||
+ | |||
+ | == Referencias externas == | ||
+ | * [http://www.arduino.cc/en/Tutorial/WebClientRepeating Web Client Repeating] | ||
− | |||
[[Category:Ejemplos]] | [[Category:Ejemplos]] | ||
[[Category:Libreria Ethernet]] | [[Category:Libreria Ethernet]] |
Revisión actual del 22:55 30 may 2019
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