Shield wifi avec mega 2560 problème

Bonjour,

J'ai un souci, j'utilise un Arduino méga 2560 r3 et un shield wifi r3 également. L'objectif est de me connecter à une URL local du type "http://monadresseip/updage_bdd.php?val1=232&....." ou les valeurs sont celles du arduino.

J'ai utiliser de nombreux programme exemple du site officiel.
La partie connection fonctionne correctement.
Par contre au niveau de la condition "if (client.connect(server, 80)) { }" la commence les soucis.
J'ai essayé de définir des serveurs tel que google.fr, l'adresse ip du serveur http, ... rien n'y fait.

J'ai beaucoup chercher sur internet il semblerait qu'il y est des soucis avec cette carte.
Est ce que si je fais la mise à jour du firmware résoudrait le problème ?

merci
Cordialement Clément

Bonjour,

J'ai exactement le même problème que toi.
As tu résolu ton problème ?
As tu mis à jour le firmware ?

Merci

Salut, je m'incruste ...

J'ai aussi eu des soucis avec deux Shields wifi officiels ... Agaçant au prix ou ils sont ...

Je me suis donc résigné à faire la mise à jour, par ailleurs très bien décrite et finalement simple à réaliser...

Depuis, aucun soucis avec les Shields

Ah cool, je ne suis pas le seul !!!!

Oui, je me suis fait la même remarque, à ce prix là, c'est inadmissible !!!!!

Enfin, si ça marche avec de bonnes performances, c'est le principal .

Pourrais tu me dire les fichiers que tu as téléchargés, et la procédure.

Celle du site, n'est pour ma part, pas si claire que ça.

Je vais m'y pencher aujourd'hui

Voila, après 2h de tentative, des sueurs froides, j'ai remis le soft dans mon shield.
j'ai été embété par le chemin de où était les fichiers à flasher, et bien sur comme dans toute mémoire flash, on erase avant........

Néanmoins, je suis toujours incapable de faire marcher l'exemple wifiwebserver.
J'ai un shield eternet, ça marche nickel, mais pas celui là alors que le principe pour le tester est le meme.

Si quelqu'un à une idée,je suis preneur.

le code?

Infobarquee, ci joint le code :
PS: J'ai masqué le SSID & le mdp.

/*
WiFi Web Server

A simple web server that shows the value of the analog input pins.
using a WiFi shield.

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

Circuit:

  • WiFi shield attached
  • Analog inputs attached to pins A0 through A5 (optional)

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

*/

#include <SPI.h>
#include <WiFi.h>

char ssid[] = "SFR_XXX"; // your network SSID (name)
char pass[] = "XXXXXX"; // your network password
int keyIndex = 0; // your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;

WiFiServer server(80);

void setup() {
//Initialize serial and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo 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);
}

// 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);
}
server.begin();
// you're connected now, so print out the status:
printWifiStatus();
}

void loop() {
// listen for incoming clients
WiFiClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after completion of the response
client.println("Refresh: 5"); // refresh the page automatically every 5 sec
client.println();
client.println("");
client.println("");
// output the value of each analog input pin
for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
int sensorReading = analogRead(analogChannel);
client.print("analog input ");
client.print(analogChannel);
client.print(" is ");
client.print(sensorReading);
client.println("
");
}
client.println("");
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);

// close the connection:
client.stop();
Serial.println("client disonnected");
}
}

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");
}

Et ce qu'il y a d'affiché sur le sérial

Attempting to connect to SSID: SFR_8318
SSID: SFR_XXXX
IP Address: 192.168.1.74
signal strength (RSSI):-48 dBm

Je le ping sans problème, mais dans le navigateur, quand je rentre l'adresse 192.168.1.74 => Impossible de se connecter et il ne se passe rien dans la fenêtre série.
Le même exemple avec l ethernet shield marche très bien.

Je suis en WPA2, je vais peut etre essayer de le changer pour voir.

donc une bbox,
question conne, tu as bien redirigé le port 80 vers le nono?

infobarquee,

Une SFR box :slight_smile:

Le port 80, il faut y toucher en wifi ? plus qu'en ethernet ? en ethernet j ai rien touché mais ça marche.
Quoiqu'il arrive, J'ai autorisé le port, ça reste pareil.
Pour le firmware, j'ai mis ça : GitHub - arduino/wifishield: Arduino Wifi Shield
J'ai essayé d autres exemples dont celui dont tu m'as donné le lien, il se connecte tjs en 192.168.1.74 alors que dans le programme c'est 192.168.1.177 .... bizarre.
Pour les autres exemples, c est comme si ça se connecte au wifi, mais qu'il est bloqué aussi bien en émission qu'en réception....
Pour info, seule la LED LINK est allumé, les 3 autres je ne les ai jamais vue allumées.

Je vais repartir sur mon programme en ethernet qui fonctionne, mais le wifi etait plus pratique pour mon devellopement

J'ai exactement le même problème avec avec une UNO R3. Bonne attribution de l'IP mais aucun accès aux services, 80 ou autres.

Avez-vous réglé ce problème ?

Merci

Pascal

Bonjour Pascal,

Ne t’inquiète pas, c'est juste un problème de version de firmware.

J'ai tellement bidouillé avant que ça marche que, à la fin, je ne suis plus certain que ce que j'ai fait !!!!!

Il est nécessaire de mettre à jour le firmware du shield wifi et d'utiliser la dernière version du logiciel arduino.

Après c'est que du bonheur et cela marche meme très bien ( encore heureux surtout vu le prix !!!! :slight_smile: )

Qu'as tu fais juqu'a ce jour ?