El módulo Wi-Fi integrado en el ESP32 soporta el estándar 802.11b/g/n, lo que le permite operar tanto como cliente Wi-Fi como punto de acceso (AP). En su modo de cliente, el ESP32 puede conectarse a redes Wi-Fi existentes, lo que le permite acceder a internet y comunicarse con otros dispositivos en la misma red. Esto es esencial para aplicaciones que requieren que el ESP32 interactúe con servidores online, envíe datos de sensores a plataformas en la nube, o interactúe con servicios web.
Por otro lado, el ESP32 puede ser configurado como un punto de acceso Wi-Fi, permitiendo que otros dispositivos se conecten directamente a él. En este modo, el ESP32 actúa como un hub, permitiendo que los dispositivos se comuniquen entre sí y accedan a recursos alojados en el mismo dispositivo. Esta capacidad es muy útil en aplicaciones IoT donde los dispositivos necesitan interactuar entre ellos sin acceder a internet, creando así una red local autónoma.
La implementación de Wi-Fi en el ESP32 es compatible con varios protocolos de seguridad como WPA2, WPA3 y WEP, lo que garantiza que los datos transmitidos a través de la red estén cifrados y protegidos. Esta seguridad es crucial para la protección de información sensible y para prevenir accesos no autorizados a los dispositivos conectados.
Además de estas funciones básicas, el ESP32 ofrece características avanzadas como Wi-Fi Direct, que permite la comunicación directa entre dispositivos sin necesidad de una infraestructura tradicional de red Wi-Fi. Esta función es especialmente útil en escenarios donde los dispositivos necesitan establecer conexiones punto a punto de forma rápida y eficiente.
ESP32 como punto de acceso Wi-Fi
Para utilizar el ESP32 como punto de acceso, necesitamos habilitar su capacidad Wi-Fi mediante la biblioteca WiFi en el entorno de desarrollo Arduino IDE. El siguiente código muestra cómo configurar el ESP32 como un punto de acceso con un SSID y una contraseña personalizada. El código también configura una dirección IP estática para el punto de acceso:
En este ejemplo, la función WiFi.softAP() configura el ESP32 como punto de acceso, mientras que la variable ssid define el nombre del punto de acceso y password es la clave para acceder a él. La función WiFi.softAPConfig() permite establecer una dirección IP estática para el ESP32, en este caso, 192.168.4.1.
Una vez que el código esté cargado en el ESP32, el dispositivo comenzará a emitir el SSID "MiESP32AP", y cualquier dispositivo que se conecte a esta red podrá comunicarse con el ESP32 y acceder a los recursos que este ofrece dentro de la red local. Cabe destacar que en este modo, aunque los dispositivos pueden intercambiar información, no podrán acceder a internet, ya que no se está utilizando una conexión externa.
ESP32 como cliente Wi-Fi
En modo cliente, el ESP32 se conecta a una red Wi-Fi existente, como podría ser una red doméstica o una red pública, para acceder a internet y utilizar servicios fuera de su red local. A continuación, se muestra un ejemplo de cómo configurar el ESP32 para que funcione como cliente Wi-Fi:
En este código, la función WiFi.begin() se utiliza para iniciar la conexión a una red Wi-Fi con el SSID y la contraseña especificados. El ESP32 intentará conectarse a la red y, una vez conectado, imprimirá la dirección IP local asignada por el router Wi-Fi. Este modo permite al ESP32 acceder a internet y comunicarse con otros dispositivos de la red global, facilitando la integración de aplicaciones IoT con servicios en la nube o servidores web.
Usando Wi-Fi Direct para conexiones P2P
El Wi-Fi Direct es una característica avanzada que permite a los dispositivos comunicarse entre sí directamente, sin la necesidad de un router o infraestructura de red convencional. Este tipo de conexión punto a punto (P2P) es útil cuando se desea compartir datos de manera rápida y sencilla entre dispositivos sin depender de una red Wi-Fi externa. A continuación, se presenta un ejemplo de código para configurar un servidor Wi-Fi en el ESP32 utilizando Wi-Fi Direct:
En este código, el ESP32 se configura como un servidor Wi-Fi utilizando la biblioteca WiFi.h, y otros dispositivos pueden conectarse directamente a él utilizando Wi-Fi Direct. El servidor recibe solicitudes de clientes y puede enviar respuestas o compartir datos entre dispositivos de manera eficiente.
El uso de Wi-Fi Direct es clave para aplicaciones que requieren conexiones rápidas y seguras sin la necesidad de infraestructura de red, como en el caso de dispositivos IoT que necesitan comunicarse entre sí sin interferencias de otras redes.
Importancia de la seguridad y configuración en redes locales
Es importante comprender que, aunque el ESP32 puede operar tanto como punto de acceso como cliente, la seguridad de la red debe ser siempre una prioridad. Los protocolos como WPA2 y WPA3 aseguran que las comunicaciones sean cifradas y protegen la privacidad de los datos. En entornos donde varios dispositivos estén conectados, como en aplicaciones IoT, configurar adecuadamente las direcciones IP, subredes y claves de acceso es esencial para evitar accesos no autorizados y garantizar el funcionamiento correcto de la red.
¿Cómo controlar dispositivos con ESP32 mediante entradas, salidas y modulación de ancho de pulso?
El ESP32 es una poderosa herramienta para el desarrollo de sistemas embebidos, gracias a su capacidad de manejar una gran variedad de interfaces, como entradas y salidas digitales, conversores analógico-digitales (ADC), conversores digital-analógicos (DAC), y la modulación por ancho de pulso (PWM). Estos conceptos, que permiten la interacción con el mundo físico, son fundamentales para crear proyectos que involucren sensores y actuadores.
Una de las primeras cosas que aprendemos al trabajar con el ESP32 es cómo configurar un sistema básico de entrada y salida. Por ejemplo, podemos conectar un botón y un LED al microcontrolador para realizar una acción sencilla, como encender o apagar el LED al presionar el botón. Para ello, basta con conectar uno de los terminales del botón a un pin GPIO (por ejemplo, D12) y el otro a tierra (GND). El LED se conecta de manera similar, con el ánodo al pin GPIO D13 y el cátodo a GND.
En el código, configuramos el pin del botón como entrada con una resistencia interna de "pull-up" (entrada con resistencia pull-up habilitada). Esto significa que cuando el botón no está presionado, el pin está en un estado lógico alto (3.3V), y cuando se presiona, se conecta a tierra, lo que lo coloca en un estado lógico bajo (0V). De esta forma, se evita que el pin "flote", garantizando una lectura confiable.
En cuanto al LED, cuando el botón se presiona, el pin de salida que controla el LED pasa a un estado alto (encendido). Cuando el botón no está presionado, el pin se pone en estado bajo, apagando el LED. Este ejemplo simple es la base para proyectos más complejos donde la interacción con dispositivos electrónicos es esencial.
Sin embargo, no siempre es suficiente con usar entradas y salidas digitales para controlar dispositivos. En proyectos más avanzados, se recurre a la modulación por ancho de pulso (PWM), una técnica que permite controlar dispositivos analógicos utilizando señales digitales. En lugar de simplemente encender o apagar un dispositivo, PWM ajusta el ciclo de trabajo de una señal cuadrada para controlar la cantidad de energía que se entrega al dispositivo. Este método es ampliamente utilizado para controlar la intensidad de LEDs, la velocidad de motores o incluso para simular señales analógicas.
Para demostrar cómo se utiliza PWM con el ESP32, conectamos un LED al pin D13 y programamos el microcontrolador para variar la intensidad del LED mediante cambios en el ciclo de trabajo de la señal. En el código de Arduino, utilizamos un bucle para aumentar progresivamente el valor del ciclo de trabajo desde 0 hasta 255, lo que hace que el LED se ilumine de manera más intensa o más tenue. Este efecto es particularmente útil cuando queremos crear transiciones suaves o controlar la velocidad de un motor.
El valor del ciclo de trabajo se puede representar mediante un número de 8 bits que varía entre 0 y 255, donde 0 representa un ciclo de trabajo del 0% (sin energía) y 255 representa un ciclo de trabajo del 100% (máxima intensidad). Al variar este valor, el LED pasará de estar completamente apagado a encenderse gradualmente, creando el efecto de atenuación.
Por otro lado, la comunicación UART (Universal Asynchronous Receiver-Transmitter) es otro aspecto clave del ESP32, que permite la transmisión de datos entre dispositivos de manera eficiente y sin la necesidad de una señal de reloj, lo que simplifica el hardware y reduce el consumo de energía. Aunque la falta de un reloj puede causar problemas de sincronización y tiempos de transmisión más largos, UART sigue siendo una opción popular en sistemas embebidos, como en los microcontroladores, debido a su simplicidad y fiabilidad para la comunicación de corto alcance.
El protocolo UART convierte los datos de bytes que provienen del CPU en una corriente continua de bits que pueden ser enviados por un canal de comunicación. Gracias a su naturaleza asíncrona, UART no requiere un reloj externo para sincronizar los datos, lo que lo hace ideal para proyectos en los que se necesiten transmitir datos a tasas variables, pero dentro de distancias no demasiado grandes y con requisitos de baja velocidad.
Con estos conceptos fundamentales en mente, el ESP32 permite a los desarrolladores crear sistemas interactivos complejos, donde la comunicación entre diferentes dispositivos y el control preciso de dispositivos electrónicos son esenciales. Además de los ejemplos básicos proporcionados, es importante recordar que cada uno de estos principios (entradas y salidas digitales, PWM y UART) puede ser combinado con otros sensores y actuadores, lo que abre una gama de posibilidades para proyectos que impliquen monitoreo y control en tiempo real.
En este sentido, además de los dispositivos básicos como botones y LEDs, podemos integrar sensores de proximidad, sensores de fuerza, sensores ópticos, entre otros, que actúan como interruptores normales pero con funciones más complejas. La capacidad de controlar estos dispositivos mediante el uso de señales digitales y analógicas proporciona una gran flexibilidad en el diseño de sistemas embebidos.
Al integrar todos estos elementos en proyectos más avanzados, los desarrolladores pueden mejorar la eficiencia y la interactividad de sus sistemas, explorando nuevas formas de controlar y comunicar dispositivos con el ESP32.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский