Problema al ejecutar WiFiWebClient ejemplo

Estoy ejecutando el ejemplo de WiFiWebClient que viene precargado con Arduino IDE 1.6.7. Estoy usando la placa Arduino Uno con WiFi Shield Modelo R3.

/*
  Web client

 This sketch connects to a website (http://www.google.com)
 using a WiFi shield.

 This example is written for a network using WPA encryption. For
 WEP or WPA, change the Wifi.begin() call accordingly.

 This example is written for a network using WPA encryption. For
 WEP or WPA, change the Wifi.begin() call accordingly.

 Circuit:
 * WiFi shield attached

 created 13 July 2010
 by dlf (Metodo2 srl)
 modified 31 May 2012
 by Tom Igoe
 */
#include 
#include 
#include 

char ssid[] = "Vanilla Sky";// your network SSID (name)
char pass[] = "mypass";   //your network password (use for WPA, or use as key for WEP)
int keyIndex = 0;           //your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
//IPAddress server(74,125,232,128); //numeric IP for Google (no DNS)
char server[] = "www.google.com";   //name address for Google (using DNS)

// 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):
WiFiClient client;

void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ;//wait for serial port to connect. Needed for native USB port only
  }

 //check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
   //don't continue:
    while (true);
  }

  String fv = WiFi.firmwareVersion();
  if (fv != "1.1.0") {
    Serial.println("Please upgrade the firmware");
  }

 //attempt to connect to Wifi network:
  while (status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
   //Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid, pass);

   //wait 10 seconds for connection:
    delay(10000);
  }
  Serial.println("Connected to wifi");
  printWifiStatus();

  Serial.println("\nStarting connection to server...");
 //if you get a connection, report back via serial:
  if (client.connect(server, 80) == 0) {
    Serial.println("connected to server");
   //Make a HTTP request:
    client.println("GET /search?q=arduino HTTP/1.1");
    client.println("Host: www.google.com");
    client.println("Connection: keep-alive");
    client.println();
  }
}

void loop() {
 //if there are incoming bytes available
 //from the server, read them and print them:
  while (client.available()) {
    char c = client.read();
    Serial.write(c);
  }

 //if the server's disconnected, stop the client:
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting from server.");
    client.stop();

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


void printWifiStatus() {
 //print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

 //print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

 //print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}

Conecta mi escudo WiFi a Vanilla Sky pero no recupera la solicitud HTTP (vea la imagen a continuación). ¿Qué se está equivocando aquí?

enter image description here

0

1 Respuestas

Vamos a descomponerlo :)

Actualiza el firmware

Visita aquí para actualizar el firmware de tu placa. Su publicación original no muestra la versión de fw, pero podría tener referencias de bibliotecas desactualizadas y se ha observado muchas veces que no funcionará.

https://www.arduino.cc/en/Hacking/WiFiShieldFirmwareUpgrading

También agregue esto a su proyecto para ayudarnos a determinar su firmware:

  Serial.print("Firmware version: ");
  Serial.println(WiFi.firmwareVersion());

Mi conjetura es que es menos de 1.1.0. Si el IDE de Arduino está desactualizado y la placa es más nueva, NO ES IGUAL A (! =) Puede sugerir que el firmware es más nuevo que la biblioteca, lo que también podría ser un problema.

Solo b/c se conecta a su enrutador, no significa que aún pueda comunicarse correctamente.

Una última nota al margen, algunas versiones de Arduino IDE han demostrado ser problemáticas al cargar un boceto en un escudo wifi. Una búsqueda rápida con su versión de Arduino seguida por el Wifi Shield que no se conecta podría orientarle en la dirección correcta. ej .- Arduino x.xx wifi escudo no se conecta

¡Espero que esto ayude!

1
agregado
Mi versión de firmware es 1.0.0 y no es una preocupación a menos que la esté utilizando para una aplicación sofisticada. 1.0.0 debería poder hacer al menos simples solicitudes de GET . Estoy usando Arduino Uno con el escudo WiFi Modelo R3. Mi versión IDE es 1.6.7
agregado el autor DS9, fuente