Páginas

Modo ACCES POINT en NodeMCU


Se creara un servidor WiFi de área local (Wireless Local Area Network – WLAN), configurándolo como un punto de acceso por software (Software Enabled Access Point – SoftAP o simplemente AP)

Este servidor lo utilizaremos para poder controlar el encendido y apagado de un LED a través los dispositivos clientes que se conecten, como PC’s, Smart Phones, Tablets, etc.

CONCEPTOS BÁSICOS

En el modo Access Point el NodeMCU crea un SSID (Service Set Identifier), el “nombre de red” que se visualiza desde los dispositivos WiFi clientes. 

La conexión se realiza cuando el NodeMCU autoriza las peticiones de conexión de los clientes.

Por defecto la dirección IP del NodeMCU, que nos sirve para conectar con él desde un navegador Web, es la 192.168.4.1 y asigna a los clientes las siguientes direcciones IP disponibles, 192.168.4.2, 192.168.4.3, etc.


La libreria que se utiza es la ESP8266WiFi.h, utilizadas por el ESP8266 para trabajar en modo Access Point (AP):



Funciones: 
WiFi.softAP (ssid, password, channel, hidden)
El software que permite a un dispositivo que no ha sido específicamente construido como un router, convertirse en un punto de acceso WiFi (router virtual) se conoce como Software Enabled Access Point, o abreviadamente SoftAP.
Para crear el Access Point con el NodeMCU recurrimos a este software a través de la instrucción WiFi.softAP(ssid, password, channel, hidden). Los cuatro parámetros que la componen se definen a continuación:
  • ssdi: es un parámetro obligatorio, el nombre de red, SSID(Service Set Identifier). Debe tener entre 8 y 63 caracteres.
  • password: es un parámetro opcional, la clave. Para una conexión WPA2-PSK debe tener al menos 8 caracteres. Si no se especifica, el Access Point estará abierto a los clientes.
  • channel: es un parámetro opcional, para establecer el canal WiFi de comunicación. Los canales válidos son del 1 al 13, por defecto se utiliza el canal 1.
  • hidden: es un parámetro opcional, para permitir ver u ocultar el SSID. 1 permite ver la red y 0 la oculta.
 WiFi.softAPdisconnect()
La instrucción para finalizar la conexión de los dispositivos conectados al Access Point es  Wifi.softAPdisconnect().
softAPConfig (local_ip, gateway, subnet)
Como hemos comentado, la red creada por softAP tiene la dirección IP 192.168.4.1. Esta dirección se puede cambiar utilizando la instrucción softAPConfig(local_ip, gateway, subnet). Los tres parámetros que la componen se definen a continuación:
  • local_ip: dirección IP del Access Point.
  • gateway: es la dirección IP de la pasarela o puerta de enlace (puede coincidir con la local_ip).
  • subnet: dirección IP de la subred.
 WiFi.softAPIP ()
Para volver a la dirección IP establecida por defecto (192.168.4.1) utilizamos la instrucción Wifi.softAPIP().
WiFi.softAPmacAddress(macAddr)
Para conocer la dirección MAC del AccessPoint utilizamos la función Wifi.softAPmacAddress(macAddr). El parámetro macAddr es voluntario, y es un array de seis elementos que permite almacenar cada uno de los elementos de la dirección MAC.
softAPgetStationNum()
Para ver el número de dispositivos conectados (clientes/estaciones), utilizamos la instrucción softAPgetStationNum(). Como máximo se pueden conectar cinco dispositivos.

MONTAJE



El LED estará conectado en el puerto GPIO02 (D4).
Este LED, como comprobaremos, está relacionado en lógica inversa con el LED que tiene el ESP8266 del NodeMCU junto a la antena. Esto significa que cuando un LED se enciende, el otro se apaga.

PAGINA MOSTRADA POR EL NodeMCU en html

El código HTML de la página Web insertada en el sketch de arduino, que hace de interfaz gráfico, para interactuar con el LED (encenderlo y apagarlo):


descargar codigo html

Esta seria la pagina:

Como se puede observar, se han introducido varios controles/botones para encender o apagar el LED, utilizando diferentes elementos HTML como <a>, <checkbox> o <button>.
Lo que tienen en común todos ellos, en su funcionamiento, es la forma en que se realiza la petición desde el cliente, a través del navegador al servidor (NodeMCU). En la petición, para lograr la comunicación se une la IP (obtenida con la propiedad ref) con la cadena “/LED=ON” o “/LED=OFF” en función de lo que hayamos pulsado. 

Quedaría así:
http://192.168.4.1/LED=ON    o   http://192.168.4.1/LED=OFF
De esta manera el NodeMCU, recibe la petición “/LED=ON” o “/LED=OFF” y la analiza utilizando la función peticion.indexOf(), para determinar las acciones a realizar.



Explicacion del Sketch
 El sketch a subir al NodeMCU será el siguiente desde el IDE de arduino:
Lo primero es incluir la librería y crear variables

Después vamos a la configuración (Setup)

Luego vamos a la función principal (loop)


Comprueba la peticion el NodeMCU
Aquí es queda respuesta a la petición y envía la pagina



Continua las líneas anteriores


Download Sketch

CONEXIÓN CON EL ACCESS POINT

Para poder conectar con la red WiFi realizaremos los siguientes pasos:
  • Desde el dispositivo cliente -con el que queremos conectar- (PC, Smart Phone, Tablet…) buscaremos las redes WiFi visibles.
  • Conectaremos con la red NodeMCU-ESP8266 con la clave 12345678.
  • Abriremos nuestro navegador Web e iremos a la dirección http://192.168.4.1

En el navegador aparecerá el texto para verificar el estado del LED y los botones para controlar su encendido y apagado.
NOTA: SI QUIERES CAMBIAR LA DIRECCION IP DE TU nodeMCU
COLOCAR EN SETUP
IPAddress local_ip(192, 168, 1, 1);                           //Modifica la dirección IP
IPAddress gateway(192, 168, 1, 1);  
IPAddress subnet(255, 255, 255, 0);
WiFi.softAPConfig(local_ip, gateway, subnet);
Serial.println();
Serial.print("Access Point - Nueva direccion IP: ");
Serial.println(WiFi.softAPIP());



Ok Si tienes algun comentario por favor escribe Gracias!!!

0 comentarios:

Publicar un comentario