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.
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>.
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í:
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
Explicacion del Sketch
El sketch a
subir al NodeMCU será el siguiente desde el IDE de arduino:
Luego
vamos a la función principal (loop)
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
- 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