ESP32 WiFI en mode AP uniquement

Bonjour à tous,

Je débute et suis en train d'apprendre à utiliser un ESP32 en WiFi.

J'ai réussi d'abord à faire ce que je voulais en mode station.

Puis j'ai vu qu'on pouvait à travailler à la fois en mode station ET point d'accès en même temps. J'ai essayé et j'ai réussi à faire tourner un exemple ( affichage sur mon smartphone d'une page du serveur Web ( d'une seule page principale ) que j'ai placé dans mon ESP32 ).

J'essaie maintenant de travailler uniquement en mode PA ( pas trouvé d'exemples sur le web ) mais je n'arrive pas à faire tourner correctement mon exemple.

Voici mon code ( je ne présente ici que le minimum ) : il n'y a aucune erreur à la compilation, ni au téléversement, ni à l’exécution :

#include "ESP32WebServer.h"

ESP32WebServer serverWeb (80);

void handleRoot ()
{
  serverWeb.send(200,"text/html","Page Principale");
}

const char *soft_ap_ssid = "Point d'Accès à mon ESP32";


void setup() {
  
WiFi.mode(WIFI_AP);

Serial.println("\n[*] Création du Point d'Accès");
WiFi.softAP(soft_ap_ssid);
Serial.print("[+] IP : ");
Serial.println(WiFi.softAPIP());

// mise ne place du server Web
serverWeb.on("/",handleRoot);
serverWeb.begin();

}

void loop() {    }

à l’exécution, la console série m'indique qu'il a bien été créé un point d'accès et que son IP est 192.168.4.1

Je pensais alors qu'en tapant dans la barre d'adresse de mon matériel ( mon ordi ou mon smartphone ), une fois connecté au point d'accès ( et déconnecté de mon réseau routeur et donc d'internet ) cela : 192.168.4.1/ , cela appellerait la fonction handleRoot ( ) et cela m'afficherait "Page Principale" ( comme ça marche bien dans les deux autres modes que j'ai testés )

Mais en pratique, on m'indique que 192.168.4.1/ n'est pas trouvé ( je signale que windows m'indique que ce réseau est "limité" et "ouvert" )

Donc pouvez-vous me dire ce qui ne va pas ? y-a-t-il un problème dans mon code ? dois-je demander autre chose que 192.168.4.1/ ? y-a-il un élément relatif au principe du mode Point d'Accès que je n'ai pas compris ?

( question subsidiaire : faut-il à la fois écrire " WiFi.mode(WIFI_AP); " ET " WiFi.softAP(soft_ap_ssid); " ou la deuxième déclaration suffit-elle à déclarer qu'on travaille en mode AP ? )

Bon comme j'y travaille depuis ce matin, j'espère que vous pourrez m'aider car je commence à saturer ( je rappelle que je débute alors Merci d'employer des termes et des explications pas trop compliquées ni trop techniques )

Merci par avance.

Bonjour

Toutes les informations 'officielles' sur le mode SoftAP sont ici
https://docs.espressif.com/projects/arduino-esp32/en/latest/api/wifi.html

BJe pensais alors qu'en tapant dans la barre d'adresse de mon matériel ( mon ordi ou mon smartphone ), une fois connecté au point d'accès ( et déconnecté de mon réseau routeur et donc d'internet ) cela : 192.168.4.1/ , cela appellerait la fonction handleRoot ( ) et cela m'afficherait "Page Principale" ( comme ça marche bien dans les deux autres modes que j'ai testés )
Mais en pratique, on m'indique que 192.168.4.1/

Pour accéder à la page de ton petit serveur sur ES32 as-tu essayé après désactivé temporairement la data sur ton smartphone pour éviter qu'il aille sur internet pour tenter de trouver l'url ?
IL me semble avoir du faire ça lors de tests de SoftAP

Classiquement, tu ne peux accéder à un point d'accès qu'en te connectant sur le point d'accès en question, avec un smartphone ou un PC équipé WIFI.
Pour expliquer simplement (j'espère), à partir d'un navigateur, tu ne peux accéder à un réseau 192.168.4.X que si l'interface réseau du PC ou du smartphone est dans le même sous-réseau 192.168.4.X.
Donc, avec ton PC WIFI ou ton smartphone, il faut te connecter au point d'accès créé par l'ESP32, et non pas au réseau WIFI de ta box.

il semble me souvenir que même connecté au bon point d'accès WiFi on peut être amené à désactiver la data pour que l'application aille sur le bon réseau , qu'elle n'aille pas chercher via la 4G....dans le cas du smartphone bien entendu !!

Je fais des essais depuis mon ordi que j'ai du déconnecter de ma box pour le connecter à mon point d'accès. Donc il n'a plus accès à internet.

C'est bien ce que je fais : je suis connecté au point d'accès et déconnecté de ma box.

@PierreM_Arduino : vois l'exemple WiFIAccessPoint du groupe WiFi (IDE ARDuino +extension ESP32)
=petit serveur html sur SofAP

Donc ton ordi doit maintenant avoir une adresse IP en 192.168.4.X, et donc pouvoir afficher la page de ton AP.

... s'il ya une page viable à afficher.....j'ai un doute à ce sujet.

Je propose à @PierreM_Arduino de regarder de près l'exemple WiFI / WiFiAccessPoint fourni avec l'extension ESP32 pour IDE Arduino

Oui, en effet, je n'avais pas regardé le code en détail, je crois qu'il manque quelque chose : :woozy_face:

void loop() {    }

Ceci serait plus approprié :

void loop() {
  server.handleClient();
}

Bonne idée ! Je viens de réussir à le trouver : étude à venir

évidemment ! j'ai dû foirer un copier/coller depuis mon code précédent ...
et surtout j'ai cherché pendant deux heures !
et ça marche !
Merci à tous les deux !

Deux heures, ce n'est pas grand chose.

Comme je ne maitrise pas du tout le fonctionnement de ce forum et que comme il s'agissait d'une erreur, d'un oubli individuel, il est inutile de garder cette discussion au sein de ce forum car elle ne pourra pas servir à quelqu'un par la suite. Y-a-t-il possibilité de supprimer un topic ( qu'on a soi-même créé ) du forum ?