Diferencia entre revisiones de «WebClientRepeating»

De ArduWiki
Saltar a: navegación, buscar
(Referencias)
Línea 1: Línea 1:
== Web Client Repeating ==
 
 
 
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++">
 
/*
 
/*
Línea 29: Línea 28:
 
#include <Ethernet.h>
 
#include <Ethernet.h>
  
// assign a MAC address for the ethernet controller.
+
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //Asigna una MAC al modulo
// fill in your address here:
+
IPAddress ip(192, 168, 1, 177);   //Asigna un IP libre
byte mac[] = {
+
IPAddress myDns(1, 1, 1, 1);      //Asigna tu servidor DNS
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
 
};
 
// fill in an available IP address on your network here,
 
// for manual configuration:
 
IPAddress ip(192, 168, 1, 177);
 
  
// fill in your Domain Name Server address here:
+
EthernetClient client;             //Inicializa cliente
IPAddress myDns(1, 1, 1, 1);
 
 
 
// initialize the library instance:
 
EthernetClient client;
 
  
 
char server[] = "www.arduino.cc";
 
char server[] = "www.arduino.cc";
Línea 52: Línea 42:
  
 
void setup() {
 
void setup() {
  // start serial port:
+
  Serial.begin(9600);
  Serial.begin(9600);
+
  delay(1000);
  while (!Serial) {
+
  // start the Ethernet connection using a fixed IP address and DNS server:
    ; // wait for serial port to connect. Needed for native USB port only
+
  Ethernet.begin(mac, ip, myDns);
  }
+
  //print the Ethernet board/shield's IP address:
 
+
  Serial.print("My IP address: ");
  // give the ethernet module time to boot up:
+
  Serial.println(Ethernet.localIP());
  delay(1000);
 
  // start the Ethernet connection using a fixed IP address and DNS server:
 
  Ethernet.begin(mac, ip, myDns);
 
  // print the Ethernet board/shield's IP address:
 
  Serial.print("My IP address: ");
 
  Serial.println(Ethernet.localIP());
 
 
}
 
}
  
 
void loop() {
 
void loop() {
  // if there's incoming data from the net connection.
+
  // if there's incoming data from the net connection.
  // send it out the serial port.  This is for debugging
+
  // send it out the serial port.  This is for debugging
  // purposes only:
+
  // 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,
  // if ten seconds have passed since your last connection,
+
  // then connect again and send data:
  // then connect again and send data:
+
  if (millis() - lastConnectionTime > postingInterval) {
  if (millis() - lastConnectionTime > postingInterval) {
+
      httpRequest();
    httpRequest();
+
  }
  }
 
 
 
 
}
 
}
  
 
// this method makes a HTTP connection to the server:
 
// this method makes a HTTP connection to the server:
 
void httpRequest() {
 
void httpRequest() {
  // close any connection before send a new request.
+
  //close any connection before send a new request.
  // This will free the socket on the WiFi shield
+
  //This will free the socket on the WiFi shield
  client.stop();
+
  client.stop();
 
 
  // if there's a successful connection:
 
  if (client.connect(server, 80)) {
 
    Serial.println("connecting...");
 
    // send the HTTP GET request:
 
    client.println("GET /latest.txt HTTP/1.1");
 
    client.println("Host: www.arduino.cc");
 
    client.println("User-Agent: arduino-ethernet");
 
    client.println("Connection: close");
 
    client.println();
 
  
    // note the time that the connection was made:
+
  // if there's a successful connection:
    lastConnectionTime = millis();
+
  if (client.connect(server, 80)) {
  } else {
+
      Serial.println("connecting...");
    // if you couldn't make a connection:
+
      // send the HTTP GET request:
    Serial.println("connection failed");
+
      client.println("GET /latest.txt HTTP/1.1");
  }
+
      client.println("Host: www.arduino.cc");
 +
      client.println("User-Agent: arduino-ethernet");
 +
      client.println("Connection: close");
 +
      client.println();
 +
      // note the time that the connection was made:
 +
      lastConnectionTime = millis();
 +
  }else{
 +
      // if you couldn't make a connection:
 +
      Serial.println("connection failed");
 +
  }
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>

Revisión del 18:43 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

/*
 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 <Ethernet.h>

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;             // last time you connected to the server, in milliseconds
const unsigned long postingInterval = 10L * 1000L; // delay between updates, in milliseconds
// the "L" is needed to use long type numbers

void setup() {
   Serial.begin(9600);
   delay(1000);
   // start the Ethernet connection using a fixed IP address and DNS server:
   Ethernet.begin(mac, ip, myDns);
   //print the Ethernet board/shield's IP address:
   Serial.print("My IP address: ");
   Serial.println(Ethernet.localIP());
}

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()) {
      char c = client.read();
      Serial.write(c);
   }
   // if ten seconds have passed since your last connection,
   // then connect again and send data:
   if (millis() - lastConnectionTime > postingInterval) {
      httpRequest();
   }
}

// this method makes a HTTP connection to the server:
void httpRequest() {
   //close any connection before send a new request.
   //This will free the socket on the WiFi shield
   client.stop();

   // if there's a successful connection:
   if (client.connect(server, 80)) {
      Serial.println("connecting...");
      // send the HTTP GET request:
      client.println("GET /latest.txt HTTP/1.1");
      client.println("Host: www.arduino.cc");
      client.println("User-Agent: arduino-ethernet");
      client.println("Connection: close");
      client.println();
      // note the time that the connection was made:
      lastConnectionTime = millis();
   }else{
      // if you couldn't make a connection:
      Serial.println("connection failed");
   }
}

Vea también

Referencias externas