Diferencia entre revisiones de «WebClientRepeating»
De ArduWiki
(→Vea también) |
(→Codigo) |
||
(No se muestran 2 ediciones intermedias del mismo usuario) | |||
Línea 3: | Línea 3: | ||
== Codigo == | == 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[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //Asigna una MAC al modulo | ||
IPAddress ip(192, 168, 1, 177); //Asigna un IP libre | IPAddress ip(192, 168, 1, 177); //Asigna un IP libre | ||
Línea 37: | Línea 16: | ||
//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); | Serial.begin(9600); | ||
delay(1000); | delay(1000); | ||
− | + | Ethernet.begin(mac, ip, myDns); //Inicia conexion Ethernet | |
− | Ethernet.begin(mac, ip, myDns); | + | Serial.print("Mi direccion IP: "); |
− | |||
− | Serial.print(" | ||
Serial.println(Ethernet.localIP()); | Serial.println(Ethernet.localIP()); | ||
} | } | ||
void loop() { | void loop() { | ||
− | |||
− | |||
− | |||
if (client.available()) { | if (client.available()) { | ||
char c = client.read(); | char c = client.read(); | ||
Serial.write(c); | Serial.write(c); | ||
} | } | ||
− | |||
− | |||
if (millis() - lastConnectionTime > postingInterval) { | if (millis() - lastConnectionTime > postingInterval) { | ||
httpRequest(); | httpRequest(); | ||
Línea 66: | Línea 37: | ||
} | } | ||
− | |||
void httpRequest() { | void httpRequest() { | ||
− | + | client.stop(); //Cierra conexion y libera socket | |
− | |||
− | client.stop(); | ||
− | |||
− | |||
if (client.connect(server, 80)) { | if (client.connect(server, 80)) { | ||
− | Serial.println(" | + | Serial.println("conectando..."); |
− | + | client.println("GET /latest.txt HTTP/1.1"); //Envia requerimiento HHTTP GET | |
− | client.println("GET /latest.txt HTTP/1.1"); | ||
client.println("Host: www.arduino.cc"); | client.println("Host: www.arduino.cc"); | ||
client.println("User-Agent: arduino-ethernet"); | client.println("User-Agent: arduino-ethernet"); | ||
client.println("Connection: close"); | client.println("Connection: close"); | ||
client.println(); | client.println(); | ||
− | |||
lastConnectionTime = millis(); | lastConnectionTime = millis(); | ||
}else{ | }else{ | ||
− | + | Serial.println("conexion fallo."); | |
− | Serial.println(" | ||
} | } | ||
} | } | ||
Línea 91: | Línea 54: | ||
== Vea también == | == Vea también == | ||
− | <categorytree mode=all>Libreria | + | <categorytree mode=all>Libreria Ethernet</categorytree> |
== Referencias externas == | == 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