Go Down

Topic: besoin d'aide shield wifi (Read 3988 times) previous topic - next topic

Zaborg

Mar 13, 2014, 05:10 pm Last Edit: Mar 13, 2014, 05:13 pm by Zaborg Reason: 1
Bonjour a tous et a toutes j'ai acquis récemment un shield wifi pour l'utiliser avec mon adruino mega j'ai essayé les exemple fournis par le logiciel arduino, j'arrive a faire une connexion entre ma box et la carte mais par exemple quand je veux crée une page web et y accéder depuis mon téléphone portable ou mon ordi portable (en rentrant l'adresse IP donner par le programme de la carte et qui correspond au masque de mon réseaux ainsi qu'au adresse IP de mes autres appareils) je n'arrive pas accéder a la page html.

je pense donc que le problème vient du faits que mes appareils n'arrive pas a y accéder
Voila si vous pouvez m'aider sa me ferrait extrêmement plaisir

Romain

infobarquee

bonjour,
un code?
type de modem ou routeur?
AUCUNE AIDE PAR MP

Zaborg

Bonsoir j'ai utilisé une des code d'exemple fournit avec la librairie WIFI
je le copie quand même

Code: [Select]
#include <SPI.h>
#include <WiFi.h>


char ssid[] = "yourNetwork";      // your network SSID (name)
char pass[] = "secretPassword";   // 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;
   


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


j'ai bien mis le SSID et le passe du réseaux apres pour le modem/routeur j'utilise ma box sfr

Cordialement Romain

koala

Salut,

Sur ton pc tu peux essayer Executer > cmd > ping adresse_ip_de_ton_shield

Si tu as tous les paquets perdus c'est un problème sur ton réseau, firewall etc, sinon c'est un problème dans ton code

Zaborg

D'accord je test sa et j'edit mon message par contre je doute que cela vienne du code vu qu'il est fourni par arduino (je suppose qu'il marche )

koala

#5
Mar 13, 2014, 08:41 pm Last Edit: Mar 13, 2014, 08:48 pm by koala Reason: 1
A ce que je peux lire dans le code, il démarre un serveur web sur le port 80 et il doit t'affcher "new client" dans le terminal lorsqu'un client le solicite.

Après je ne suis pas sûr qu'il répond au client, j'entend par là lui envoyer le code html de la page demandée.

D'ailleur, ta "loop" n'est pas complète, tu ouvre des accolades que tu ne ferme pas.

Regarde ce code :

http://arduino.cc/en/Tutorial/WebServer#.UyIMnM4Z5Fw

Zaborg

#6
Mar 13, 2014, 09:09 pm Last Edit: Mar 13, 2014, 09:11 pm by Zaborg Reason: 1
Voila j'ai fait le test et le cmd a envoyé 4 paquets les 4 ont été reçus

EDIT : j'ai regarder ton lien mais c'est pour un shield ethernet donc je doute que sa marche sans modification pour le shield wifi

infobarquee

1- le code mis n'est pas complet
2- quel code mets tu réellement
3- si tu ping la carte, tout va bien
donc pb de code simplement
AUCUNE AIDE PAR MP

Zaborg

je mais le code fourni par arduino soit celui-ci 

Code: [Select]
#include <SPI.h>
#include <WiFi.h>


char ssid[] = "*****";      // your network SSID (name)
char pass[] = "*****";   // 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("<!DOCTYPE HTML>");
          client.println("<html>");
          // 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("<br />");       
          }
          client.println("</html>");
           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");
}

koala

Ha voilà ^^

Supprime cette partie

Code: [Select]
// 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("<br />");      
         }


et remplace le par

Code: [Select]
client.print("<h1>test</h1>");

Zaborg

sa marche j'essaye sa tous de suite et je te redit

Zaborg

J'ai fait le test sur mon ordi portable et sur mon téléphone dans les deux cas sa me dis que je ne peux pas accéder a la page demandée

infobarquee

question comme ca
tu mets quoi dans le navigateur pour accéder à la page?
AUCUNE AIDE PAR MP

Zaborg

Bonjour je mais l'adresse IP donnée dans le moniteur arduino lorsque j'ai téléversé

koala

et ça te dis erreur 404, 403 ou autre ?

Go Up