WebClientRepeating

De ArduWiki
Revisión del 12:38 20 jun 2018 de Jopapa (Discusión | contribuciones) (Página creada con «== Web Client Repeating == Este ejemplo muestra cómo realizar solicitudes HTTP repetidas utilizando un escudo Ethernet. Este ejemplo utiliza DNS, asignando al cliente Eth...»)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

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.

</pre> /*

 Repeating Web client
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.
*/
  1. include <SPI.h>
  2. include <Ethernet.h>

// assign a MAC address for the ethernet controller. // fill in your address here: byte mac[] = {

 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: IPAddress myDns(1, 1, 1, 1);

// initialize the library instance: EthernetClient client;

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() {

 // start serial port:
 Serial.begin(9600);
 while (!Serial) {
   ; // wait for serial port to connect. Needed for native USB port only
 }
 // give the ethernet module time to boot up:
 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");
 }

} </pre>