Diferencia entre revisiones de «WebClientRepeating»

De ArduWiki
Saltar a: navegación, buscar
(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++">
/*
 
This sketch connects to a a web server and makes a request
 
using a Wiznet Ethernet shield. You can use the Arduino Ethernet shield, or
 
the Adafruit Ethernet shield, either one will work, as long as it's got
 
a Wiznet Ethernet module on board.
 
 
This example uses DNS, by assigning the Ethernet client with a MAC address,
 
IP address, and DNS address.
 
 
Circuit:
 
* Ethernet shield attached to pins 10, 11, 12, 13
 
 
created 19 Apr 2012
 
by Tom Igoe
 
modified 21 Jan 2014
 
by Federico Vanzati
 
 
http://www.arduino.cc/en/Tutorial/WebClientRepeating
 
This code is in the public domain.
 
 
*/
 
 
 
#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;             // last time you connected to the server, in milliseconds
+
unsigned long lastConnectionTime = 0;               //Ultima conexion
const unsigned long postingInterval = 10L * 1000L; // delay between updates, in milliseconds
+
const unsigned long postingInterval = 10L * 1000L;   //Retardo entre actualizaciones
// the "L" is needed to use long type numbers
 
  
 
void setup() {
 
void setup() {
 
   Serial.begin(9600);
 
   Serial.begin(9600);
 
   delay(1000);
 
   delay(1000);
  // start the Ethernet connection using a fixed IP address and DNS server:
+
   Ethernet.begin(mac, ip, myDns);             //Inicia conexion Ethernet
   Ethernet.begin(mac, ip, myDns);
+
   Serial.print("Mi direccion IP: ");
  //print the Ethernet board/shield's IP address:
 
   Serial.print("My IP address: ");
 
 
   Serial.println(Ethernet.localIP());
 
   Serial.println(Ethernet.localIP());
 
}
 
}
  
 
void loop() {
 
void loop() {
  // if there's incoming data from the net connection.
 
  // send it out the serial port.  This is for debugging
 
  // purposes only:
 
 
   if (client.available()) {
 
   if (client.available()) {
 
       char c = client.read();
 
       char c = client.read();
 
       Serial.write(c);
 
       Serial.write(c);
 
   }
 
   }
  // if ten seconds have passed since your last connection,
 
  // then connect again and send data:
 
 
   if (millis() - lastConnectionTime > postingInterval) {
 
   if (millis() - lastConnectionTime > postingInterval) {
 
       httpRequest();
 
       httpRequest();
Línea 66: Línea 37:
 
}
 
}
  
// this method makes a HTTP connection to the server:
 
 
void httpRequest() {
 
void httpRequest() {
  //close any connection before send a new request.
+
   client.stop(); //Cierra conexion y libera socket
  //This will free the socket on the WiFi shield
 
   client.stop();
 
 
 
  // if there's a successful connection:
 
 
   if (client.connect(server, 80)) {
 
   if (client.connect(server, 80)) {
       Serial.println("connecting...");
+
       Serial.println("conectando...");
      // send the HTTP GET request:
+
       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();
      // note the time that the connection was made:
 
 
       lastConnectionTime = millis();
 
       lastConnectionTime = millis();
 
   }else{
 
   }else{
      // if you couldn't make a connection:
+
       Serial.println("conexion fallo.");
       Serial.println("connection failed");
 
 
   }
 
   }
 
}
 
}
Línea 91: Línea 54:
  
 
== Vea también ==
 
== Vea también ==
<categorytree mode=all>Libreria Ehernet</categorytree>
+
<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 18: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


Referencias externas