ESP8266: Comandos AT

Por fin me han llegado los nuevos módulos ESP para reemplazar al anterior, caído en combate al parecer.

En primer lugar hay que conectar el módulo a un puerto serie del ordenador. Seamos prácticos, hay que usar un convertidor USB a UART:

Si no disponéis de éste, también se puede programar un "repetidor de puerto serie" en un puerto secundario del Arduino Mega o Due, o un puerto secundario vía software en cualquiera de las placas.

La conexión es como sigue:

Los pines VCC y CH_PD se ponen a 3,3 Voltios. Este módulo funciona a esa tensión.

El pin GND debe ir a GND, como es normal.

RXD se conecta a TXD, y TXD a RXD. Conexión cruzada.

Por último hay que añadir un condensador entre VCC y GND. Yo uso 1000 μF, este módulo es muy sensible.

Una vez hecho esto ya eres capaz de comunicarte vía puerto serie con el módulo. Para ello usaremos el software de Arduino IDE. Hay que abrirlo, seleccionar el puerto donde se encuentra tu convertidor USB-UART y abrir el monitor serie.

Por lo general tendrás que cambiar la velocidad de comunicación a 115200 bauds, y el ajuste de línea a Ambos NL &  CR.

Ahora enviamos el primer comando: AT

Si todo va bien, el módulo devolverá un OK. Si no, quizás tenéis que ajustar la velocidad de comunicación, probad entre 9600 y 115200 todas las disponibles. Observad que al escribir AT y pulsar intro las luces de TX/RX y un LED azul en el módulo se encienden, esto significa que hay comunicación.

Ahora vamos a conectar el módulo al router de tu casa. Necesitarás el nombre del punto de acceso (SSID) y su contraseña. Los comandos necesarios son:

AT+CWMODE=3

AT+CWJAP="SSID","CLAVE"

Si todo va bien recibiréis WIFI CONNECTED, WIFI GOT IP y OK. Se habrá asignado una dirección IP, podemos ver cuál con el comando AT+CIFSR.

En mi caso tengo asignada la IP estática 192.168.1.177, pero esto hay que configurarlo. De esta forma espero conseguir que ningún dispositivo repita su IP asignando un número alto. Hay que usar el comando AT+CIPSTA="192.168.1.177", y devolverá un OK.

Ahora vamos a abrir el servidor. Para ello se usan los comandos AT+CIPMUX=1 y AT+CIPSERVER=1,80

 

Ahora nos dirigimos al navegador y escribimos en la URL: 192.168.1.177:80. No ocurrirá nada pero aparecerá algo en la ventana del monitor serie.

El navegador ha enviado una solicitud GET al módulo (como cliente del servidor). Como no hemos contestado a tiempo, se ha cerrado la conexión. La utilidad de esto es hacer solicitudes GET que luego se interpretan con un código parser (intérprete de texto).

Por ejemplo, si escribimos en el navegador

Recibiremos el comando en el módulo

En resumen, una lista de los comandos:

AT
AT+CWMODE=3
AT+CWJAP="SSID","PASSWORD"
AT+CIFSR
AT+CIPSTA="192.168.1.177"
AT+CIPMUX=1
AT+CIPSERVER=1,80

Estos comandos pueden ser enviados por un Arduino (o cualquier micro) en su puerto serie, y mediante un programa intérprete lograr que reciba los datos que nosotros hayamos introducido en el servidor. Para enviar la solicitud al servidor se puede usar el navegador (a mano como hemos hecho), programar una App en Android, usar otro ESP8266 como cliente en otro Arduino... Las posibilidades son muchas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *