Probleem met het voorbeeld van WiFiWebClient

Ik gebruik het WiFiWebClient-voorbeeld dat vooraf is geladen met Arduino IDE 1.6.7. Ik gebruik Arduino Uno-bord met WiFi Shield Model 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");
}

Het krijgt mijn WiFi-shield verbonden met Vanilla Sky maar haalt het HTTP-verzoek niet op (zie afbeelding hieronder). Wat is hier fout aan het worden?

enter image description here

0

1 antwoord

Laten we het afbreken :)

Voer een upgrade van de firmware uit

Bezoek hier om de firmware van je bord te upgraden. Uw originele bericht toont de fw-versie niet, maar zou wel achterhaalde bibliotheekreferenties kunnen hebben en het is vaak opgemerkt dat verouderde fw niet werkt.

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

Voeg dit ook aan uw project toe om ons te helpen uw firmware te bepalen:

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

Mijn gok is dat het minder is dan 1.1.0. Als de Arduino IDE verouderd is en het bord nieuwer is, kan het NIET GELIJKE AAN (! =) Suggereren dat de firmware nieuwer is dan de bibliotheek, wat ook een probleem zou kunnen zijn.

Gewoon b/c het maakt verbinding met uw router, betekent niet dat het nog steeds correct kan communiceren.

Een laatste kanttekening, sommige versies van Arduino IDE zijn problematisch gebleken bij het uploaden van een schets naar een wifi-schild. Een snelle zoekopdracht met je Arduino-versie gevolgd door het Wifi Shield dat geen verbinding maakt, zou je in de juiste richting kunnen wijzen. eg- Arduino x.xx wifi-shield maakt geen verbinding

Ik hoop dat dit helpt!

1
toegevoegd
Mijn firmwareversie is 1.0.0 en het is geen zorg tenzij je het voor een geavanceerde toepassing gebruikt. 1.0.0 zou op zijn minst eenvoudige GET aanvragen moeten kunnen doen. Ik gebruik Arduino Uno met het WiFi-schild Model R3. Mijn IDE-versie is 1.6.7
toegevoegd de auteur DS9, de bron