Pages: [1]   Go Down
Author Topic: Comment bien gérer la connexion Ethernet ?  (Read 235 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 27
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Après beaucoup de tâtonnement j'ai réussi à faire marcher le shield Ethernet pour envoyer des données vers un serveur distant qui les enregistre.

Le serveur distant se contente d'enregistrer les données reçues mais ne répond rien (page blanche).

L'arduino envoi son buffer toutes les 30 secondes avec le code suivant.

Code:
// envoi des messages au serveur HTTP externe
boolean logDataToRemote(String msg) {
if (carteEthernet) { // si la carte ethernet est présente

if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
}
Serial.println("connecting...");

if (!client.connect(server, 80)) {

/* Erreur */
Serial.println(F("Echec !"));
return false;
}
Serial.println("connected");
// Make a HTTP request:
String PostData = "msg=" + urlencode(msg);

Serial.println(msg);
Serial.println(PostData);

client.println("POST /arduino/save.php HTTP/1.1");
client.println("Host:  www.monserveur.fr");
client.println("User-Agent: Arduino/1.0");
client.println("Connection: close");
client.println("Content-Type: application/x-www-form-urlencoded;");
client.print("Content-Length: ");
client.println(PostData.length());
client.println();
client.println(PostData);
client.println();
/* Fin de la requete HTTP */
Serial.println(F("Fin envoi ..."));

/* Pas d'erreur */
while (!client.available()) {
delay(1);
}

while (client.available()) {
char c = client.read();
Serial.print(c);
}

while (client.connected()) {
Serial.println("Waiting for server to disconnect");
}

client.stop();

return true;
}
return false;
}


Ca marche bien, mais je ne suis pas intéressée par la partie attente de la réponse et lecture de la réponse while (!client.available()) { ...} et while (client.available()) {...} car cela consomme du temps inutilement. Mais sans cette partie j'avais des gros problèmes de connexion / close / ...

Y-at-il un bon tuto qui explique vraiment comment on fait fonctionner l'Ethernet avec les détails....et le pourquoi on doit faire certaines choses ou pas.

Merci d'avance
« Last Edit: August 25, 2013, 11:13:38 am by boubil » Logged

Pages: [1]   Go Up
Jump to: