Diferencia entre revisiones de «WebClient»

De ArduWiki
Saltar a: navegación, buscar
(Vea también)
 
(No se muestran 4 ediciones intermedias del mismo usuario)
Línea 3: Línea 3:
 
== Codigo ==
 
== Codigo ==
 
<syntaxhighlight lang="c++">
 
<syntaxhighlight lang="c++">
/*
 
  Web client
 
 
This sketch connects to a website (http://www.google.com)
 
using an Arduino Wiznet Ethernet shield.
 
 
Circuit:
 
* Ethernet shield attached to pins 10, 11, 12, 13
 
 
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 <SPI.h>
 
#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
 
IPAddress ip(192, 168, 0, 177);
 
  
// Initialize the Ethernet client library
+
EthernetClient client;                                  //Iniciar cliente
// 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 (!client.connected()) {
 +
      Serial.println();
 +
      Serial.println("disconnecting.");
 +
      client.stop();
  
  // if the server's disconnected, stop the client:
+
      // do nothing forevermore:
  if (!client.connected()) {
+
      while (true);
    Serial.println();
+
  }
    Serial.println("disconnecting.");
 
    client.stop();
 
 
 
    // do nothing forevermore:
 
    while (true);
 
  }
 
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
== Vea también ==
 
== Vea también ==
 +
<categorytree mode=all>Libreria Ethernet</categorytree>
  
 
== Referencias ==
 
== Referencias ==
 +
* [https://www.arduino.cc/en/Reference/EthernetClient Ethernet Client]
 +
 
[[Category:Ejemplos]]
 
[[Category:Ejemplos]]
 
[[Category:Libreria Ethernet]]
 
[[Category:Libreria Ethernet]]

Revisión actual del 19:03 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

#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