Guía definitiva para configurar un ESP32 como punto de acceso WiFi en proyectos IoT

esp32 como punto de acceso
  • El ESP32 puede funcionar plenamente como AP, permitiendo crear redes WiFi privadas para dispositivos IoT.
  • La configuración básica es sencilla en el Arduino IDE, aunque la personalización avanzada y la integración con ESP-IDF aportan opciones profesionales.
  • Incorpora servidores web locales, maneja múltiples conexiones y soporta incluso proyectos de router NAT o extensores WiFi experimentales.

En el mundo del desarrollo de hardware DIY y la integración de sistemas embebidos, el ESP32 se ha convertido en un referente por sus múltiples capacidades de conectividad y bajo coste. Una de sus funciones más versátiles es la posibilidad de configurarlo como punto de acceso WiFi, lo cual abre la puerta a infinidad de aplicaciones, desde redes privadas de dispositivos hasta el uso como router improvisado en entornos sin infraestructura de red. Si alguna vez has pensado en montar tu propia red de control en casa, en la oficina, o en cualquier lugar donde falte acceso convencional a Internet, el ESP32 como AP puede ser justo lo que estabas buscando.

La realidad es que, a pesar de las enormes posibilidades de este pequeño pero potente microcontrolador de Espressif, la información que hay repartida por la red es muy dispersa, a menudo incompleta o destinada a usuarios avanzados que ya están familiarizados con plataformas como Arduino o ESP-IDF. En este artículo, hemos reunido, organizado, ampliado y explicado con claridad todo lo necesario para configurar el ESP32 como punto de acceso, cubriendo desde lo más básico para principiantes hasta ejemplos avanzados, pasando por configuraciones clave y buenas prácticas, además de aclarar los problemas más frecuentes que pueden encontrarse en el proceso. Vamos a meternos de lleno para que puedas convertir tu ESP32 en el centro de tu propia red WiFi.

¿Qué es un punto de acceso WiFi y para qué sirve en un ESP32?

Cuando hablamos de punto de acceso (AP, Access Point) nos referimos a un dispositivo capaz de crear una red inalámbrica a la que otros dispositivos pueden conectarse. El ESP32 permite, gracias a su controlador WiFi integrado, funcionar como un router simplificado, generando su propio SSID (nombre de red) y permitiendo conexiones simultáneas desde otros dispositivos, ya sean ordenadores, móviles o incluso otros microcontroladores. Es como si tu ESP32 se convirtiera, salvando las distancias, en un mini-router privado e independiente.

Esta funcionalidad es útil especialmente cuando no se dispone de una red WiFi externa (en un entorno aislado, en campo, durante el desarrollo de prototipos, etc.) o si quieres implementar una red privada y controlada que sea accesible sólo para tus dispositivos.

Aplicaciones comunes y escenarios de uso

  • Creación de redes de dispositivos IoT en entornos cerrados, donde es imprescindible mantener los dispositivos desconectados de Internet para más seguridad o aislamiento.
  • Configuración de servidores web locales en entornos portátiles: desde control domótico básico hasta paneles de administración.
  • Uso como nodo intermedio o extensor WiFi, cubriendo áreas donde la señal es débil o inexistente.
  • Proyectos de automatización, robótica y sensorización con topología de red privada sin depender de infraestructuras ajenas.

Hardware necesario para poner el ESP32 como Access Point

Poner en marcha tu propio AP con ESP32 apenas requiere material adicional. Lo imprescindible es:

  • Placa de desarrollo ESP32 (por ejemplo, NodeMCU ESP32 o cualquier versión compatible).
  • Ordenador con el entorno de desarrollo adecuado (Arduino IDE, ESP-IDF o cualquier otra plataforma de programación compatible).
  • Cable USB para conectar la placa al PC.

Es una solución extremadamente accesible y económica incluso para quienes empiezan en el mundo maker.

Modo Access Point vs. Modo Station: Diferencias claras

El ESP32 puede funcionar en tres modos operativos WiFi:

  • Station (STA): El microcontrolador se conecta a una red WiFi ya existente como un cliente más.
  • Access Point (AP o SoftAP): El dispositivo crea su propia red WiFi, permitiendo que otros se conecten a él.
  • Modo combinado (AP + STA): El ESP32 puede simultáneamente funcionar como cliente conectado a otro AP y, a la vez, crear su propia red.

El modo Station es útil cuando queremos, por ejemplo, enviar datos a servicios en la nube o comunicarnos a través de una red doméstica existente. En cambio, el modo AP es perfecto para redes privadas locales, como para conectar múltiples sensores o módulos entre sí sin depender de Internet.

Configuración básica del ESP32 como punto de acceso (SoftAP) con Arduino IDE

Vamos con la parte práctica. El entorno más utilizado, sobre todo por principiantes, es el Arduino IDE, para el que existe una amplia comunidad y numerosos ejemplos listos para usar.

La puesta en marcha básica se reduce a cargar el siguiente código y adaptarlo a tus necesidades:

#include <WiFi.h>
const char* ssid = "MiRedESP32";
const char* password = "clave1234";

void setup() {
  Serial.begin(115200);
  Serial.println();

  // Asigna configuración estática de red (opcional)
  IPAddress local_IP(192, 168, 4, 1);
  IPAddress gateway(192, 168, 4, 1);
  IPAddress subnet(255, 255, 255, 0);
  WiFi.softAPConfig(local_IP, gateway, subnet);

  // Inicializa el punto de acceso
  bool result = WiFi.softAP(ssid, password);

  if(result) {
    Serial.println("Punto de acceso configurado correctamente");
    Serial.print("Dirección IP del AP: ");
    Serial.println(WiFi.softAPIP());
  } else {
    Serial.println("Error al configurar el punto de acceso");
  }
}

void loop() {
  // Puedes añadir aquí lógica adicional
  delay(1000);
}

Al cargar este boceto:

  • El ESP32 lanza una red WiFi con el SSID y contraseña definidos.
  • Puedes conectar cualquier dispositivo WiFi y acceder a la IP definida (por defecto, suele ser 192.168.4.1).
  Qué es M5Stack: Todo sobre la plataforma IoT modular basada en ESP32

Nota: Para más detalles sobre los parámetros opcionales (canal, ocultar SSID, máximo de conexiones…) revisa la documentación oficial y los ejemplos del repositorio ESP32-Examples.

Parámetros avanzados al crear un SoftAP

La función WiFi.softAP() admite varios argumentos opcionales con los que puedes personalizar por completo cómo se comporta tu punto de acceso:

  • ssid: Identificador de la red (hasta 31 caracteres).
  • password: Contraseña de acceso (entre 8 y 63 caracteres; si es menor de 8, el SSID será ignorado y deberás dejar vacío este campo para una red abierta).
  • channel: Define el canal WiFi (1 a 13; por defecto el 1).
  • ssid_hidden: Si está a true, oculta el SSID de la red (función avanzada para aumentar la privacidad).
  • max_connection: Cuántos dispositivos se pueden conectar simultáneamente (0-8, valor por defecto 4).

Estos parámetros se pueden pasar en la llamada, así: WiFi.softAP(ssid, password, channel, ssid_hidden, max_connection);

Importante: Si la contraseña tiene menos de 8 caracteres, la red no será creada con clave, y deberás conectar sin autenticación.

Configuración IP y DHCP en el modo AP

Cuando configuras el ESP32 como AP, puedes establecer una dirección IP estática para el dispositivo y definir el rango de IPs entregadas por DHCP a los dispositivos clientes. Si no se configura nada, se usará la configuración por defecto (generalmente 192.168.4.1 para el ESP32 y el rango 192.168.4.x para los clientes).

Para definir manualmente la IP, gateway y máscara de subred:

WiFi.softAPConfig(local_IP, gateway, subnet);

Esto es fundamental cuando quieres evitar conflictos con otras redes o necesitas un rango personalizado para proyectos más avanzados.

Conexión de dispositivos y acceso a servicios en el ESP32

Una vez creado el AP, verás una nueva red WiFi con el nombre definido. Cualquier smartphone, portátil o microcontrolador se podrá conectar como a un router convencional, introduciendo la contraseña que hayas establecido.

Al estar conectados, puedes programar el ESP32 para que actúe como servidor web, servidor de sockets, MQTT… Las posibilidades son infinitas. Por ejemplo, puedes montar un pequeño panel de control HTML para encender y apagar GPIOs desde el móvil, controlar sensores, visualizar telemetrías, etc. La clave está en desarrollar la lógica del programa necesario y aprovechar la conexión local creada.

Ejemplo: Control de GPIOs mediante servidor web local

Un ejemplo muy popular es el de controlar los pines del ESP32 usando una página web servida localmente. El flujo habitual es así:

  1. El ESP32 crea el SoftAP.
  2. El dispositivo cliente se conecta vía WiFi.
  3. Abres el navegador y accedes a la IP del ESP32 (por ejemplo, 192.168.4.1).
  4. El ESP32 responde con una página web con botones o controles HTML para encender/apagar LEDs, sensores, etc.
  5. Al pulsar un botón, se genera una petición HTTP que el ESP32 interpreta y actúa en consecuencia.

Esto se puede implementar con la librería ESPAsyncWebServer, WebServer estándar o con servidores similares. Hay muchos ejemplos en repositorios públicos y foros.

Configuración avanzada y ejemplos en ESP-IDF

Para quienes buscan mayor control o rendimiento, el ESP-IDF (Espressif IoT Development Framework) es la opción profesional. Aquí, la configuración es más detallada y puede manejar aspectos muy avanzados, como el control de eventos, modos mixtos y aprovisionamiento de redes.

La secuencia básica para configurar el modo AP en ESP-IDF es la siguiente:

  • Inicializa la interfaz de red (esp_netif_init()).
  • Crea la cola de eventos (esp_event_loop_create()).
  • Crea la interfaz de red WiFi AP (esp_netif_create_default_wifi_ap()).
  • Crea la estructura wifi_config_t con los parámetros necesarios para el AP (SSID, contraseña, canal, número máximo de conexiones, modo de seguridad, etc.).
  • Configura el driver WiFi (esp_wifi_set_mode(WIFI_MODE_AP)).
  • Carga los parámetros con esp_wifi_set_config(ESP_IF_WIFI_AP, &wifi_config).
  • Arranca el driver WiFi con esp_wifi_start().

Un fragmento de ejemplo sería:

wifi_config_t wifi_config = {
    .ap = {
        .ssid = EXAMPLE_ESP_WIFI_SSID,
        .ssid_len = strlen(EXAMPLE_ESP_WIFI_SSID),
        .channel = EXAMPLE_ESP_WIFI_CHANNEL,
        .password = EXAMPLE_ESP_WIFI_PASS,
        .max_connection = EXAMPLE_MAX_STA_CONN,
        .authmode = WIFI_AUTH_WPA_WPA2_PSK
    },
};
if (strlen(EXAMPLE_ESP_WIFI_PASS) == 0) {
    wifi_config.ap.authmode = WIFI_AUTH_OPEN;
}
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_AP));
ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_AP, &wifi_config));

ESP-IDF facilita el manejo de eventos como la conexión de nuevos dispositivos al AP, desconexiones y cambios de estado en la red, lo que permite reaccionar programáticamente a eventos según la lógica de cada aplicación.

  Descubre qué es el Arduino IDE y cómo aprovecharlo al máximo

Manejo de eventos WiFi más habituales en ESP-IDF

Algunos de los eventos clave que puedes tratar en tu código incluyen:

  • WIFI_EVENT_AP_START: El AP está listo y funcionando.
  • WIFI_EVENT_AP_STACONNECTED: Un dispositivo se ha conectado al AP; puedes, por ejemplo, mostrar su MAC o IP.
  • WIFI_EVENT_AP_STADISCONNECTED: Un dispositivo previamente conectado se ha desconectado.

Estos eventos permiten, por ejemplo, monitorizar conexiones activas, mostrar estadísticas o implementar filtros de acceso.

¿Puedo usar el ESP32 como extensor WiFi o router NAT?

Hay experimentos y proyectos en los que el ESP32 no solo actúa como AP puro, sino que también hace de puente (bridge) entre una red Ethernet y una red WiFi o incluso como router NAT de bajo coste. Sin embargo, es importante ser realista: el rendimiento en velocidad y estabilidad es modesto comparado con routers dedicados.

Experimentadores han conseguido velocidades de unos 16 Mbit/s (en ESP32) usando soluciones como el firmware de martin-ger/esp32_nat_router, mientras que el ESP8266 (modelo anterior) ronda los 5 Mbit/s. La estabilidad puede ser suficiente para tareas ligeras o emergencias, pero depende mucho de la calidad de señal y la cantidad de dispositivos conectados.

Si tu objetivo es replicar las funciones de un router doméstico, deberás utilizar proyectos específicos como los de Martin Ger o variantes que puedes encontrar en , donde explican el proceso desde el flasheo del firmware hasta la configuración web (atención, hay que flashear la placa fuera del IDE de Arduino e incluso bajo Linux usando esptool.py).

Guía rápida: Cómo instalar y configurar un firmware de router NAT en ESP32

  • Descarga los ficheros .bin del proyecto adecuado (revisa el subdirectorio /build correspondiente a tu chip).
  • Conecta el ESP32 al PC vía USB y ponlo en modo flash (normalmente pulsando un botón).
  • Utiliza la herramienta esptool.py para volcar (flash) los binarios en la memoria del ESP32, indicando las direcciones apropiadas (0x1000, 0x10000, 0x8000…).
  • Una vez flasheado, reinicia el ESP32 y aparecerá en la lista de redes WiFi bajo el SSID especificado en la configuración de firmware (“esp32” o “Nat Router”).
  • Conéctate a dicha red, accede a http://192.168.4.1/ y usa el panel web para ajustar la configuración AP (contraseña, nombre de red, datos para la STA en caso de bridge, etc.).
  • Si es necesario, ajusta el tamaño de memoria flash según el modelo de tu placa o emplea la configuración adecuada para ESP-01, ESP8285, etc.

Importante: El soporte oficial para extender WiFi como router NAT en ESP32 aún es experimental y no está garantizado por Espressif. Estos proyectos han sido desarrollados por la comunidad y pueden no estar libres de fallos. Consulta los issues en Github si tienes problemas.

Servidor de configuración: personalización desde el navegador

Para evitar editar tu código cada vez que cambies de red, existen soluciones que montan un pequeño servidor web en el propio ESP32. Así, mediante una sencilla interfaz, puedes buscar redes disponibles, seleccionar cual usar, introducir contraseñas, ajustar el nombre (SSID) y la clave de tu AP… todo ello desde el propio móvil o PC, sin necesidad de reprogramar la placa.

Estas soluciones son ideales para dispositivos que van a estar desplegados en diferentes ubicaciones, ya que facilitan una configuración dinámica y persistente de la conectividad WiFi. Si deseas aprender más sobre las posibilidades de integración del ESP32, puedes consultar cómo integrar ESP32 con Home Assistant.

Ejemplo de servidor web de configuración HTML en ESP (ESP8266 o ESP32)

El servidor web suele mostrar lo siguiente:

  • Estado de la conexión (conectado/no conectado, dirección IP, etc.).
  • Formulario con listado de redes WiFi detectadas donde solo hay que marcar la deseada e introducir la contraseña.
  • Campos opcionales para nombre y clave del AP generado.
  • Botones para guardar la configuración o reiniciar el dispositivo.

Cuando se guarda la configuración, el ESP intenta conectar (si fallase, activa el modo AP para que puedas retocar los parámetros). Este modo está presente en muchos proyectos de ejemplo, y es sencillo de implementar o adaptar a tus necesidades. Para entender mejor las capacidades de los microcontroladores, puede ser útil también conocer qué es MicroPython en Arduino.

Otras consideraciones técnicas relevantes para Access Point en ESP32

1. Límite de conexiones simultáneas

Por defecto, el ESP32 permite hasta 4 conexiones simultáneas. Ajusta el parámetro max_connection según tus necesidades, pero ten presente que el máximo teórico es 8 dispositivos conectados de forma estable. Más allá de eso, las conexiones se limitan esperando a que un usuario se desconecte.

  Guía definitiva sobre el cable jumper: qué es, tipos, usos y consejos para tus proyectos electrónicos

2. Seguridad: WPA2 y autenticación

El ESP32 permite crear redes abiertas (sin contraseña) o protegidas por WPA/WPA2 PSK. No se recomienda dejar el AP abierto salvo para pruebas cortas. Para mayor seguridad, usa claves robustas y considera ocultar el SSID si no necesitas hacer pública tu red.

3. Ocultación del SSID

Activando el parámetro ssid_hidden puedes evitar que tu red aparezca en la lista de redes disponibles. Esta es una medida de ofuscación, pero no de seguridad real: usuarios avanzados pueden detectarla con herramientas específicas.

4. Canales y espectro

Puedes seleccionar en qué canal WiFi operar tu AP (1-13). En entornos saturados o industriales, escoger un canal poco concurrido puede mejorar la estabilidad y el alcance de la red. Utiliza programas de análisis WiFi para hacer la mejor elección, sobre todo en grandes ciudades o entornos con múltiples routers cercanos.

Diagnóstico y solución de problemas comunes

Hay varias dificultades recurrentes al trabajar en modo AP:

  • La red creada no aparece en la lista de disponibles: Verifica que el ESP32 esté correctamente alimentado y que el código cargado sea el adecuado. Comprueba claves y SSID.
  • No permite más de 4 conexiones: Recuerda aumentar el parámetro max_connection sólo hasta 8 y ten en cuenta la RAM disponible.
  • Dispositivos no pueden navegar: Recuerda que por defecto el ESP32 en modo AP sólo ofrece red local; no tienes acceso a Internet salvo que implementes routing/NAT adicional o puente a otra red.
  • Problemas con la contraseña: Las contraseñas de menos de 8 caracteres no están permitidas por el estándar. Usa siempre una clave segura y revisa el log serie en caso de dudas.
  • Acceso a la interfaz de configuración tras cambios: Si modificas la IP o SSID, deberás conectarte manualmente al nuevo nombre y dirección indicada.
  • Firmware inestable: Si implementas funciones avanzadas o usas proyectos de terceros, revisa compatibilidad de hardware y posibles bugs abiertos en repositorio antes de reportar incidencias.

Posibilidades avanzadas: modos combinados y escaneo de redes

El ESP32 soporta trabajar en modo mixto (AP + STA), permitiendo que el propio microcontrolador esté simultáneamente conectado a una red externa y sirviendo de AP local. Esto es muy útil para proyectos de puente o para transmitir datos adquiridos localmente a servidores remotos, manteniendo la conectividad local.

  • Para trabajar en modo mixto establece: esp_wifi_set_mode(WIFI_MODE_APSTA).
  • Crea dos estructuras de configuración WiFi, una para la parte AP (.ap) y otra para la parte STA (.sta).
  • Puedes configurar la gestión de eventos y lógica de reconexión por separado en ambas interfaces.

Así, por ejemplo, un sensorizado local puede seguir funcionando y recogiendo datos, aunque la conexión externa caiga temporalmente.

Ejemplo de escaneo de redes WiFi desde el ESP32

Para proyectos que requieren buscar y listar redes disponibles, el ESP32 ofrece una API completa de escaneo (tanto en modo activo como pasivo), retornando información como SSID, intensidad de señal (RSSI), tipo de cifrado y canal. Esto puede ser útil para elegir automáticamente la red más potente, mostrar opciones en una interfaz de configuración o depurar problemas de cobertura. Si deseas aprender más sobre cómo incorporar detección de redes en tu proyecto, también es recomendable revisar información en qué es Arduino.

Aspectos de seguridad y administración en ESP32 configurado como AP

  • No reutilices contraseñas de otras redes críticas.
  • El alcance del ESP32 en modo AP, si bien suficiente para una pequeña estancia o taller, es limitado en comparación con routers profesionales.
  • Reinicia la placa de vez en cuando si va a estar mucho tiempo encendida, para evitar saturaciones y fugas de memoria en proyectos avanzados.
  • Monitorea conexiones y tráfico si tu aplicación lo requiere (por ejemplo, vía log serie o funciones personalizadas en tu código).

Proyectos y recursos recomendados

  • : excelente para principios y casos de uso habituales.
  • : si te interesa el modo extensor o bridge.
  • Documentación oficial de ESP-IDF.

A lo largo de este tutorial, hemos repasado todas las opciones y potencialidades del ESP32 como punto de acceso WiFi: desde conceptos básicos, configuración con Arduino y ESP-IDF, desarrollo de servidores web de control, hasta la implementación de routers NAT o extensores in situ. La clave reside en ajustar tus expectativas al hardware disponible, diseñar con seguridad y robustez, y aprovechar la enorme flexibilidad de este microcontrolador. Ya sea para proyectos personales, prototipos industriales o soluciones embebidas profesionales, habilitar el modo AP en el ESP32 te abre un abanico casi infinito de soluciones y experimentación para tu red de dispositivos.

Descubre Arduino: plataforma abierta, proyectos e historia para principiantes y avanzados

Deja un comentario