WebClientRepeating

De ArduWiki
Saltar a: navegación, buscar

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