CONTENIDO ►
El modulo WiFi Arduino ESP-01 ESP8266 permite conectar el dispositivo a Internet inalámbrico o a la red de área local. Vamos a ver cómo conectar el módulo ESP-01 a la placa Arduino, cómo programar el módulo con comandos AT y cómo conectar el Arduino a la red WiFi local. Vamos a mostrar cómo se puede configurar fácilmente el módulo Wi-Fi ESP8266 ESP-01 Arduino y comprobar la comunicación entre el módulo y otro dispositivo.
Para esta actividad necesitaremos:
- Arduino Uno / Arduino Nano / Arduino Mega
- modulo WiFi ESP8266 ESP 01;
- botón pulsador;
- LEDs y resistencias de 220 Ohm;
- cables de conexion;
- protoboard;
- librerias SoftwareSerial.h
WiFi módulo ESP8266 ESP-01 datasheet, pinout

Características Arduino WiFi ESP8266 ESP-01 módulo:
- Alimentación: 1,8 – 3,6 V
- Consumo de corriente: 220 mA
- Wi-Fi 802.11 b/g/n
- Modos WiFi: cliente, punto de acceso
- Puertos GPIO: 4
- Frecuencia de reloj del procesador: 80 MHz
- RAM: 96 KB
- Dimensiones: 13 × 21 mm
El módulo ESP8266 ESP 01 proporciona acceso a la red Wi-Fi. El dispositivo es un SOC (System On a Chip) autónomo que no necesita un microcontrolador para controlar las entradas y salidas, ya que el ESP-01 actúa de forma autónoma como un pequeño ordenador. Dependiendo de la versión del módulo ESP8266, hay disponibles hasta 9 puertos GPIO, lo que permite programar el ESP8266 como un microcontrolador con LAN WiFi y acceso a Internet.
Como conectar módulo WiFi ESP8266 ESP-01 a WiFi

Tenga cuidado. El módulo funciona a 3,3 voltios. En el primer ejemplo, el módulo esp se conectará automáticamente a la red wifi y creará un servidor. Sólo tendrás que especificar en el programa el nombre de la red local y la contraseña de acceso. Después tendrás que introducir la dirección ip del servidor en cualquier navegador del dispositivo conectado a la red wifi. Si la conexión al punto wifi tiene éxito – verá en su navegador la inscripción «ESP-01 is connected».
Programa Arduino para WiFi ESP8266 ESP-01 módulo
#include "SoftwareSerial.h" SoftwareSerial mySerial(2, 3); // RX, TX #define B1 8 // botón para encender el LED #define B2 9 // botón de apagado del LED bool button1WasUp = true; bool button2WasUp = true; bool button1IsUp; bool button2IsUp; String IncomingString = ""; void setup() { Serial.begin(9600); mySerial.begin(9600); pinMode(B1, INPUT_PULLUP); pinMode(B2, INPUT_PULLUP); pinMode(13, OUTPUT); // conectarse a un punto de acceso wifi y crear un servidor SendCommand("AT+CWMODE=1", "OK"); // introduzca el nombre y la contraseña de la red wifi SendCommand("AT+CWJAP=\"WiFiSSID\",\"Password\"", "OK"); SendCommand("AT+CIPMUX=1", "OK"); SendCommand("AT+CIPSERVER=1,80", "OK"); SendCommand("AT+CIFSR", "OK"); digitalWrite(13, HIGH); // esperando la entrada de la dirección ip en el navegador while (true) { if (mySerial.available()) { char ch = mySerial.read(); Serial.write(ch); } button2IsUp = digitalRead(B2); if (button2WasUp and !button2IsUp) { delay(10); button2IsUp = digitalRead(B2); if (!button2IsUp) { break; } } } button2WasUp = button2IsUp; // envío de información sobre la conexión del módulo al servidor SendCommand("AT+CIPSEND=0,85", "OK"); SendCommand("<html><title>WiFi ESP-01 8266</title><body><h1>ESP-01 is connected</h1></body></html>", "OK"); delay(1000); digitalWrite(13, LOW); SendCommand("AT+CIPSEND=0,13", "OK"); SendCommand("<h2>LED </h2>", "OK"); SendCommand("AT+CIPSEND=0,68", "OK"); SendCommand("<html><style type='text/css'>h2:after{content:\"OFF\";}</style></html>", "OK"); } void loop() { button1IsUp = digitalRead(B1); button2IsUp = digitalRead(B2); // si se pulsa 1 botón - se enciende el LED y se envían datos al servidor if (button1WasUp and !button1IsUp) { delay(10); button1IsUp = digitalRead(B1); if (!button1IsUp) { digitalWrite(13, HIGH); SendCommand("AT+CIPSEND=0,67", "OK"); SendCommand("<html><style type='text/css'>h2:after{content:\"ON\";}</style></html>", "OK"); } } button1WasUp = button1IsUp; // si se pulsa el botón 2 - apagar el LED y enviar datos al servidor if (button2WasUp and !button2IsUp) { delay(10); button2IsUp = digitalRead(B2); if (!button2IsUp) { digitalWrite(13, LOW); SendCommand("AT+CIPSEND=0,68", "OK"); SendCommand("<html><style type='text/css'>h2:after{content:\"OFF\";}</style></html>", "OK"); } } button2WasUp = button2IsUp; } // funciones para enviar mensajes boolean SendCommand(String cmd, String ack) { mySerial.println(cmd); if (!echoFind(ack)) return true; } boolean echoFind(String keyword) { byte current_char = 0; byte keyword_length = keyword.length(); long deadline = millis() + 5000; while (millis() < deadline) { if (mySerial.available()) { char ch = mySerial.read(); Serial.write(ch); if (ch == keyword[current_char]) if (++current_char == keyword_length) { Serial.println(); return true; } } } return false; }
Módulo ESP8266 ESP-01 conexión WiFi con router
1. Después de descargar el sketch, abre el monitor de puertos de Arduino IDE. Verás un mensaje sobre la conexión a la red y la creación de un servidor local con dirección ip como en la imagen de abajo. Tienes que copiar la dirección ip del módulo (en la captura de pantalla 192.168.43.84) e introducirla en el navegador del dispositivo conectado a la misma red local.

2. Si la conexión se ha realizado correctamente, recibirá una respuesta del navegador (como en la captura de pantalla siguiente) en forma de mensaje en el monitor de puerto sobre la versión del navegador, el sistema operativo, etc. Si el mensaje no aparece en el monitor del puerto, intente reiniciar el microcontrolador y vuelva a realizar los pasos del primer párrafo.

3. Si la conexión se realiza correctamente, pulse el botón conectado al pin 9. Después de eso el programa debe enviar al navegador web el mensaje «ESP-01 is connected» , así como información sobre el estado del LED. Pulsando los botones conectados al Arduino puedes cambiar el estado del LED y la información se reflejará en el navegador web.
Conectar WiFi ESP8266 ESP-01 módulo Arduino

En este ejemplo, la conexión de esp01 a Arduino a través del bus UART se realiza a la inversa. El pin RX del ESP01 se conecta al pin RX del Arduino y el pin TX se conecta al pin TX del Arduino. No es necesario cargar el programa en el microcontrolador, pero es mejor cargar un sketch vacío en el Arduino. En el monitor de la interfaz serie es necesario cambiar a la velocidad 115200 y seleccionar el modo NL & CR (los ajustes se muestran en la imagen de abajo).
Configuración del móduloWiFi Arduino ESP8266 ESP-01
Para comprobar la conexión, introduzca AT en la línea de comandos y pulse enter, si ESP está conectado correctamente, el módulo ESP devolverá una respuesta OK:
AT
Puede cambiar a 9600 baudios en cualquier momento con el siguiente comando:
AT+UART=9600,8,1,0,0
Reinicie el módulo ESP 01 ESP8266 con el comando:
AT+RST
Los ajustes se almacenan en la memoria del chip y pueden restablecerse con un comando:
AT+RESTORE
Cambie el modo de funcionamiento del módulo con AT+CWMODE=1. Si desea comprobar en qué modo funciona el módulo Wi-Fi, puede introducir el comando AT+CWMODE? Esto mostrará el número (1, 2 o 3) en el monitor del puerto serie asociado con el modo de funcionamiento correspondiente del módulo Wi Fi ESP 8266 ESP 01 Arduino.
AT+CWMODE=1
Conexión Arduino a través de ESP8266 ESP-01 a WiFi

Averigua qué redes están disponibles en el rango del módulo. Tras enviar el comando AT+CWLAP, el monitor de puertos Arduino IDE mostrará todas las redes WiFi disponibles.
AT+CWLAP
Ahora puede conectarse a la red WiFi introduciendo el siguiente comando con el nombre de acceso a la red y la contraseña. El módulo devolverá la respuesta WIFI CONNECTED.
AT+CWJAP="WiFi Network","Password"
Antes de configurar el módulo ESP8266 ESP-01 como servidor, es necesario habilitar las conexiones múltiples. Introduzca el comando AT+CIPMUX=1, donde el número está relacionado con el tipo de conexión (0 – conexión única, 1 – conexión múltiple).
AT+CIPMUX=1
El siguiente paso es iniciar el servidor local en el puerto 80. El primer número del comando AT+CIPSERVER=1,80 se utiliza para cerrar el modo servidor (0) o abrir el modo servidor (1). El segundo número especifica el puerto que utiliza el cliente para conectarse a nuestro servidor (el puerto 80 es el predeterminado para el protocolo HTTP).
AT+CIPSERVER=1,80
Para conocer la dirección IP del módulo wifi ESP-01, introduzca el comando:
AT+CIFSR
A continuación, abra un navegador web en el dispositivo conectado a la red e introduzca la dirección IP del módulo ESP. En este punto obtendrá una respuesta en el monitor del puerto IDE de Aruino, como se muestra en la imagen de arriba. Esta es la petición HTTP que el ordenador o el teléfono envía a nuestro servidor. La petición contiene el nombre y la versión del navegador, el tipo de sistema operativo y otra información interesante.

Para enviar información al navegador web del cliente (ordenador o smartphone) desde el chip ESP01, lo primero que hay que hacer es indicar qué canal (0) se utilizará para enviar datos al cliente desde el servidor y cuántos caracteres tendrá el mensaje (5).
AT+CIPSEND=0,5
Después de introducir el comando, el monitor del puerto IDE de Arduino mostrará un símbolo «>» – esto significa que se pueden introducir caracteres en la línea de comandos. Tras enviar el mensaje «HELLO», al cabo de un par de segundos obtendremos una respuesta SEND OK. Sin embargo, el mensaje no aparecerá en el navegador web del cliente hasta que cerremos el canal en el servidor (0) con el siguiente comando:
AT+CIPCLOSE=0
Conclusión. En este artículo hemos discutido cómo conectar el módulo ESP-01 wi fi al IDE Arduino, flasheando y configurando el módulo ESP8266 ESP01 con comandos AT. Con este dispositivo creamos un servidor web local en el Arduino con una conexión al servidor cliente y enviamos un mensaje al navegador web del dispositivo cliente. En próximas revisiones seguiremos viendo el módulo ESP-12 ESP8266 en varios proyectos.

Deja una respuesta