ESP32 Curso Parte 1
ESP32 Curso Parte 1
El ESP32 es un micro que integra CPU, memoria RAM volátil y no volátil (Para el
programa) y varios dispositivos de I/O (Entrada y salida) en un chip único, además
de dispositivos de comunicaciones variados, que podemos emplear para recibir y
enviar información al exterior.
Para instalar la placa ESP32 en su IDE de Arduino, siga las siguientes instrucciones:
Nota: si ya tiene la URL de placas ESP8266, puede separar las URL con una coma de la siguiente manera:
https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json
3) Gestor de placas libres. Vaya a Herramientas > Placa > Gestor de placas ...
4) Busque ESP32 y presione el botón de instalación para " ESP32 by Espressif Systems ":
2) Seleccione su Placa en el menú Herramientas > Placas (es el DOIT ESP32 DEVKIT V1 )
3) Seleccione el puerto (si no ve el puerto COM en su IDE de Arduino, debe instalar los controladores ESP32
CP210x USB a UART Bridge VCP ):
4) Abra el siguiente ejemplo en Archivo > Ejemplos > WiFi (ESP32) > Exploración de WiFi
5) Se abre una nueva ventana:
6) Pulse el botón Subir en el IDE de Arduino. Espere unos segundos mientras el código se compila y
se carga en su placa.
9) Presione el botón de habilitación a bordo de ESP32 y debería ver las redes disponibles cerca de su
ESP32:
2. MODOS DE TRABAJO
El módulo ESP32 normalmente se utiliza en dos modos distintos, MODO WEB SERVER donde permite
establecer comunicación directa con la red de internet y dispositivos (clientes) a través de un Router, y el
modo ACCES POINT, donde se comporta como un ROUTER en una red local para su comunicación con otros
dispositivos.
#include <WiFi.h>
WiFiServer server(80);
String header;
// Current time
// Previous time
void setup() {
Serial.begin(115200);
pinMode(output26, OUTPUT);
pinMode(output27, OUTPUT);
digitalWrite(output26, LOW);
digitalWrite(output27, LOW);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
delay(500);
Serial.print(".");
Serial.println("");
Serial.println("WiFi connected.");
Serial.println(WiFi.localIP());
server.begin();
}
void loop(){
currentTime = millis();
previousTime = currentTime;
currentTime = millis();
header += c;
if (currentLine.length() == 0) {
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();
Serial.println("GPIO 26 on");
output26State = "on";
digitalWrite(output26, HIGH);
Serial.println("GPIO 26 off");
output26State = "off";
digitalWrite(output26, LOW);
Serial.println("GPIO 27 on");
output27State = "on";
digitalWrite(output27, HIGH);
Serial.println("GPIO 27 off");
output27State = "off";
digitalWrite(output27, LOW);
client.println("<!DOCTYPE html><html>");
client.println("<head><meta name=\"viewport\"
content=\"width=device-width, initial-scale=1\">");
client.println(".button2 {background-color:
#555555;}</style></head>");
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>");
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>");
client.println();
break;
currentLine = "";
header = "";
Serial.println("Client disconnected.");
Serial.println("");
Necesita modificar las siguientes líneas con sus credenciales de red: SSID y contraseña. El código está bien
comentado sobre dónde debe realizar los cambios.
Ahora, puede cargar el código y el servidor web funcionará de inmediato. Siga los siguientes pasos para
cargar el código al ESP32:
2) En el IDE de Arduino, seleccione su placa en Herramientas > Placa (en nuestro caso estamos usando la
placa ESP32 DEVKIT DOIT);
3) Seleccione el puerto COM en Herramientas > Puerto .
4) Presione el botón Cargar en el IDE de Arduino y espere unos segundos mientras el código se compila y
carga en su placa.
Después de cargar el código, abra Serial Monitor a una velocidad de 115200 baudios.
Presione el botón ESP32 EN (reiniciar). El ESP32 se conecta a Wi-Fi y emite la dirección IP de ESP en el
monitor en serie. Copie esa dirección IP, porque la necesita para acceder al servidor web ESP32.
Para acceder al servidor web, abra su navegador, pegue la dirección IP de ESP32 y verá la siguiente página.
En nuestro caso es 192.168.1.135 .
Si echas un vistazo al Serial Monitor, puedes ver lo que está sucediendo en segundo plano. El ESP recibe una
solicitud HTTP de un nuevo cliente (en este caso, su navegador).
También puede ver otra información sobre la solicitud HTTP.
Ahora puede probar si su servidor web funciona correctamente. Haga clic en los botones para controlar los
LED.
Al mismo tiempo, puede echar un vistazo al Monitor serial para ver qué sucede en segundo plano. Por
ejemplo, cuando hace clic en el botón para girarGPIO 26ENCENDIDO, ESP32 recibe una solicitud en / 26 / en
la URL.
Cuando el ESP32 recibe esa solicitud, enciende el LED adjunto a GPIO 26 ON y actualiza su estado en la
página web.
El botón para GPIO 27funciona de manera similar. Pruebe que esté funcionando correctamente.
2.2 ACCES POINT MODE (Modo de punto de Acceso)
Se iniciará la configuración del ESP32 como ACCESS PINT, el material y diagrama son
los mismos de la consgfiguración anterior.
Una vez realizado lo anterior el código a utilizar es el siguiente (Archivo
ACCESPOINT.INO en carpeta Códigos)
#include <WiFi.h>
WiFiServer server(80);
String header;
void setup() {
Serial.begin(115200);
pinMode(output27, OUTPUT);
digitalWrite(output26, LOW);
digitalWrite(output27, LOW);
WiFi.softAP(ssid, password);
IPAddress IP = WiFi.softAPIP();
Serial.println(IP);
server.begin();
void loop(){
header += c;
if (currentLine.length() == 0) {
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();
Serial.println("GPIO 26 on");
output26State = "on";
digitalWrite(output26, HIGH);
output26State = "off";
digitalWrite(output26, LOW);
Serial.println("GPIO 27 on");
output27State = "on";
digitalWrite(output27, HIGH);
Serial.println("GPIO 27 off");
output27State = "off";
digitalWrite(output27, LOW);
client.println("<!DOCTYPE html><html>");
client.println("<head><meta name=\"viewport\"
content=\"width=device-width, initial-scale=1\">");
client.println(".button2 {background-color:
#555555;}</style></head>");
// Web Page Heading
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>");
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;
currentLine = "";
header = "";
client.stop();
Serial.println("Client disconnected.");
Serial.println("");
Debe definir un nombre SSID y una contraseña para acceder al ESP32. En este ejemplo, configuramos el
nombre SSID ESP32 enPunto de acceso ESP32, pero puede modificar el nombre a lo que desee. La
contraseña es123456789, pero también puedes modificarlo.
// You can customize the SSID name and change the password
const char* ssid = "ESP32-Access-Point";
const char* password = "123456789";
Configuración del ESP32 como punto de acceso
Hay una sección en el configuración() para configurar el ESP32 como un punto de acceso usando el softAP ()
método:
WiFi.softAP(ssid, password);
También hay otros parámetros opcionales que puede pasar al softAP ()método. Aquí están todos los
parámetros:
.softAP(const char* ssid, const char* password, int channel, int ssid_hidden, int max_connection)
A continuación, necesitamos obtener la dirección IP del punto de acceso utilizando el softAPIP () e imprímalo
en Serial Monitor.
IPAddress IP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(IP);
Dirección IP ESP32
Sube el código a tu ESP32 (asegúrate de tener la placa correcta y el puerto COM seleccionados). Abra el
monitor serial a una velocidad en baudios de 115200. Presione el botón “Habilitar” ESP32.
Se imprimirá la dirección IP que necesita para acceder al punto ESP32. En este caso, es 192.168.4.1 .
Conexión al punto de acceso ESP32
Con el ESP32 ejecutando el nuevo boceto, en su teléfono inteligente abra la configuración de Wi-Fi y toque
la red ESP32-Access-Point :