point-acces.ino

Arduino Nano ESP32 · Fichier : point-acces.ino · Langage : Arduino · Usage : Créer un point d'accès WiFi pour configurer la carte

Sans réseau disponible, la Nano ESP32 devient son propre point d'accès : un smartphone connecté à NanoESP32-Config ouvre la page de réglages hébergée sur la carte. Le patron de configuration des produits autonomes, en 40 lignes.

Matériel requis

Un Arduino Nano ESP32 (ESP32-S3 double cœur, Wi-Fi 2,4 GHz + Bluetooth Low Energy, brochage physique compatible Nano, USB natif, broches 3,3 V uniquement). Nano ESP32 seule, un smartphone ou laptop pour s'y connecter.

Câblage

Aucun câblage ; l'AP apparaît avec une IP fixe 192.168.4.1 côté carte.

Fonctionnement

WiFi.softAP lance le beacon WPA2 ; WebServer gère GET/POST avec gestionnaires lambda. handleClient() dans loop() traite une requête par tour — suffisant pour la configuration.

Exécution

Installez le package Arduino ESP32 Boards (ou le guide Nano ESP32 officiel), sélectionnez Arduino Nano ESP32, téléversez. Les broches sont en 3,3 V : n'envoyez jamais 5 V sur une entrée. Le moniteur série utilise l'USB natif.

Variantes

Basculez automatiquement en AP si la connexion au réseau principal échoue 3 fois, ou servez une page avec le scan WiFi pour choisir sa SSID.

point-acces.ino

// Mode point d'acces : la Nano ESP32 devient elle-meme le routeur.
// Utile pour la configuration ou l'usage sans infrastructure.
#include <WiFi.h>
#include <WebServer.h>

WebServer serveur(80);
const char AP_SSID[] = "NanoESP32-Config";
const char AP_PASS[] = "config1234"; // WPA2, min 8 caracteres

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_AP);
  WiFi.softAP(AP_SSID, AP_PASS);
  Serial.print(F("AP "));
  Serial.print(AP_SSID);
  Serial.print(F(" — IP "));
  Serial.println(WiFi.softAPIP()); // typiquement 192.168.4.1

  serveur.on("/", []() {
    serveur.send(200, "text/html",
      "<h3>Nano ESP32</h3>"
      "<form method='POST' action='/reglages'>"
      "Seuil <input name='seuil' value='512'>"
      "<button>Enregistrer</button></form>");
  });
  serveur.on("/reglages", HTTP_POST, []() {
    int seuil = serveur.arg("seuil").toInt();
    Serial.println("seuil=" + String(seuil));
    serveur.send(200, "text/plain", "enregistre");
  });
  serveur.begin();
}

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

← Retour à la fiche