Wifi à la fois PointAcces et Client sous Rasp Pico

Bonjour à tous,

j'ai déjà fait un mini-serveur sous ESP-01 qui pousse aussi ses données vers l'internet. J'ai donc, sur ce système, à la fois un service de point d'accès (192.168.4.1) et une connexion externe dont l'adresse est déterminée par le DHCP. Tout cela, comme écrit ci-haut sur un EPS-01

J'essaie de refaire cela avec un Rasp Pico-W
Le souci que je rencontre va de suite:

  • ou j'ai le point d'accès
  • ou j'ai l'accès internet
    Je n'arrive pas à obtenir les deux (AP + STA) sur mon Pico-W
    Voici le code:
  WiFi.softAPConfig(APlocalIP, APgateway, APsousRes);
  WiFi.softAP(APssid, APpwsd);    //Point d'accès ... ceci servira aux ESP8266 satellites selon la syntaxe  WiFi.softAP(ssid, pwsd);
  Serial.print  ("Point d`accès a cette adresse : ");
  Serial.println(WiFi.softAPIP());

  WiFi.begin(ssid, pswd);
  Serial.print  ("Connexion Wifi ");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.print  ("\nConnexion WiFi réussie à cette adresse : ");
  Serial.println(WiFi.localIP());

Voici le résultat:

11:29:04.560 -> Point d`accès a cette adresse : 192.168.4.1
11:29:05.427 -> Connexion Wifi 
11:29:05.427 -> Connexion WiFi réussie à cette adresse : 192.168.4.1

Mes adresses locales sont en 192.168.1 et non en 192.168.4

Merci encore de m'aider.

il me semble que le Raspberry Pi Pico W (la puce CYW43439) ne prend pas en charge simultanément les modes station et point d'accès. Il peut être configuré dans l'un ou l'autre mode, mais pas dans les deux à la fois.

Espressif est plus avancé de ce côté, les ESP8266 et ESP32 peuvent gérer simultanément les 2 modes.

Envisagez de prendre plutôt un ESP32 ?

Voilà qui explique tout. Car, c'est bien ce que j'observe: un ou l'autre mais pas les deux. Mais j'ignorais totalement que ça venait de la puce.

Merci J-M-L. Je tenterai de contourner le problème de la manière suivante:

  • Première connexion: à l'internet pour lire l'heure et mettre mon horloge à jour
  • Coupure de la première connexion
  • Deuxième connexion: serveur point d'accès tout au long de la période de travail suivante. Cette période de travail ne dure jamais plus que 2-3 heures, le Pico saura rester assez près de l'heure internet dans un si court laps de temps.

Oui c’est un contournement possible. Il me semble que le Raspberry Pi Pico W ne possède pas de RTC intégrée - vous en avez une externe ? Quel type ?

Ca dépend de ce que tu es près a accepter comme dérive?
Je crois que la dérive est inférieur à 5s par jour, mais pas sûr de mes sources.
Mais naïvement j'aurais tendance à dire que quelque secondes doit être acceptable.

Voici mon code de solution

  //On va chercher l'heure sur internet
  WiFi.begin(ssid, pswd);
  Serial.print  ("Connexion Wifi ");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.print  ("\nConnexion WiFi réussie à cette adresse : ");
  Serial.println(WiFi.localIP());
  timeClient.begin();
    timeClient.update();
    heureAllume = timeClient.getEpochTime();    // Get Unix epoch time from the NTP server
    minute_ = minute(heureAllume);
    hour_   = hour(heureAllume);
    second_ = second(heureAllume);
    Time[4]  = minute_ % 10 + 48;
    Time[3]  = minute_ / 10 + 48;
    Time[1]  = hour_   % 10 + 48;
    Time[0]  = hour_   / 10 + 48;
    Time[7]  = second_ % 10 + 48;
    Time[6]  = second_ / 10 + 48;
  timeClient.end();
  WiFi.disconnect();
  milliAllume = millis();
  Serial.println(Time);

  //Une fois l'heure internet obtenue, on ouvre un serveur web pour les bsoins locaux
  WiFi.mode(WIFI_AP_STA);                       //Mode mixte de fonctionnement: à la fois serveur (STA) et point d'accès (AP)
  WiFi.softAPConfig(APlocalIP, APgateway, APsousRes);
  WiFi.softAP(APssid, APpwsd);    //Point d'accès ... ceci servira aux ESP8266 satellites selon la syntaxe  WiFi.softAP(ssid, pwsd);
  Serial.print  ("Point d`accès a cette adresse : ");
  Serial.println(WiFi.softAPIP());

C'est un affichage dans l'église, même à 15 secondes par jour, ça ne changerait rien puisque le système complet est éteint (alimentation électrique coupée) lorsque les gens partent et n'est allumé que quelques minutes avant l'arrivée de la foule.

1 Like

très bien :slight_smile:

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