Diferencia entre revisiones de «WebClient»

De ArduWiki
Saltar a: navegación, buscar
Línea 10: Línea 10:
  
 
  Circuit:
 
  Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13
 
  
 
  created 18 Dec 2009
 
  created 18 Dec 2009
Línea 22: Línea 21:
 
#include <Ethernet.h>
 
#include <Ethernet.h>
  
// Enter a MAC address for your controller below.
+
//Ethernet shield attached to pins 10, 11, 12, 13
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
+
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };   //MAC del modulo
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
+
IPAddress ip(192, 168, 0, 177);                       //IP del modulo
// if you don't want to use DNS (and reduce your sketch size)
+
char server[] = "www.google.com";                     //Google (usar DNS)
// use the numeric IP instead of the name for the server:
+
//IPAddress server(74,125,232,128);                    //IP de Google (no usar DNS)
//IPAddress server(74,125,232,128); // numeric IP for Google (no DNS)
 
char server[] = "www.google.com";   // name address for Google (using DNS)
 
  
// Set the static IP address to use if the DHCP fails to assign
+
EthernetClient client;                                 //Iniciar cliente
IPAddress ip(192, 168, 0, 177);
 
 
 
// Initialize the Ethernet client library
 
// with the IP address and port of the server
 
// that you want to connect to (port 80 is default for HTTP):
 
EthernetClient client;
 
  
 
void setup() {
 
void setup() {
  // Open serial communications and wait for port to open:
+
  Serial.begin(9600);
  Serial.begin(9600);
+
  // start the Ethernet connection:
  while (!Serial) {
+
  if (Ethernet.begin(mac) == 0) {
    ; // wait for serial port to connect. Needed for native USB port only
+
      Serial.println("Failed to configure Ethernet using DHCP");
  }
+
      // try to congifure using IP address instead of DHCP:
 
+
      Ethernet.begin(mac, ip);
  // start the Ethernet connection:
+
  }
  if (Ethernet.begin(mac) == 0) {
+
  // give the Ethernet shield a second to initialize:
    Serial.println("Failed to configure Ethernet using DHCP");
+
  delay(1000);
    // try to congifure using IP address instead of DHCP:
+
  Serial.println("connecting...");
    Ethernet.begin(mac, ip);
+
  // if you get a connection, report back via serial:
  }
+
  if (client.connect(server, 80)) {
  // give the Ethernet shield a second to initialize:
+
      Serial.println("connected");
  delay(1000);
+
      // Make a HTTP request:
  Serial.println("connecting...");
+
      client.println("GET /search?q=arduino HTTP/1.1");
 
+
      client.println("Host: www.google.com");
  // if you get a connection, report back via serial:
+
      client.println("Connection: close");
  if (client.connect(server, 80)) {
+
      client.println();
    Serial.println("connected");
+
  }else {
    // Make a HTTP request:
+
    // if you didn't get a connection to the server:
    client.println("GET /search?q=arduino HTTP/1.1");
+
    Serial.println("connection failed");
    client.println("Host: www.google.com");
+
  }
    client.println("Connection: close");
 
    client.println();
 
  } else {
 
    // if you didn't get a connection to the server:
 
    Serial.println("connection failed");
 
  }
 
 
}
 
}
  
 
void loop() {
 
void loop() {
  // if there are incoming bytes available
+
  // if there are incoming bytes available
  // from the server, read them and print them:
+
  // from the server, read them and print them:
  if (client.available()) {
+
  if (client.available()) {
    char c = client.read();
+
      char c = client.read();
    Serial.print(c);
+
      Serial.print(c);
  }
+
  }
 
+
  // if the server's disconnected, stop the client:
  // if the server's disconnected, stop the client:
+
  if (!client.connected()) {
  if (!client.connected()) {
+
      Serial.println();
    Serial.println();
+
      Serial.println("disconnecting.");
    Serial.println("disconnecting.");
+
      client.stop();
    client.stop();
 
  
    // do nothing forevermore:
+
      // do nothing forevermore:
    while (true);
+
      while (true);
  }
+
  }
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
== Vea también ==
 
== Vea también ==
 +
* [https://www.arduino.cc/en/Reference/EthernetClient Ethernet Client]
  
 
== Referencias ==
 
== Referencias ==
 
[[Category:Ejemplos]]
 
[[Category:Ejemplos]]
 
[[Category:Libreria Ethernet]]
 
[[Category:Libreria Ethernet]]

Revisión del 19:01 30 may 2019

Este ejemplo muestra cómo hacer una solicitud HTTP usando un modulo (sheald) de Ethernet. Devuelve una búsqueda en Google del término "Arduino". Los resultados de esta búsqueda se envían por monitor serie de Arduino.

Codigo

/*
  Web client

 This sketch connects to a website (http://www.google.com)
 using an Arduino Wiznet Ethernet shield.

 Circuit:

 created 18 Dec 2009
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe, based on work by Adrian McEwen

 */

#include <SPI.h>
#include <Ethernet.h>

//Ethernet shield attached to pins 10, 11, 12, 13
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };   //MAC del modulo
IPAddress ip(192, 168, 0, 177);                        //IP del modulo
char server[] = "www.google.com";                      //Google (usar DNS)
//IPAddress server(74,125,232,128);                    //IP de Google (no usar DNS)

EthernetClient client;                                  //Iniciar cliente

void setup() {
   Serial.begin(9600);
   // start the Ethernet connection:
   if (Ethernet.begin(mac) == 0) {
      Serial.println("Failed to configure Ethernet using DHCP");
      // try to congifure using IP address instead of DHCP:
      Ethernet.begin(mac, ip);
   }
   // give the Ethernet shield a second to initialize:
   delay(1000);
   Serial.println("connecting...");
   // if you get a connection, report back via serial:
   if (client.connect(server, 80)) {
      Serial.println("connected");
      // Make a HTTP request:
      client.println("GET /search?q=arduino HTTP/1.1");
      client.println("Host: www.google.com");
      client.println("Connection: close");
      client.println();
   }else {
     // if you didn't get a connection to the server:
     Serial.println("connection failed");
   }
}

void loop() {
   // if there are incoming bytes available
   // from the server, read them and print them:
   if (client.available()) {
      char c = client.read();
      Serial.print(c);
   }
   // if the server's disconnected, stop the client:
   if (!client.connected()) {
      Serial.println();
      Serial.println("disconnecting.");
      client.stop();

      // do nothing forevermore:
      while (true);
   }
}

Vea también

Referencias