Uso de WiFi
Inicio
Seeed Studio XIAO ESP32C3 soporta conectividad WiFi con IEEE 802.11b/g/n. Esta wiki introducirá los conceptos básicos del uso de WiFi en esta placa.
⚠️ Ten cuidado al usar la placa como punto de acceso (access point). Puede sobrecalentarse y causar quemaduras.
Configuración del hardware
- Paso 1. Conecta la antena WiFi/Bluetooth incluida al conector IPEX en la placa

- Paso 2. Conecta XIAO ESP32C3 a tu computadora mediante un cable USB Type-C

Modo 1: Modo STA (Modo Estación) - Escanear redes WiFi
Escanear puntos de acceso Wi-Fi
En este ejemplo, vamos a usar XIAO ESP32C3 para escanear las redes WiFi disponibles a su alrededor. Aquí la placa será configurada en Modo Estación (STA).
- Paso 1. Copia y pega el código de abajo en Arduino IDE
- Escaneo Wi-Fi Básico
- Escaneo Wi-Fi Avanzado
#include "WiFi.h"
void setup() {
Serial.begin(115200);
// Set WiFi to station mode and disconnect from an AP if it was previously connected
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
Serial.println("Setup done");
}
void loop() {
Serial.println("scan start");
// WiFi.scanNetworks will return the number of networks found
int n = WiFi.scanNetworks();
Serial.println("scan done");
if (n == 0) {
Serial.println("no networks found");
} else {
Serial.print(n);
Serial.println(" networks found");
for (int i = 0; i < n; ++i) {
// Print SSID and RSSI for each network found
Serial.print(i + 1);
Serial.print(": ");
Serial.print(WiFi.SSID(i));
Serial.print(" (");
Serial.print(WiFi.RSSI(i));
Serial.print(")");
Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN) ? " " : "*");
delay(10);
}
}
Serial.println("");
// Wait a bit before scanning again
delay(5000);
}
/*
* This sketch demonstrates how to scan WiFi networks.
* The API is based on the Arduino WiFi Shield library, but has significant changes as newer WiFi functions are supported.
* E.g. the return value of `encryptionType()` different because more modern encryption is supported.
*/
#include "WiFi.h"
void setup() {
Serial.begin(115200);
// Set WiFi to station mode and disconnect from an AP if it was previously connected.
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
Serial.println("Setup done");
}
void loop() {
Serial.println("Scan start");
// WiFi.scanNetworks will return the number of networks found.
int n = WiFi.scanNetworks();
Serial.println("Scan done");
if (n == 0) {
Serial.println("no networks found");
} else {
Serial.print(n);
Serial.println(" networks found");
Serial.println("Nr | SSID | RSSI | CH | Encryption");
for (int i = 0; i < n; ++i) {
// Print SSID and RSSI for each network found
Serial.printf("%2d", i + 1);
Serial.print(" | ");
Serial.printf("%-32.32s", WiFi.SSID(i).c_str());
Serial.print(" | ");
Serial.printf("%4ld", WiFi.RSSI(i));
Serial.print(" | ");
Serial.printf("%2ld", WiFi.channel(i));
Serial.print(" | ");
switch (WiFi.encryptionType(i)) {
case WIFI_AUTH_OPEN: Serial.print("open"); break;
case WIFI_AUTH_WEP: Serial.print("WEP"); break;
case WIFI_AUTH_WPA_PSK: Serial.print("WPA"); break;
case WIFI_AUTH_WPA2_PSK: Serial.print("WPA2"); break;
case WIFI_AUTH_WPA_WPA2_PSK: Serial.print("WPA+WPA2"); break;
case WIFI_AUTH_WPA2_ENTERPRISE: Serial.print("WPA2-EAP"); break;
case WIFI_AUTH_WPA3_PSK: Serial.print("WPA3"); break;
case WIFI_AUTH_WPA2_WPA3_PSK: Serial.print("WPA2+WPA3"); break;
case WIFI_AUTH_WAPI_PSK: Serial.print("WAPI"); break;
default: Serial.print("unknown");
}
Serial.println();
delay(10);
}
}
Serial.println("");
// Delete the scan result to free memory for code below.
WiFi.scanDelete();
// Wait a bit before scanning again.
delay(5000);
}
Paso 2. Sube el código y abre el Monitor Serie para comenzar a escanear redes WiFi

Conectar a una red WiFi
En este ejemplo, vamos a usar XIAO ESP32C3 para conectar a una red WiFi.
- Paso 1. Copia y pega el código de abajo en Arduino IDE
- Conexión Wi-Fi básica
- Conexión Wi-Fi avanzada
#include <WiFi.h>
const char* ssid = "your-ssid";
const char* password = "your-password";
void setup() {
Serial.begin(115200);
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
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());
}
void loop() {}
#include <WiFi.h>
const char *ssid = "your-ssid";
const char *password = "your-password";
void setup() {
Serial.begin(115200);
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
// Will try for about 10 seconds (20x 500ms)
int tryDelay = 500;
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
while (true) {
switch (WiFi.status()) {
case WL_NO_SSID_AVAIL: Serial.println("[WiFi] SSID not found"); break;
case WL_CONNECT_FAILED:
Serial.print("[WiFi] Failed - WiFi not connected! Reason: ");
return;
break;
case WL_CONNECTION_LOST: Serial.println("[WiFi] Connection was lost"); break;
case WL_SCAN_COMPLETED: Serial.println("[WiFi] Scan is completed"); break;
case WL_DISCONNECTED: Serial.println("[WiFi] WiFi is disconnected"); break;
case WL_CONNECTED:
Serial.println("[WiFi] WiFi is connected!");
Serial.print("[WiFi] IP address: ");
Serial.println(WiFi.localIP());
return;
break;
default:
Serial.print("[WiFi] WiFi Status: ");
Serial.println(WiFi.status());
break;
}
delay(tryDelay);
if (numberOfTries <= 0) {
Serial.print("[WiFi] Failed to connect to WiFi!");
// Use disconnect function to force stop trying to connect
WiFi.disconnect();
return;
} else {
numberOfTries--;
}
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {}
Paso 2. Sube el código y abre el Monitor Serie para verificar que la placa esté conectada a la red WiFi

Modo 2: Modo Soft-AP (Funcionando como STA) - Usar como Punto de Acceso
En este ejemplo, vamos a usar XIAO ESP32C3 como un punto de acceso WiFi donde otros dispositivos pueden conectarse a él. Esto es similar a la función de punto de acceso WiFi en los teléfonos móviles.
- Paso 1. Copia y pega el código de abajo en Arduino IDE
#include "WiFi.h"
void setup() {
Serial.begin(115200);
WiFi.softAP("ESP_AP", "123456789");
}
void loop() {
Serial.print("Host Name:");
Serial.println(WiFi.softAPgetHostname());
Serial.print("Host IP:");
Serial.println(WiFi.softAPIP());
Serial.print("Host IPV6:");
#if ESP_ARDUINO_VERSION_MAJOR < 3
Serial.println(WiFi.softAPIPv6());
#else
Serial.println(WiFi.softAPlinkLocalIPv6());
#endif
Serial.print("Host SSID:");
Serial.println(WiFi.SSID());
Serial.print("Host Broadcast IP:");
Serial.println(WiFi.softAPBroadcastIP());
Serial.print("Host mac Address:");
Serial.println(WiFi.softAPmacAddress());
Serial.print("Number of Host Connections:");
Serial.println(WiFi.softAPgetStationNum());
Serial.print("Host Network ID:");
Serial.println(WiFi.softAPNetworkID());
Serial.print("Host Status:");
Serial.println(WiFi.status());
delay(1000);
}
Si la versión de tu placa de desarrollo ESP32 ya se actualizó a 3.0.0, necesitas cambiar el código de softAPIPv6()
a softAPlinkLocalIPv6()
.
Paso 2. Sube los códigos y abre el Monitor Serie para verificar más detalles sobre el punto de acceso WiFi

Paso 3. Escanea redes WiFi en una PC o teléfono móvil y podrás conectarte a esta red recién creada usando la contraseña que especificamos en el código

Ahora verás que el Número de Conexiones de Host en el monitor serie se ha actualizado a 1

XIAO ESP32C3 & Home Assistant
¡Nos complace anunciar que hemos creado soporte para que el XIAO ESP32C3 acceda a ESPHome y Home Assistant!
Para más información sobre esta sección, consulta los tutoriales relevantes.
Referencia
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender diferentes preferencias y necesidades.