IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Problème de connexion avec le shield Ethernet V2


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Technicien
    Inscrit en
    Janvier 2021
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Janvier 2021
    Messages : 15
    Par défaut Problème de connexion avec le shield Ethernet V2
    bonjour,
    je souhaite utiliser le programme navigateur aux commandes de l’Arduino partie 1 pour voir le comportement de l'arduino.
    J'utilise une carte UNO et un shield ethernet V2.
    Je rencontre divers problèmes:

    1. quand je vérifie le sketch, j'ai l'erreur suivante en rouge:

    In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\Ethernet\src\Dns.cpp:8:0:
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\Ethernet\src\Dns.cpp: In member function 'uint16_t DNSClient::BuildRequest(const char*)':
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\Ethernet\src\utility/w5100.h:457:25: warning: result of '(256 << 8)' requires 18 bits to represent, but 'int' only has 16 bits [-Wshift-overflow=]
    #define htons(x) ( (((x)<<8)&0xFF00) | (((x)>>8)&0xFF) )
    ~~~^~~
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\Ethernet\src\Dns.cpp:164:18: note: in expansion of macro 'htons'
    twoByteBuffer = htons(QUERY_FLAG | OPCODE_STANDARD_QUERY | RECURSION_DESIRED_FLAG);
    ^~~~~
    2. je téléverse le sketch dans l'arduino mais je n'ai pas accès à l'arduino à partir du navigateur web (chrome).
    Je précise que j'ai rentré l'adresse MAC qui est sur le shield ethernet, que j'ai mis une adresse IP fixe et que j'ai copié le programme de l'étape 7 pour le programme.

    3. Ma livebox ne voit pas l'arduino ; il n'apparaît pas dans les périphériques connectés.

    Pouvez-vous m'aider?
    merci

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 919
    Par défaut
    Salut

    Commencez par tester un des exemples fournis avec la bibliothèque ethernet et qui utilise DHCP pour l’adresse IP. Ça vous permettra de valider que la carte est fonctionnelle et que votre réseau ne bloque rien.

    Le warning a trait à un point de la bibliothèque (une macro) qui n’est pas critique.

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien
    Inscrit en
    Janvier 2021
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Janvier 2021
    Messages : 15
    Par défaut
    Pour se faire je peux utiliser le programme de l'étape 4-B-2 en retirant le ligne ?
    IPAddress IPSerre(192,168,1,200);
    De cette manière le DHCP de la box devrait le donner une adresse IP?

  4. #4
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Par défaut
    Bonjour atlantis50 .

    La suggestion de Jay M est bonne car elle te permet de tester ton matériel indépendamment du tutoriel.

    Sinon :
    Citation Envoyé par atlantis50 Voir le message
    Pour se faire je peux utiliser le programme de l'étape 4-B-2 en retirant le ligne ?
    IPAddress IPSerre(192,168,1,200);
    De cette manière le DHCP de la box devrait le donner une adresse IP?
    Oui mais ça ne suffit pas. Il faut également que tu modifies la ligne :
    Code arduino : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Ethernet.begin(macSerre, IPSerre);
    comme suit :
    Code arduino : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Ethernet.begin(macSerre);
    sans quoi tu déclencheras une erreur.

    Peux-tu vérifier que la version de la bibliothèque Ethernet que tu utilises est bien la version 2 ?
    Peux-tu également nous fournir une copie de ton code, à tout hasard ?

    Amicalement,
    naute

  5. #5
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 919
    Par défaut
    Oui je pensais à un truc tout simple du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    #include <Ethernet.h>
    const char * server = "httpbin.org";
    uint8_t mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // si vous avez un sticker avec une adresse Mac sur votre shield, utilisez celle la
    EthernetClient client;
    
    void setup() {
      Serial.begin(115200);
    
      if (Ethernet.begin(mac) == 0) {
        Serial.println(F("Erreur: pas d'adresse par DHCP"));
        while (true) ;
      }
    
      Serial.print(F("DHCP OK; IP = ")); Serial.println(Ethernet.localIP());
    
      delay(1000); // fin de l'initialisation du shield
    
      Serial.print(F("Envoi d'une requête vers ")); Serial.println(server);
    
      if (client.connect(server, 80)) {
        Serial.print(F("Connexion OK au serveur "));
        Serial.println(client.remoteIP());
        // Lecture de la page retournée
        client.println("GET /ip HTTP/1.1");
        client.println("Host: atlantis50.fr");
        client.println("Connection: close");
        client.println();
      } else {
        Serial.println(F("Connexion au serveur impossible."));
        while (true) ;
      }
    }
    
    void loop() {
      while (client.available()) {
        Serial.write(client.read());
      }
    
      if (! client.connected()) {
        Serial.println("\ndéconnexion");
        while (true) ;
      }
    }
    si tout est bien connecté, vous ouvrez la console à 115200 bauds et vous devriez voir un message qui dit DHCP OK suivi de votre adresse IP sur le réseau local, obtenue en DHCP par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DHCP OK; IP = 10.0.0.18
    Ensuite ce code fait une requête vers httpbin.org/ip qui vous retourne l'adresse IP de votre installation vue du monde extérieur (l'IP WAN, celle de votre freebox). donc vous devriez voir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Envoi d'une requête vers httpbin.org
    Connexion OK au serveur 3.211.1.78
    HTTP/1.1 200 OK
    Date: Thu, 28 Jan 2021 10:28:32 GMT
    Content-Type: application/json
    Content-Length: 33
    Connection: close
    Server: gunicorn/19.9.0
    Access-Control-Allow-Origin: *
    Access-Control-Allow-Credentials: true
    
    {
      "origin": "xxx.xxx.xxx.xxx"    <=== votre IP WAN ici
    }
    
    déconnexion
    Si cette partie fonctionne c'est bon signe pour votre Arduino, votre shield et votre connexion à Internet. Sinon il faudra creuser

    PS: Ce serveur httpbin.org est super pratique pour tester du code http avec un serveur externe, vous pouvez envoyer diverses commandes GET et obtenir différents résultats. par exemple http://httpbin.org/anything va vous retourner plein d'infos sur votre requête ou alors http://httpbin.org/headers va vous retourner le header de votre commande

  6. #6
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Par défaut
    J'étais passé à côté de ça :

    Citation Envoyé par atlantis50 Voir le message
    3. Ma livebox ne voit pas l'arduino ; il n'apparaît pas dans les périphériques connectés.
    La box ne s'occupe que des baux DHCP, qu'ils soient "dynamic" ou "static". Les IP fixes ne sont pas gérées et donc n'apparaissent pas dans la liste, ce qui est normal : leur utilisation est sous la seule responsabilité du développeur qui les utilise.
    Si tu modifies ton code comme dans le post ci-dessus, une adresse DHCP dynamique va être attribuée à ton Arduino et apparaîtra dans les périphériques connectés. Tu n'auras plus qu'à saisir cette adresse dans ton navigateur pour te connecter. Du moins, théoriquement, compte tenu de ton problème.

    Amicalement,
    naute

    Edit : Jay M a répondu pendant que je rédigeais. Donc, le "post ci-dessus" dont je parle est celui qui précède le sien.

  7. #7
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 919
    Par défaut
    Donc, le "post ci-dessus" dont je parle est celui qui précède le sien
    et comme on peut régler dans les préférences si on lit les plus récents d'abord, pour moi il est "ci dessous" et pas "ci dessus"


  8. #8
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Par défaut
    Citation Envoyé par Jay M Voir le message
    et comme on peut régler dans les préférences si on lit les plus récents d'abord, pour moi il est "ci dessous" et pas "ci dessus"
    ! mais ça fait tellement longtemps que je lis de gauche à droite et de haut en bas que, par réflexe, le texte à gauche est antérieur au texte à droite et le texte au-dessus est antérieur au texte en-dessous .
    Je veux bien essayer d'apprendre le chinois pour me familiariser avec la lecture de droite à gauche, mais, en tout état de cause, ça restera toujours de haut en bas .

  9. #9
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 919
    Par défaut
    tout est relatif


  10. #10
    Membre habitué
    Homme Profil pro
    Technicien
    Inscrit en
    Janvier 2021
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Janvier 2021
    Messages : 15
    Par défaut
    bonjour,
    merci pour votre aide.
    J'ai essayé le programme de Jay M suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    #include <Ethernet.h>
    const char * server = "httpbin.org";
    uint8_t mac[] = {0xA8, 0x61, 0x0A, 0xAE, 0x71, 0x5A}; // si vous avez un sticker avec une adresse Mac sur votre shield, utilisez celle la
    EthernetClient client;
     
    void setup() {
      Serial.begin(115200);
     
      if (Ethernet.begin(mac) == 0) {
        Serial.println(F("Erreur: pas d'adresse par DHCP"));
        while (true) ;
      }
     
      Serial.print(F("DHCP OK; IP = ")); Serial.println(Ethernet.localIP());
     
      delay(1000); // fin de l'initialisation du shield
     
      Serial.print(F("Envoi d'une requête vers ")); Serial.println(server);
     
      if (client.connect(server, 80)) {
        Serial.print(F("Connexion OK au serveur "));
        Serial.println(client.remoteIP());
        // Lecture de la page retournée
        client.println("GET /ip HTTP/1.1");
        client.println("Host: atlantis50.fr");
        client.println("Connection: close");
        client.println();
      } else {
        Serial.println(F("Connexion au serveur impossible."));
        while (true) ;
      }
    }
     
    void loop() {
      while (client.available()) {
        Serial.write(client.read());
      }
     
      if (! client.connected()) {
        Serial.println("\ndéconnexion");
        while (true) ;
      }
    }
    J'ai modifié l'adresse MAC par celle du sticker
    le résultat n'est pas satisfaisant réponse du moniteur
    19:33:20.291 -> Erreur: pas d'adresse pErreur: pas d'adresse par DHCP

    Dans la box je ne vois pas l'arduino mais le port ethernet semble actif quand je regarde les paramètres de la box.
    Quelles sont les bibliothéques qui doivent être installées pour le shield ethernet V2?
    @naute la bibliothéque Ethernet est bien la version 2
    Nom : Ard.jpg
Affichages : 1038
Taille : 100,5 Ko
    Merci

  11. #11
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Par défaut
    Bonjour atlantis50 .

    En ce qui concerne la bibliothèque Ethernet, ta version est la bonne, donc pas de problème à ce niveau.

    En ce qui concerne le code proposé par Jay M, ce qui m'embête un peu c'est que, d'une certaine manière, on complique le contexte en utilisant Internet. Il me semble que ton problème ne concerne que ton Intranet, à savoir ton réseau Ethernet et ta box en tant que routeur DHCP.

    Je te propose, pour clarifier la situation, de copier le code suivant :
    Code arduino : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    #include <Ethernet.h>
     
    byte macSerre[] = {0xA8, 0x61, 0x0A, 0xAE, 0x71, 0x5A};
    EthernetServer serveurHTTP(80);
     
    String reception = "";
     
    void setup()
    {
      Ethernet.begin(macSerre);
      serveurHTTP.begin();
      Serial.begin(115200);
      Serial.print(F("Adresse IP affectée : "));
      Serial.println(Ethernet.localIP());
    }
     
    void loop()
    {
      EthernetClient client = serveurHTTP.available();
      if (client)
      {
        if (client.connected())
        {
          reception = "";
          char carLu;
          while (client.available())
          {
            carLu = client.read();        
            if (carLu != 10)
            {
              reception += carLu;
            }
            else
            {
              break;
            }
          }
          Serial.println(reception);     
          reception.trim();
          if ((reception.startsWith("GET /")) && (reception.endsWith(" HTTP/1.1")))
          {
            client.println(F("HTTP/1.1 200 OK"));
            client.println(F("Content-Type: text/html"));
            client.println(F("Connection: close"));
            client.println();
            client.println(F( "<!DOCTYPE html>"
                              "<html>"
                              "<meta charset=\"utf-8\" />"
                              "<title>Test de la connexion</title>"
                              "<body>"
                              "<p>Connexion fonctionnelle</p>"
                              "</body>"
                              "</html>"));
          }
          client.stop();
        }
      }
    }
    qui est une version légèrement modifiée de celui du tuto, et fonctionne parfaitement chez moi. Vérifie que l'adresse MAC est la bonne, bien que ça n'ait pas d'importance ici, mais autant être rigoureux. Pour info, ton adresse MAC fonctionne très bien avec mon shield Ethernet 2.
    Téléverse ce code sur ton Arduino et ouvre le moniteur série : l'adresse IP dynamique affectée devrait s'afficher.
    Connecte-toi à cette adresse sur ton navigateur et la page devrait afficher "Connexion fonctionnelle".

    Est-ce que ça compile, sinon quels sont les messages ?
    Est-ce que ça fonctionne ?
    Tiens-nous au courant.

    Amicalement,
    naute

  12. #12
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 919
    Par défaut
    Mon code testait 2 choses:

    - la bonne connexion DHCP avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     if (Ethernet.begin(mac) == 0) {
        Serial.println(F("Erreur: pas d'adresse par DHCP"));
        while (true) ;
      }
    qui répond 0 si la connexion DHCP n'est pas fonctionnelle

    - ensuite le routage internet effectivement

    Le résultat du test donné par @atlantis50 c'était
    19:33:20.291 -> Erreur: pas d'adresse pErreur: pas d'adresse par DHCP
    donc ça plantait dès le départ

    donc je suppose qu'il aura le même souci avec votre code, sauf que vous ne testez pas la valeur retournée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ethernet.begin(macSerre);

  13. #13
    Membre habitué
    Homme Profil pro
    Technicien
    Inscrit en
    Janvier 2021
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Janvier 2021
    Messages : 15
    Par défaut
    bonjour,
    @naute
    j'ai recopié le programme, quand je compile, voici le message

    In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\Ethernet\src\Dns.cpp:8:0:
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\Ethernet\src\Dns.cpp: In member function 'uint16_t DNSClient::BuildRequest(const char*)':
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\Ethernet\src\utility/w5100.h:457:25: warning: result of '(256 << 8)' requires 18 bits to represent, but 'int' only has 16 bits [-Wshift-overflow=]
    #define htons(x) ( (((x)<<8)&0xFF00) | (((x)>>8)&0xFF) )
    ~~~^~~
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\Ethernet\src\Dns.cpp:164:18: note: in expansion of macro 'htons'
    twoByteBuffer = htons(QUERY_FLAG | OPCODE_STANDARD_QUERY | RECURSION_DESIRED_FLAG);
    ^~~~~
    cette erreure apparaît une seule fois. Elle ne revient pas si je compile de nouveau sans fermer le sketch.
    Pour le résultat c'est toujours pareil

    15:04:10.593 -> Adresse IP affectée : 0.0.0.0

    => Pas d'attribution d'adresse IP par la box.

    merci pour votre aide

  14. #14
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 919
    Par défaut
    Citation Envoyé par atlantis50 Voir le message
    cette erreur n'apparaît qu'une seule fois. Elle ne revient pas si je compile de nouveau sans fermer le sketch.
    Oui c'est un warning pour un petit souci de cohérence dans la bibliothèque. La bibliothèque n'est compilée qu'une seule fois pour votre projet, ensuite le linker réutilise la version compilée. c'est pour cela que vous ne voyez le message de warning qu'une seule fois. Vous pouvez l'ignorer, le souci ne vient pas de là.

    Citation Envoyé par atlantis50 Voir le message
    Pour le résultat c'est toujours pareil
    pas surprenant puisque vous n'obtenez pas d'adresse DHCP, la suite ne peut pas fonctionner.

    Vous avez une Freebox, c'est ça ?

  15. #15
    Membre habitué
    Homme Profil pro
    Technicien
    Inscrit en
    Janvier 2021
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Janvier 2021
    Messages : 15
    Par défaut
    Non, c'est une livebox.

  16. #16
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 919
    Par défaut
    OK - il y a eu pas mal de soucis avec le DHCP des Freebox mais j'ai pas entendu d'histoire avec une livebox

  17. #17
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Par défaut
    Je vois dans la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\Ethernet\src\utility/w5100.h:457:25: warning: result of '(256 << 8)' requires 18 bits to represent, but 'int' only has 16 bits [-Wshift-overflow=]
    une référence à la puce W5100. Or, le shield Ethernet 2 utilise la puce W5500. N'y aurait-il pas un problème à ce niveau-là ?

    D'autre part :
    • es-tu sûr de ton alimentation ? Si plusieurs périphériques sont connectés en USB la consommation peut être trop importante ;
    • as-tu autre chose sur ton montage qui pourrait entrer en conflit, par exemple avec le bus SPI ? Le mieux pour les tests est de limiter le montage à l'Arduino UNO équipé de son shield Ethernet 2 ;
    • comment es-tu connecté à ta box : réseau filaire, CPL, au travers d'un HUB ou directement ? Il serait peut-être utile, pour les tests de te raccorder directement à ta box ;
    • as-tu essayé de te connecter à différentes prises sur ta box ? La prise à laquelle tu es connecté peut être défectueuse ;
    • es-tu sûr que ton shield fonctionne ? Ça, c'est plus difficile à déterminer. La solution la plus simple est d'en essayer un autre mais ce n'est pas gratuit .


    Ce n'est pas de l'inquisition : c'est juste pour essayer d'éliminer des causes possibles de dysfonctionnement.

  18. #18
    Membre habitué
    Homme Profil pro
    Technicien
    Inscrit en
    Janvier 2021
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Janvier 2021
    Messages : 15
    Par défaut
    Citation Envoyé par naute Voir le message
    Je vois dans la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\Ethernet\src\utility/w5100.h:457:25: warning: result of '(256 << 8)' requires 18 bits to represent, but 'int' only has 16 bits [-Wshift-overflow=]
    une référence à la puce W5100. Or, le shield Ethernet 2 utilise la puce W5500. N'y aurait-il pas un problème à ce niveau-là ?
    J'ai mené l'enquête: https://www.arduino.cc/en/Reference/Ethernet ; pour moi c'est la bonne

    D'autre part :
    • es-tu sûr de ton alimentation ? Si plusieurs périphériques sont connectés en USB la consommation peut être trop importante ;
      La carte est alimentée avec une alimentation externe. Avec l'usb seul (port usb3) c'est pareil.
    • as-tu autre chose sur ton montage qui pourrait entrer en conflit, par exemple avec le bus SPI ? Le mieux pour les tests est de limiter le montage à l'Arduino UNO équipé de son shield Ethernet 2 ;
      la carte est seule avec le shield pas de composants de branchés.
    • comment es-tu connecté à ta box : réseau filaire, CPL, au travers d'un HUB ou directement ? Il serait peut-être utile, pour les tests de te raccorder directement à ta box ;
      la carte est reliée directement à la box en filaire
    • as-tu essayé de te connecter à différentes prises sur ta box ? La prise à laquelle tu es connecté peut être défectueuse ;
      oui et le port fonctionne avec d'autres périphériques
    • es-tu sûr que ton shield fonctionne ? Ça, c'est plus difficile à déterminer. La solution la plus simple est d'en essayer un autre mais ce n'est pas gratuit .
      Les deux cartes sont neuves; c'est la seule chose dont je suis certain


    Ce n'est pas de l'inquisition : c'est juste pour essayer d'éliminer des causes possibles de dysfonctionnement.
    Je pense que le pb doit venir de la box mais je ne sais pas comment faire.
    D'autres personnes personnes ont se pb mais je n'ai pas trouvé de solution.
    Certains disent qu'il faudrait augmenter le trafic sur le port ethernet mais je ne sais pas comment faire.

  19. #19
    Membre habitué
    Homme Profil pro
    Technicien
    Inscrit en
    Janvier 2021
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Janvier 2021
    Messages : 15
    Par défaut
    @naute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    #include <Ethernet.h>
     
    byte macSerre[] = {0xA8, 0x61, 0x0A, 0xAE, 0x71, 0x5A};
    EthernetServer serveurHTTP(80);
     
    String reception = "";
     
    void setup()
    {
      Ethernet.begin(macSerre);
      serveurHTTP.begin();
      Serial.begin(115200);
      Serial.print(F("Adresse IP affectée : "));
      Serial.println(Ethernet.localIP());
    }
     
    void loop()
    {
      EthernetClient client = serveurHTTP.available();
      if (client)
      {
        if (client.connected())
        {
          reception = "";
          char carLu;
          while (client.available())
          {
            carLu = client.read();        
            if (carLu != 10)
            {
              reception += carLu;
            }
            else
            {
              break;
            }
          }
          Serial.println(reception);     
          reception.trim();
          if ((reception.startsWith("GET /")) && (reception.endsWith(" HTTP/1.1")))
          {
            client.println(F("HTTP/1.1 200 OK"));
            client.println(F("Content-Type: text/html"));
            client.println(F("Connection: close"));
            client.println();
            client.println(F( "<!DOCTYPE html>"
                              "<html>"
                              "<meta charset=\"utf-8\" />"
                              "<title>Test de la connexion</title>"
                              "<body>"
                              "<p>Connexion fonctionnelle</p>"
                              "</body>"
                              "</html>"));
          }
          client.stop();
        }
      }
    }
    Vous dites que votre carte fonctionne avec mon adresse MAC.
    Avez-vous essayé ce code?
    Quelle box avez-vous?

  20. #20
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Par défaut
    Personnellement, j'ai une Livebox 3 et je n'ai jamais rencontré le moindre problème. J'ai pourtant fait pas mal d'essais en tout genre (et pas toujours dans les clous ). Mais si ça viens bien de ta box, je ne sais pas trop quoi te conseiller. À ce niveau, je suis un simple utilisateur et n'ai pas de compétence particulière.

    Aurais-tu des amis ou de la famille chez qui tu pourrais faire des tests sur d'autres box ? Ça implique bien sûr que ton environnement de développement soit facilement déplaçable (installé sur un portable).

Discussions similaires

  1. Probléme de connexion avec ATT via une freebox
    Par ybertrand dans le forum Hardware
    Réponses: 3
    Dernier message: 17/10/2005, 16h06
  2. [connexion Mysql] problème de connexion avec l'odbc
    Par DarkAngelus dans le forum Administration
    Réponses: 2
    Dernier message: 13/10/2005, 11h24
  3. Réponses: 6
    Dernier message: 20/09/2005, 22h28
  4. [MSDE2000] Problème de connexion avec DbaMgr2k et SQL WDA
    Par Coplan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/06/2005, 15h37
  5. problème de connexion avec une base firebird
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/05/2005, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo