ACCESS POINT & STATION
Al explicar la conexión del ESP32 a una red WiFi se definieron los conceptos Access Point -AP- (Punto de Acceso) y Station -STA- (Estación) y se dijo que un microcontrolador ESP32 puede funcionar como Station, como Soft Access Point o incluso simultáneamente como Station y Soft Access Point.
Como se puede recordar Soft Access Point -SoftAP- (Punto de Acceso habilitado por Software) es un dispositivo de hardware no creado específicamente para ser un AP, pero que se habilita como tal por software y permite crear una Red de Área Local Inalámbrica – WLAN.
A continuación se va a desarrollar cómo usar un ESP32 como Soft Access Point, para crear una WLAN.
Con el fin de generalizar los términos, a partir de este punto atendiendo a la funcionalidad, el Soft Access Point se denominará Access Point o AP y la Red de Área Local Inalámbrica se denominará Red de Área Local o LAN.
RED DE ÁREA LOCAL WiFi - ACCESS POINT
Para crear la Red de Área Local (LAN – Local Area Network) se utiliza el módulo network de la librería estándar.
Se puede hacer con un script tan sencillo como el siguiente:
import network # importa el módulo network ap_if = network.WLAN(network.AP_IF) # instancia el objeto -ap_if- para controlar la interfaz AP ap_if.active(True) # activa la interfaz AP
Al no haberse establecido ningún parámetro de configuración, los valores por defecto que tiene la WLAN son los siguientes:
- El identificador de red -ESSID- es ESP_XXXXXX, donde las equis se sustituyen por los tres últimas parejas de dígitos hexadecimales de la Dirección MAC +1.
- La conexión será es abierta (no tiene clave).
- El número máximo de clientes es 4.
- El canal es el 1.
- La red es visible.
Se puede utilizar el siguiente script para ver el ESSID y la MAC:
import network, ubinascii # importa los módulos network y ubinascii (para decodificar la dirección MAC) ap_if = network.WLAN(network.AP_IF) # instancia el objeto -ap_if- para controlar la interfaz AP ap_if.active(True) # activa la interfaz del AP print("ESSID:", ap_if.config('essid')) # imprime el identificador de red -ESSID- print("Dirección MAC: ", ubinascii.hexlify(network.WLAN().config('mac'),':').decode()) # Imprime la dirección MAC
Así se verá su ejecución con Thonny:
La LAN se puede mejorar con los siguientes parámetros de configuración:
- essid: identificador de la red WiFi.
- authmode: modo de autentificación para la clave (password) elegida.
- 0 – abierta (por defecto)
1 – WEP- 2 – WPA-PSK
- 3 – WPA2-PSK
- 4 – WPA
- password: clave – mínimo 8 caracteres.
- max_clients: número máximo de clientes. Un número entero entre el 0 y el 10.
- channel: canal de la red WiFi. Un número entero entre el 1 y el 13.
- hidden: red visible u oculta. 0 – visible y 1 – oculta.
Este es el script mejorado, desarrollado como una función:
import network # importa los módulos network ap_if = network.WLAN(network.AP_IF) # instancia el objeto -ap_if- para controlar la interfaz AP ap_if.config(essid="ESP-AccessPoint") # establece el identificador de red -ESSID- ap_if.config(authmode=2, password="12345678") # establece el modo de autentificación y la clave de red ap_if.config(max_clients=2) # establece el número de clientes que se pueden conectar a la red ap_if.config(channel=10) # establece el canal ap_if.config(hidden=0) # establece la visibilidad de la red ap_if.active(True) # activa la interfaz del AP print("ESSID:", ap_if.config('essid')) print("Configuración de red (IP/netmask/gw/DNS):", ap_if.ifconfig()) print("Modo de autentificación:",ap_if.config("authmode")) print("Nº máximo de clientes:",ap_if.config("max_clients")) print("Canal:",ap_if.config("channel")) print("Oculta (True=Si / False=No):",ap_if.config("hidden")) print("Activa (True=Si / False=No):",ap_if.active())
Así se verá su ejecución con Thonny:
Se puede ver claramente que la dirección IP de conexión con el Access Point es 192.168.4.1.
El objeto creado para gestionar la conexión es ap_if y se puede modificar con los parámetros de configuración cuando resulte necesario.
La conexión WiFi es el primer paso para que el ESP32 pueda intercambiar comunicaciones con otros dispositivos, funcionando como servidor o cliente de la LAN.
DESACTIVACIÓN DE LA WLAN - ACCESS POINT
Cuando no se necesita la LAN es recomendable desactivarla, principalmente por dos motivos:
- Ahorro de energía, especialmente cuando la placa está alimentada con baterías.
- Ahorro de memoria en el microcontrolador.
La desconexión se realizará desactivando el interfaz AP:
>>> ap_if.active(False) False >>>
Leave a Reply
Tu correo electrónico está seguro.
You must be logged in to post a comment.