ACCESS POINT & STATION
Denominamos a efectos de redes informáticas:
- ACCESS POINT (AP) o –Punto de Acceso– al un dispositivo de hardware que permite crear una Red de Área Local (Local Area Network – LAN), ya sea cableada (p.e. Ethernet) o inalámbrica -Wireless Local Area Network · WLAN- (p.e. WiFi). Existen otros dispositivos que no son exclusivamente Access Points, pero tienen incorporadas sus funciones:
- 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. Permite crear una WLAN a la que se pueden conectar los dispositivos con capacidad inalámbrica.
- ROUTER –Enrutador-. Es un dispositivo se hardware que permite la de ínter-conexión en redes informáticas (cableadas y/o inalámbricas) -normalmente Internet y una red LAN-, determinando la ruta que deben tomar los paquete de datos. También incluye las funciones de AP.
- Station (STA) o estación a cada dispositivo que se conecta con la red, por ejemplo un ordenador, un teléfono móvil o una tablet.
Un microcontrolador ESP32 puede funcionar como Station, como Soft Access Point o incluso simultáneamente como Station y Soft Access Point.
A continuación se va a desarrollar su funcionamiento como Station.
CONEXIÓN CON UNA RED WiFi - STATION
Conectar un ESP32 a una red WiFi en modo STATION es muy sencillo gracias al módulo network de la librería estándar.
La conexión se puede realizar con el siguiente script:
import network # importa el módulo network sta_if = network.WLAN(network.STA_IF); # instancia el objeto -sta_if- para controlar la interfaz STA sta_if.active(True) # activa la interfaz STA del ESP32 sta_if.connect("<SSID>", "<PASSWORD>") # inicia la conexión con el AP
Siendo:
- SSID, nombre de la red WiFi con la que se quiere establecer la conexión.
- PASSWORD, contraseña de la red WiFi -mínimo 9 caracteres, máximo 64- (opcional).
No se necesitaría nada más, pero conviene hacer dos mejoras importantes en el script:
- La primera es utilizar un bucle que detenga la ejecución del script desde que se inicia la conexión WiFi hasta que se establece (ya que tarda unos segundos), así se evitan problemas en la ejecución. Para construir el bucle se utiliza el método isconnected() del módulo network, que devuelve el estado de la conexión como un booleano.
- La segunda es imprimir la configuración de red: IP (dirección IP), netmask (Netmask – Máscara de Red), gw (Gateway – Pasarela o Puerta de Enlace) y DNS (Domain Name Server – Sistema de Nombres de Dominio). Para ello se utilizará el método ifconfig() del módulo network, que devuelve una tupla con los cuatro argumentos señalados.
Este es el script mejorado, desarrollado como una función:
# FUNCIÓN PARA ESTABLECER LA CONEXIÓN WIFI (STATION) def do_connect(SSID, PASSWORD): import network # importa el módulo network global sta_if sta_if = network.WLAN(network.STA_IF) # instancia el objeto -sta_if- para controlar la interfaz STA if not sta_if.isconnected(): # si no existe conexión... sta_if.active(True) # activa el interfaz STA del ESP32 sta_if.connect(SSID, PASSWORD) # inicia la conexión con el AP print('Conectando a la red', SSID +"...") while not sta_if.isconnected(): # ...si no se ha establecido la conexión... pass # ...repite el bucle... print('Configuración de red (IP/netmask/gw/DNS):', sta_if.ifconfig()) # do_connect("<nombre_de_red>","<clave_de_red>") # DESCOMENTAR Y PONER nombre/clave_de_red RED PARA EJECUTAR
Así se verá su ejecución con Thonny:
Se puede ver claramente que se ha establecido conexión con la red WiFi y el access point le ha asignado la dirección IP 192.168.1.140. El objeto creado para gestionar la conexión es sta_if, que tiene ámbito global, para poder acceder a él en cualquier punto del script si resulta 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 red.
En estas prácticas podrás encontrar algunos ejemplos de uso:
DESCONEXIÓN DE UNA RED WiFi - STATION
Cuando no se necesita la conexión WiFi es recomendable finalizarla, principalmente por dos motivos:
- Ahorro de energía, especialmente cuando la placa está alimentada con baterías. El consumo normal del microcontrolador (240 MHz) sin conexión WiFi es de 50 mA y con conexión WiFi es de entre 80 y 180 mA.
- Ahorro de memoria en el microcontrolador.
La desconexión se realizará desactivando el interfaz STA:
>>> sta_if.active(False) False >>>
4 Comments
Leave your reply.