|
EL MÓDULO WIFI ESP-8266
Este módulo es programable y cuenta con capacidad de proceso independiente, pudiéndoselo programar para que
trabaje, por ejemplo, como servidor web.
Cuenta con dos puertos de entrada/salida.
Su pequeño tamaño y su capacidad de conexión a la Internet lo convierten en un elemento ideal para la
implementación de dispositivos del tipo 'Internet de las cosas' (IOT).
No obstante, se debe tener en cuenta que requiere de una fuente de alimentación con capacidad de entregar
3.3 voltios (3.6 voltios es su límite seguro) con una elevada cantidad de corriente, por lo que, es normal
que no funcione si se lo alimenta mediante el pin de salida de tensión de 3.3 voltios de una placa Arduino.
Una forma de alimentarlo es mediante un conjunto de baterías recargables tipo 'AA', el cual genera unos
un poco más que 7 voltios, y convertirlos en 3.3 voltios regulados, usando a la salida un regulador
de tensión LM317, y las resistencias y capacitores que resulten necesarios.
En la siguiente imagen se identifican las funciones de sus conectores, vista la plaquita desde el lado
de sus componentes:
Como puede verse, cuenta con un conector de tierra o masa, uno para la alimentación de 3.3 voltios,
un conector RESET para reiniciarlo, dos puertos de entrada/salida (GPIO0 y GPIO2), un puerto serie
accesible desde sus contactos de emisión/recepción de datos (UTXD y URXD respectivamente),
y el conector CH_PD.
Para su configuración, se lo puede conectar a un puerto serie de alguna placa Arduino, o directamente
a otro tipo de puerto serie, como por ejemplo, algún adaptador USB/Serie, (teniendo siempre presente
que el módulo trabaja con 3.3 voltios).
Para trabajar de esta manera, se conecta la tierra, la tensión de alimentación (preferentemente
externa y con capacidad de entregar suficiente corriente) a los pines Vcc y CH_PD,
el conector UTXD a la señal RX de la conexión serie, y el URXD a la señal TX del mismo.
La interacción con el dispositivo se lleva a cabo utilizando los siguientes comandos AT:
| AT |
Sirve para saber que la conexión serie funciona, y devuelve un mensaje 'OK'.
|
| AT+RST |
Reinicializa el módulo.
|
| AT+CIOBAUD? |
Averigua la velocidad de conexión actual del módulo.
|
AT+CIOBAUD=n
AT+CIOBAUD=n,bits,paridad,stop,control
|
Establece la velocidad de conexión del módulo, donde:
por ejemplo: 'AT+CIOBAUD=112500,8,1,0,3'.
|
| AT+CWMODE? |
Permite averiguar en qué modo de operación se encuentra funcionando,
devolviendo un mensaje con el formato '+CWMODE:n', donde 'n' indica el modo 1, 2 o 3.
|
AT+CWMODE=1
AT+CWMODE=2
AT+CWMODE=3
|
Para establecer el modo de trabajo, donde:
1 =
2 =
3 = Éste es el modo más versátil.
|
| AT+CWLAP |
Devuelve un listado de los puntos de acceso a WiFi disponibles.
|
| AT+CWJAP="nombre","contraseña" |
Permite iniciar la conexión a uno de los puntos de acceso, identificado mediante su 'nombre'
e indicando la correspondiente contraseña.
Devuelve un detalle del resultado de la operación, ya sea como mensaje de error si falló el
intento, o con la dirección de IP asignada y demás datos, si funcionó.
Una vez que el módulo conectó con un punto de acceso, se conectará al mismo en forma automática
cada vez que éste se encuentre accesible.
|
| AT+CWJAP? |
COmprueba si se está conectado
|
AT+CWMODE=3
AT+RST
AT+CWJAP='WiFi','clave'
AT+CIFSR
AT+CIUPDATE
|
Con los primeros comandos se asegura que el módulo esté correctamente conectado
a la Internet, y el comando AT+CIUPDATE dispara la actualización en línea
(Cloud Update) del mismo, devolviendo los siguientes indicadores:
+CIPUPDATE:1 (servidor encontrado)
+CIPUPDATE:2 (conectado al servidor)
+CIPUPDATE:3 (se obtuvo la edición)
+CIPUPDATE:4 (comienzo)
OK
|
| AT+CIPMUX=1 |
Habilita el trabajar con múltiples conexiones en forma simultánea.
|
| AT+CIPMODE=m |
Establece el modo de trabajo según el código que se pase (n), siendo:
AT+CIPMODE=1 (modo de transmisión de datos)
|
| AT+CIPSEND=4,5 |
Envía datos a través del canal 4, de 5 bytes de longitud.
EL enlace se desactiva cuando no pasa datos
|
| AT+CIPSTART='TCP','192,168,1,1',9999) |
Se conecta a un servidor utilizando
|
| AT+CIPSERVER=servicio,puerto |
Inicia el servicio indicado, utilizando el puerto que se establece en el comando.
Por ejemplo, el comando 'AT+CIPSERVER=1,80' habilita un servicio 'http' (servidor web) en el puerto 80.
El servidor web funciona recibiendo una cadena de caracteres en el puerto serie, con la algunos
detalles y los parametros que se utilizaron desde un navegador al acceder al mismo, como por ejemplo:
'+IPD,2,331:GET /%20parametro1=consulta,%20parametro2=23,parametro3=simple HTTP/1.1'
Un arduino conectado al puerto serie, podría examinar esta cadena y enviar una respuesta al
navegador del usuario que generó el mensaje, en función de los parámetros recibidos
(parametro1=consulta, parametro2=23 y parametro3=simple).
|
| AT+CWSMARTSTART=0 |
Para usar con la tecnología Smart Link de AI-Thinker
|
| AT+CIPAP? |
Devuelve la dirección IP del módulo para el modo Access Point
|
| AT+CIPSTA? |
Devuelve la dirección de IP para el módulo configurado como Estación
|
| AT+CIPAPMAC |
Devuelve la dirección MAC del módulo para el modo Access Point
|
| AT+CIPSTAMAC? |
Devuelve la dirección MAC IP para el módulo configurado como Estación
|
| AT+CIOADC |
Lee el estado del ADC.
Cuidado!
El rango de trabajo es de 0 a 1 voltios al pasar de 0 a 1024, con 10 bits de precisión
|
| AT+CIOREAD = n
|
Devuelve el estado actual de el pin GPIOn (0=LOW, 1=HIGH)
|
| AT+CIOWRITE = n,estado |
Establece el estado de un pin GPIOn (0=LOW, 1=HIGH)
|
|