2010-01-02 4 views
2

J'essaie d'utiliser la classe client Arduino pour récupérer une page HTML sur Internet (exemple de la bibliothèque Arduino elle-même), mais cela ne fonctionne pas (la connexion n'est pas établie).La classe client Web Arduino ne fonctionne pas

Il est à ne pas:

client.connect(); 

J'ai essayé Ethernet et les bibliothèques Ethernet2.

Ma version de la plate-forme de développement Arduino est 0017, OS est Windows XP.

Après mon code et la configuration en ligne:

#include <Client.h> 
#include <Ethernet2.h> 
// #include <Ethernet.h> 
#include <Print.h> 
#include <Server.h> 

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; 
byte ip[] = { 192,168,1,7 }; 
byte server[] = { 74,125,47,103 }; // Google home page 
byte gateway[] = { 192,168,1,1 }; 
byte mask[] = { 255,255,255,0 }; 

Client client(server, 80); 

void setup() 
{ 
    Ethernet.begin(mac, ip, gateway, mask); 
    Serial.begin(9600); 

    delay(1000); 

    Serial.println("connecting..."); 

    if (client.connect()) { 
    Serial.println("connected"); 
    client.println("GET /search?q=arduino HTTP/1.0"); 
    client.println(); 
    } else { 
    Serial.println("connection failed"); 
    } 
} 

void loop() 
{ 
    if (client.available()) { 
    char c = client.read(); 
    Serial.print(c); 
    } 

    if (!client.connected()) { 
    Serial.println(); 
    Serial.println("disconnecting."); 
    client.stop(); 
    for(;;); 
    } 
} 
+1

Vous avez un blindage ethernet dessus? – maxedmelon

+0

Avez-vous essayé de vous connecter à un serveur Web local? –

+0

oui j'ai un bouclier ethernet dessus, oui j'ai essayé de me connecter à un serveur web local, il échouait aussi. –

Répondre

5

Je ne sais pas la raison, mais je devais modifier la fonction setup() suivante pour obtenir le fonctionnement de code:

void setup() { 
    Ethernet.begin(mac, ip, gateway, mask); 
    Serial.begin(9600); 

    delay(1000); 

    Serial.println("connecting..."); 

    for(int i = 0;i <100 ; i++) { 
    if (client.connect()) { 
     Serial.println("connected");   
     client.println("GET /search?q=arduino HTTP/1.0"); 
     client.println(); 
     break; 
    } else { 
     Serial.println("connection failed"); 
    } 
    } 
} 

Le code :

client.connect() 

échoue deux fois ou trois fois, mais éventuellement se connecte à google web se rver ainsi que mon serveur web local dans la 3ème ou 4ème itération de la boucle 'for'.

Si quelqu'un connaît la raison d'un tel comportement, veuillez répondre.

Questions connexes