XIAO-ESP32S3 Wi-Fi LED Code
ESP32[edit]
https://www.raspberryme.com/fonctions-utiles-de-la-bibliotheque-wi-fi-esp32-arduino-ide/
ESP32 LED user[edit]
Variante avec clignotement
Allumer & éteindre la LED user (orange)
#define USER_LED 21
void setup() {
pinMode(USER_LED, OUTPUT);
}
void loop() {
digitalWrite(USER_LED, LOW); // Allume la LED
delay(1000); // Attendre 1 seconde
digitalWrite(USER_LED, HIGH); // Éteint la LED
delay(1000); // Attendre 1 seconde
}
La LED s’allume lorsque la broche est mise à **LOW** (niveau bas) et s’éteint lorsqu’elle est mise à **HIGH**.
⚠️ Petite subtilité : sur le XIAO ESP32S3, la LED s’allume quand on écrit LOW et s’éteint avec HIGH (logique inversée).
// Définir la broche de la LED utilisateur
#define USER_LED 21 // GPIO21 est généralement utilisé pour la LED utilisateur
void setup() {
pinMode(USER_LED, OUTPUT); // Définir la broche comme sortie
digitalWrite(USER_LED, LOW); // Allumer la LED (LOW = ON)
}
void loop() {
// La LED reste allumée
}
ESP32 Code variante 1[edit]
#include <WiFi.h>
const char* ssid = "monsid";
const char* password = "monpass";
WiFiServer server(80);
// Broche de la LED utilisateur sur XIAO ESP32S3
#define USER_LED 21
void setup()
{
Serial.begin(115200);
pinMode(USER_LED, OUTPUT); // Définir la broche LED comme sortie
digitalWrite(USER_LED, HIGH); // Éteindre la LED au démarrage
delay(10);
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
server.begin();
}
void loop(){
WiFiClient client = server.available();
if (client) {
Serial.println("New Client.");
String currentLine = "";
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n') {
if (currentLine.length() == 0) {
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println();
client.print("Click <a href=\"/H\">here</a> to turn the LED ON.<br>");
client.print("Click <a href=\"/L\">here</a> to turn the LED OFF.<br>");
client.println();
break;
} else {
currentLine = "";
}
} else if (c != '\r') {
currentLine += c;
}
if (currentLine.endsWith("GET /H")) {
digitalWrite(USER_LED, LOW); // Allumer la LED
}
if (currentLine.endsWith("GET /L")) {
digitalWrite(USER_LED, HIGH); // Éteindre la LED
}
}
}
client.stop();
Serial.println("Client Disconnected.");
}
}
Nouveau contenu HTML stylisé
Remplace la partie où tu envoies la réponse HTTP dans ton code par ceci :
Quand tu accèdes à l’adresse IP de ton XIAO ESP32S3, tu verras une page avec :
Un fond clair
Un titre centré
Deux boutons bleus modernes pour allumer/éteindre la LED
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println();
client.println("<!DOCTYPE html>");
client.println("<html lang='fr'>");
client.println("<head>");
client.println("<meta charset='UTF-8'>");
client.println("<meta name='viewport' content='width=device-width, initial-scale=1.0'>");
client.println("<title>Contrôle LED XIAO</title>");
client.println("<style>");
client.println("body { font-family: Arial, sans-serif; background-color: #f0f0f0; text-align: center; padding-top: 50px; }");
client.println("h1 { color: #333; }");
client.println(".button { display: inline-block; padding: 15px 30px; margin: 20px; font-size: 18px; color: white; background-color: #007BFF; border: none; border-radius: 8px; text-decoration: none; transition: background-color 0.3s ease; }");
client.println(".button:hover { background-color: #0056b3; }");
client.println("</style>");
client.println("</head>");
client.println("<body>");
client.println("<h1>Contrôle de la LED utilisateur</h1>");
client.println("<a href=\"/H\" class=\"button\">Allumer la LED</a>");
client.println("<a href=\"/L\" class=\"button\">Éteindre la LED</a>");
client.println("</body>");
client.println("</html>");
client.println(); // Fin de la réponse
ESP32 XIAO-ESP32S3[edit]
version amélioré✅
Grove Base for XIAO
XIAO-ESP32S3 🛜
page html qui permet d'allumer ou éteindre la LED utilisateur de couleur orange
#include <WiFi.h>
const char* ssid = "monsid";
const char* password = "monpass";
WiFiServer server(80);
// Broche de la LED utilisateur sur XIAO ESP32S3
#define USER_LED 21
void setup()
{
Serial.begin(115200);
pinMode(USER_LED, OUTPUT); // Définir la broche LED comme sortie
digitalWrite(USER_LED, HIGH); // Éteindre la LED au démarrage
delay(10);
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
server.begin();
}
void loop(){
WiFiClient client = server.available();
if (client) {
Serial.println("New Client.");
String currentLine = "";
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n') {
if (currentLine.length() == 0) {
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println();
client.println("<!DOCTYPE html>");
client.println("<html lang='fr'>");
client.println("<head>");
client.println("<meta charset='UTF-8'>");
client.println("<meta name='viewport' content='width=device-width, initial-scale=1.0'>");
client.println("<title>Contrôle LED XIAO</title>");
client.println("<style>");
client.println("body { font-family: Arial, sans-serif; background-color: #f0f0f0; text-align: center; padding-top: 50px; }");
client.println("h1 { color: #333; }");
client.println(".button { display: inline-block; padding: 15px 30px; margin: 20px; font-size: 18px; color: white; background-color: #007BFF; border: none; border-radius: 8px; text-decoration: none; transition: background-color 0.3s ease; }");
client.println(".button:hover { background-color: #0056b3; }");
client.println("</style>");
client.println("</head>");
client.println("<body>");
client.println("<h1>Contrôle de la LED utilisateur</h1>");
client.println("<a href=\"/H\" class=\"button\">Allumer la LED</a>");
client.println("<a href=\"/L\" class=\"button\">Éteindre la LED</a>");
client.println("</body>");
client.println("</html>");
client.println(); // Fin de la réponse
break;
} else {
currentLine = "";
}
} else if (c != '\r') {
currentLine += c;
}
if (currentLine.endsWith("GET /H")) {
digitalWrite(USER_LED, LOW); // Allumer la LED
}
if (currentLine.endsWith("GET /L")) {
digitalWrite(USER_LED, HIGH); // Éteindre la LED
}
}
}
client.stop();
Serial.println("Client Disconnected.");
}
}