Ethernet.begin(mac) semble planter !!!

Bonjour

J'ai beaucoup de mal pour un truc qui parait simple. Obtenir une adresse IP pour mon Ethernet Shield à partir de mon serveur DHCP. Comment se fait il que le code suivant ne fonctionne pas ou de manière aléatoire. Le serveur fonctionne très bien, il m'affecte une adresse de temps en temps

Au niveau de ma box, je vois parfois l'adresse MAC sans IP ou alors avec une IP !!! Franchement c'est pénible de ne pas avoir une fonctionnement comme expliqué dans la doc

En fait le code semble bloqué sur Ethernet.begin(mac). Impossible d'avoir la moindre écriture dans le terminal !!!

if (Ethernet.begin(mac) == 0) 
  {
    Serial.println("Failed to configure Ethernet using DHCP");

    Ethernet.begin(mac, ip);
  }
  else
  {
  Serial.println(Ethernet.localIP());
  }

Merci pour vos idées

David

Bonjour,

Pourquoi ne testes-tu pas simplement la présence de ton IP ?
icare

Bonjour,

Le timeout de la librairie DHCP est trés trés long ...
C'est normal que tu n'est aucun message sur Serial, il faut attendre un certain temps avant que Ethernet.begin() retourne 0 en cas d'erreur.
Regarde du côté de ta configuration DHCP et de ta connexion (fils & connecteurs) ethernet, tu as peut être aussi un faux contact quelque pars :wink:

Aussi que ta box n'affiche pas l'ip correctement (ou pas du tout) est une chose qui arrive souvent avec les "box" des FAI.
L'affichage des bails DHCP en cours n'est pas une fonctionnalité critique donc souvent c'est codé à la va-vite.

Bonjour

Merci pour vos réponses

Il y a des points qui m'échappent. Déjà comment se fait il que mon adresse MAC n'apparaisse pas dans la liste des clients de ma box. Elle apparait de temps en temps, je n'arrive pas à trouver de corrélation avec d'autres évènements !!

En lancant le code que je citais, elle est apparue sans adresse IP au bout d'un moment puis a disparu de la liste des clients de la box !!!

En fait je ne vois pas de solution à mon problème. Peut être que de forcer une IP par rapport à une adresse MAC vue par la box aurait été une solution mais comme elle n’apparaît pas tout le temps donc impossible

Quelle serait la bonne solution ?

Merci

C