Cómo generar una red WiFi con el ESP8266 (modo AP)


Continuamos con la programación del ESP8266. En esta ocasión nos toca ver cómo hacer que el ESP8266 actué como un punto de acceso (AP) generando su propia WiFi.

En la entrada anterior vimos cómo conectarnos a una red WiFi existente, actuando en modo ‘station’ (STA). Ahora usaremos el modo punto de acceso (access point, AP), es decir, haremos que el ESP8266 genera su propia red WiFi al que se conectan el resto de dispositivos.

En cierta forma el ESP8266 va a actuar «como el router de tu casa», salvo que el router de tu casa comparte una conexión (ADSL, fibra…) con los dispositivos conectados. Sin embargo, nuestro ESP8266 no va a compartir «nada», únicamente es un AP para dispositivos. Este modo se denomina «SoftAP».

Crear una red WiFi

Usar el modo AP para crear una red WiFi es igual de sencillo que usar el modo STA para conectarnos a una WiFI existente, gracias a la misma librería ESP8266WiFi.

Para generar la red WiFi empleamos la función WiFi.softAP(…), que devuelve true si la red WiFi se ha creado correctamente y false en caso contrario.

Anuncio:

Siendo:

  • ssid, nombre de la red WiFi que vamos a generar (entre 32 char)
  • password, opcional, contraseña de la WiFi (mín 8 y máx 63 char)
  • channel, opcional, el canal de WiFi a emplear (del 1 al 13)
  • hidden, opcional, si es true no se mostrará el SSID
  • max_connection, opcional, número máximo de conexiones (máx 8)

Por lo que un ejemplo para crear una red WiFI con el ESP8266 en el modo AP sería el siguiente:

Por defecto se pueden conectar 4 dispositivos a la red generada por el ESP8266, aunque puede cambiarse el número máximo de estaciones que pueden conectarse de forma simultánea entre 0 a 8. Una vez que el número máximo se ha alcanzado, cualquier otra estación que quiera conectarse se verá forzada a esperar hasta que alguna estación conectada se desconecte.

Por su parte, la función WiFi.mode(…) establece el modo de funcionamiento del ESP8266, pudiendo ser:

WIFI_OFFApagado
WIFI_STAEstacion
WIFI_APAccess point
WIFI_AP_STAStation+Acces Point

Igual que en el caso STA, las credenciales de la red se guardan en la memoria del ESP8266, que se mantiene incluso aunque reprogramemos el ESP8266. Por lo que, si queremos desactivar el modo AP deberemos hacerlo explícitamente llamando a la función WiFi.mode(…). De lo contrario, el ESP8266 generara su propia WiFi incluso después de reprogramarlo, aunque no hayamos usado la función WiFi.SoftAP(…) en el nuevo programa.

Ejemplo resumido

Si hacemos como en la entrada anterior, y dividimos nuestro código en un fichero de ‘config.h’

Y un fichero adicional que llamaremos ‘ESP8266_Utils.hpp’ que contenga las funciones de conexión.

El código queda reducido a el siguiente snippet, mucho más cómodo, mantenible y reusable.

Otras funciones AP del ESP8266

Aquí tenemos un resumen de algunas de las funciones adicionales disponibles en ESP8266 AP. Los nombres son autodescriptivos de su función pero, sí tenéis dudas, podéis consultar la documentación del ESP8266.

¿Sencillo verdad? Conectar un ESP8266 tanto a una red WiFi existente como generar su propia WiFI es realmente fácil gracias a la librería ESP8266 WiFi.

En las próximas entradas comenzaremos a trabajar con el ESP8266 para actuar tanto como cliente como servidor, algo que podemos hacer tanto en modo STA como en modo AP ¡Hasta la próxima! 

Descarga el código

Todo el código de esta entrada está disponible para su descarga en GitHub.

Si te ha gustado esta entrada y quieres leer más sobre ESP8266 puedes consultar la sección
tutoriales de ESP8266

Anuncio:

Previous Vuetify, estética Material Design para tus Apps en VueJS
Next Principales software CAD para impresión 3D
1000
3 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
newest oldest
Albert

Gracias por el artículo ! Genial como siempre. Una duda, cuando dos ESP8266 estan conectados a la misma red, generada por uno de ellos, ¿es posible que intercambien datos por el puerto serie? o de alguna otra manera?
Unsaludo !

jesgon

estupendo!! gracias Luis, quedo atento a la próxima entrega, saludos.

carlos arguello

gracias por tu articulo muy bien explicado y realmente sencillo