ESP32 changer le nom d'hôte et ping

Bonjour,
Navré de relancer un sujet ayant déjà été abordé mais comme il n'est plus possible de rajouter un commentaire j'en réouvre un.
Donc, j'ai un esp32 avec cam sur lequel je souhaiterai modifier le nom de l'hôte. Comme le projet impliquera a terme plusieurs esp32-cam j'aimerai leur donner un nom et si possible qu'ils ne renfournent pas tous "espressif".

Voici les difficultés que je rencontre :

  • Le changement d'hôte est visible sur la box en la redémarrant (Freebox Révolution).
  • Le changement d'hôte n'est pas visible quand je scan le réseau avec "Advanced IP Scanner".
  • Impossible de faire un ping sur l'hôte.
  • Quand je code avec VSCode, l'autocomplétions ne me propose rien concernant setHostname et getHostname et en effet dans la classe WiFi.h je ne trouve pas de référence a ses deux fonctions. Pourtant a la compilation il n'y a pas d'erreur.
#include "WiFi.h"

const char* ssid = "XXXXX";
const char* password = "ZZZZZ";
const char* hote = "Camera-1";

void setup() {

  Serial.begin(115200);

  Serial.print("Nom d'hôte actuel : ");
  Serial.println(WiFi.getHostname());

  // Attribution d'un nom d'hôte
  WiFi.config(INADDR_NONE, INADDR_NONE, INADDR_NONE, INADDR_NONE);
  WiFi.setHostname(hote);

  Serial.print("Nouveau nom d'hôte : ");
  Serial.println(WiFi.getHostname());

  WiFi.begin(ssid, password);

  Serial.print("Connexion au WiFi ");
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
  }

  Serial.println();

  // Adresse IP
  Serial.print("Adresse IP : ");
  Serial.println(WiFi.localIP());

  if (WiFi.setHostname(hote) == true) {
    Serial.print("Le nom de l'hôte a été changé : ");
    Serial.println(WiFi.getHostname());
  }
  else {
    Serial.print("Nom de l'hôte inchangé : ");
    Serial.println(WiFi.getHostname());
  }
}

Merci pour votre aide :wink:

Voir ici
Il semble que tu as un INADDR_NONE en trop.

WiFi.disconnect(); // probably not needed
WiFi.config(INADDR_NONE, INADDR_NONE, INADDR_NONE); // probably not needed
WiFi.setHostname(hname);
WiFi.mode(WIFI_STA);

WiFi.begin(ssid, password);

Oui je connais ce lien et beaucoup d'autre car j'ai écumer le net avant de poster, mais franchement sans résultat.
Impossible de faire un ping sur l'hôte.

Pour le WiFi.config, il est possible de mettre de 1 à 4 arguments.

void config(IPAddress local_ip, IPAddress dns_server, IPAddress gateway, IPAddress subnet);

Si l'un d'entre vous avait une solution, je suis franchement intéressé.

tu fais un ping sur le nom ou sur l'adresse IP ?
si c'est avec le nom, ton ordi (celui sur lequel tu lances ping) connait-il ce nom ?
c-à-d est-il capable de transformer le nom en adresse IP ?
que dit le ping exactement ?

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.