¿Estás buscando una manera de configurar un punto de acceso (AP) ESP32 para un servidor web? ¡Has llegado al lugar correcto! En este artículo, te guiaremos paso a paso a través del proceso para que puedas tener tu propio servidor web utilizando un ESP32. ¡Sigue leyendo para descubrir cómo hacerlo!
El ESP32 puede funcionar como una estación WLAN, un punto de acceso o ambos. En este tutorial le mostraremos cómo configurar el ESP32 como punto de acceso usando Arduino IDE.
En la mayoría de los proyectos que utilizan ESP32, conectamos el ESP32 a un enrutador WiFi (consulte nuestro tutorial del servidor web ESP32). De esta forma podremos acceder al ESP32 a través de la red local.
En esta situación, el enrutador actúa como punto de acceso y el ESP32 se configura como estación. En este escenario, necesita estar conectado a su enrutador (red local) para controlar el ESP32.
Sin embargo, si configura el ESP32 como punto de acceso (punto de acceso), puede conectarse al ESP32 utilizando cualquier dispositivo habilitado para Wi-Fi sin tener que conectarse a su enrutador.
En pocas palabras, cuando configura el ESP32 como punto de acceso, crea su propia red WiFi y los dispositivos (estaciones) WiFi cercanos pueden conectarse a ella (como su teléfono inteligente o su computadora).
Aquí le mostraremos cómo configurar el ESP32 como punto de acceso en sus proyectos de servidor web. Esto significa que no es necesario estar conectado a un enrutador para controlar su ESP32. Dado que el ESP32 tampoco se conecta a una red cableada (como su enrutador), se le llama Soft AP (Soft Access Point).
Instalación de la placa ESP32 en Arduino IDE
Existe un complemento para Arduino IDE que le permite programar el ESP32 usando el Arduino IDE y su lenguaje de programación. Siga uno de los siguientes tutoriales para preparar su IDE de Arduino:
- instrucciones de Windows – Instalación de la placa ESP32 en Arduino IDE
- Instrucciones para Mac y Linux – Instalación de la placa ESP32 en Arduino IDE
Punto de acceso ESP32
En este ejemplo, modificamos un servidor web ESP32 de un tutorial anterior para agregar funcionalidad de punto de acceso. Lo que le mostramos aquí se puede utilizar con cualquier ejemplo de servidor web ESP32.
Cargue el boceto que se proporciona a continuación para configurar el ESP32 como punto de acceso.
/*********
Rui Santos
Complete project details at https://randomnerdtutorials.com
*********/
// Load Wi-Fi library
#include <WiFi.h>
// Replace with your network credentials
const char* ssid = "ESP32-Access-Point";
const char* password = "123456789";
// Set web server port number to 80
WiFiServer server(80);
// Variable to store the HTTP request
String header;
// Auxiliar variables to store the current output state
String output26State = "off";
String output27State = "off";
// Assign output variables to GPIO pins
const int output26 = 26;
const int output27 = 27;
void setup() {
Serial.begin(115200);
// Initialize the output variables as outputs
pinMode(output26, OUTPUT);
pinMode(output27, OUTPUT);
// Set outputs to LOW
digitalWrite(output26, LOW);
digitalWrite(output27, LOW);
// Connect to Wi-Fi network with SSID and password
Serial.print("Setting AP (Access Point)…");
// Remove the password parameter, if you want the AP (Access Point) to be open
WiFi.softAP(ssid, password);
IPAddress IP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(IP);
server.begin();
}
void loop(){
WiFiClient client = server.available(); // Listen for incoming clients
if (client) { // If a new client connects,
Serial.println("New Client."); // print a message out in the serial port
String currentLine = ""; // make a String to hold incoming data from the client
while (client.connected()) { // loop while the client's connected
if (client.available()) { // if there's bytes to read from the client,
char c = client.read(); // read a byte, then
Serial.write(c); // print it out the serial monitor
header += c;
if (c == 'n') { // if the byte is a newline character
// if the current line is blank, you got two newline characters in a row.
// that's the end of the client HTTP request, so send a response:
if (currentLine.length() == 0) {
// HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
// and a content-type so the client knows what's coming, then a blank line:
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();
// turns the GPIOs on and off
if (header.indexOf("GET /26/on") >= 0) {
Serial.println("GPIO 26 on");
output26State = "on";
digitalWrite(output26, HIGH);
} else if (header.indexOf("GET /26/off") >= 0) {
Serial.println("GPIO 26 off");
output26State = "off";
digitalWrite(output26, LOW);
} else if (header.indexOf("GET /27/on") >= 0) {
Serial.println("GPIO 27 on");
output27State = "on";
digitalWrite(output27, HIGH);
} else if (header.indexOf("GET /27/off") >= 0) {
Serial.println("GPIO 27 off");
output27State = "off";
digitalWrite(output27, LOW);
}
// Display the HTML web page
client.println("<!DOCTYPE html><html>");
client.println("<head><meta name="viewport" content="width=device-width, initial-scale=1">");
client.println("<link rel="icon" href="data:,">");
// CSS to style the on/off buttons
// Feel free to change the background-color and font-size attributes to fit your preferences
client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}");
client.println(".button { background-color: #4CAF50; border: none; color: white; padding: 16px 40px;");
client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");
client.println(".button2 {background-color: #555555;}</style></head>");
// Web Page Heading
client.println("<body><h1>ESP32 Web Server</h1>");
// Display current state, and ON/OFF buttons for GPIO 26
client.println("<p>GPIO 26 - State " + output26State + "</p>");
// If the output26State is off, it displays the ON button
if (output26State=="off") {
client.println("<p><a href="/26/on"><button class="button">ON</button></a></p>");
} else {
client.println("<p><a href="/26/off"><button class="button button2">OFF</button></a></p>");
}
// Display current state, and ON/OFF buttons for GPIO 27
client.println("<p>GPIO 27 - State " + output27State + "</p>");
// If the output27State is off, it displays the ON button
if (output27State=="off") {
client.println("<p><a href="/27/on"><button class="button">ON</button></a></p>");
} else {
client.println("<p><a href="/27/off"><button class="button button2">OFF</button></a></p>");
}
client.println("</body></html>");
// The HTTP response ends with another blank line
client.println();
// Break out of the while loop
break;
} else { // if you got a newline, then clear currentLine
currentLine = "";
}
} else if (c != 'r') { // if you got anything else but a carriage return character,
currentLine += c; // add it to the end of the currentLine
}
}
}
// Clear the header variable
header = "";
// Close the connection
client.stop();
Serial.println("Client disconnected.");
Serial.println("");
}
}
Personaliza el SSID y la contraseña
Debe definir un nombre SSID y una contraseña para acceder al ESP32. En este ejemplo configuramos el nombre SSID de ESP32 Punto de acceso ESP32pero puedes cambiar el nombre por el que quieras. La contraseña es 123456789Pero también puedes cambiarlo.
// You can customize the SSID name and change the password
const char* ssid = "ESP32-Access-Point";
const char* password = "123456789";
Configure el ESP32 como punto de acceso
Hay una sección en el configuración() para configurar el ESP32 como un punto de acceso con el AP suave() Método:
WiFi.softAP(ssid, password);
También hay otros parámetros opcionales que puede especificar AP suave() Método. Aquí están todos los parámetros:
.softAP(const char* ssid, const char* password, int channel, int ssid_hidden, int max_connection)
- SSID (previamente definido): máximo 63 caracteres;
- contraseña(previamente definido): al menos 8 caracteres; establecido en NULL si el punto de acceso debe estar abierto
- canal: Número de canal WiFi (1-13)
- ssid_hidden: (0 = enviar SSID, 1 = ocultar SSID)
- conexión_maxima: máximo de clientes conectados simultáneamente (1-4)
A continuación necesitamos encontrar la dirección IP del punto de acceso. Para esto utilizamos APIP suave() método e imprimirlo en el monitor serie.
IPAddress IP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(IP);
Estos son los fragmentos de código que debe incluir en los bocetos de su servidor web para configurar el ESP32 como punto de acceso. Para saber cómo funciona el código completo del servidor web, consulte el tutorial del servidor web ESP32.
Piezas requeridas
Para este tutorial necesitarás las siguientes partes:
- Placa de desarrollo ESP32 – leer placas de desarrollo ESP32 probadas y comparadas
- 2x LED de 5 mm
- 2 resistencias de 330 ohmios
- tablero de circuitos
- Cables de puente
Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!
Esquema
Empiece por construir el circuito. Conecte dos LED al ESP32 como se muestra en el diagrama de circuito a continuación: un LED conectado a GPIO26y el otro tambien GPIO27.
nota: Usamos una placa ESP32 DEVKIT DOIT con 36 pines. Antes de ensamblar el circuito, asegúrese de verificar la distribución de pines de la placa que está utilizando.
Dirección IP ESP32
Cargue el código a su ESP32 (asegúrese de haber seleccionado la placa y el puerto COM correctos). Abra el monitor en serie con una velocidad de baudios de 115200. Presione el botón ESP32 Enable.
Se imprimirá la dirección IP que necesita para acceder al punto ESP32. En este caso lo es 192.168.4.1.
Conéctese al punto de acceso ESP32
Después de que el ESP32 haya ejecutado el nuevo boceto, abra la configuración de Wi-Fi en su teléfono inteligente y toque Punto de acceso ESP32 Red:
En el código, ingrese la contraseña que estableció anteriormente.
Abra su navegador web e ingrese la dirección IP 192.168.4.1. La página del servidor web debería cargarse:
Para conectarse al punto de acceso de su computadora, vaya a Configuración de red e Internet y seleccione la opción “Punto de acceso ESP32“.
Ingrese la contraseña que estableció anteriormente.
¡Y hecho! Ahora, para acceder a la página del servidor web ESP32, solo necesita ingresar la dirección IP ESP32 en su navegador.
Envolver
Este sencillo tutorial le mostró cómo configurar el ESP32 como punto de acceso para los bocetos de su servidor web. Cuando el ESP32 se configura como punto de acceso, los dispositivos con capacidad Wi-Fi pueden conectarse directamente al ESP32 sin necesidad de conectarse a un enrutador.
Usted también puede estar interesado en:
- Aprende ESP32 con Arduino IDE (Curso)
- servidor web ESP32
- Temperatura de registro de datos ESP32 a la tarjeta MicroSD
- ESP32 con motor CC y controlador de motor L298N: control de velocidad y dirección
Esperamos que este tutorial te haya resultado útil. Si te gusta ESP32 y te gustaría saber más sobre él, te recomendamos registrarte en Aprenda ESP32 con Arduino IDE Curso.
Gracias por leer.
Cómo configurar un punto de acceso (AP) ESP32 para un servidor web
El ESP32 puede actuar como una estación Wi-Fi, como un punto de acceso o como ambos. En este tutorial te mostraremos cómo configurar el ESP32 como un punto de acceso utilizando Arduino IDE.
Configurar el ESP32 como un punto de acceso
En la mayoría de los proyectos con el ESP32, conectamos el ESP32 a un enrutador inalámbrico. De esta forma podemos acceder al ESP32 a través de la red local.
En esta situación, el enrutador actúa como un punto de acceso y el ESP32 se configura como una estación. En este escenario, necesitas estar conectado a tu enrutador (red local) para controlar el ESP32.
Pero si configuras el ESP32 como un punto de acceso (hotspot), puedes estar conectado al ESP32 utilizando cualquier dispositivo con capacidades Wi-Fi sin la necesidad de conectarte a tu enrutador.
En palabras simples, al configurar el ESP32 como un punto de acceso creas su propia red Wi-Fi y los dispositivos Wi-Fi cercanos (estaciones) pueden conectarse a él.
Instalando el board ESP32 en Arduino IDE
Hay un complemento para el Arduino IDE que te permite programar el ESP32 utilizando el Arduino IDE y su lenguaje de programación. Sigue uno de los siguientes tutoriales para preparar tu Arduino IDE:
- Instrucciones para Windows – Instalación del board ESP32 en Arduino IDE
- Instrucciones para Mac y Linux – Instalación del board ESP32 en Arduino IDE
Preguntas Frecuentes
¿Qué es el modo Access Point en el ESP32?
El modo Access Point en el ESP32 permite al dispositivo actuar como un punto de acceso Wi-Fi, creando su propia red a la que otros dispositivos pueden conectarse.
¿Se puede personalizar el nombre de la red y la contraseña del punto de acceso en el ESP32?
Sí, puedes personalizar el nombre de la red (SSID) y la contraseña del punto de acceso en el ESP32 modificando el código en el IDE de Arduino.
¿Cómo me conecto al punto de acceso del ESP32 desde un dispositivo externo?
Para conectarte al punto de acceso del ESP32 desde un dispositivo externo, busca la red Wi-Fi con el nombre que has configurado (SSID) y introduce la contraseña definida en el código del ESP32.
Esperamos que este tutorial te haya sido útil para configurar un punto de acceso en tu ESP32. Si te gusta trabajar con ESP32 y quieres aprender más, te recomendamos inscribirte en el curso Aprende ESP32 con Arduino IDE.
¡Interesante artículo! Me ayudó a configurar mi ESP32 como un punto de acceso para mi servidor web. ¡Gracias por compartir!
¡Muy útil! Pude seguir los pasos fácilmente y ahora tengo mi propio servidor web con mi ESP32. ¡Gracias por la info!