Você está na página 1de 24

16/7/2017 Tutorial ESP8266 Parte I

Contacte con nosotros Iniciar sesin

Buscar

0
S/. 0,00

CATEGORAS
All Blog News Tutorial ESP8266 Parte I

ARTCULOS POPULARES

Tutorial trasmisor de celda de carga HX711, Balanza Digital ago 23, 2015

Con guracin del mdulo bluetooth HC-05 usando comandos AT ago 08, 2015

Tutorial Mdulo GPS con Arduino jun 25, 2015

ARTCULOS RECIENTES

Usando ESP8266 con el IDE de Arduino oct 21, 2016

Tutorial Sensor de Distancia SHARP sep 28, 2016

Arduino y ESP8266 como cliente web ago 24, 2016

PROMOCIONES ESPECIALES
http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 1/24
16/7/2017 Tutorial ESP8266 Parte I

Mdulo NRF24L01 2.4 GHz
Mdulo Transceiver RF nRF24L01 de...

S/. 10,00 S/. 12,00

Todas los promociones especiales

ETIQUETAS

sensor robot cnc Servo infrarrojo LED LCD driver Fuente cable

NOVEDADES
Piezo Buzzer activo 12mm
Agrega alertas o efectos de sonido a tus proyectos

S/. 1,00

Piezo Buzzer activo 22mm


Agrega alertas o efectos de sonido a tus proyectos

S/. 7,00

Shield Display LCD TFT 3.5"


Pantalla de 3.5", colores vvidos, incluye lector de tarjetas microSD.

S/. 70,00

Mdulo expansor IO PCF8574


El PCF8574 es un expansor de E/S compatible con la mayora de...

S/. 12,00

Sensor de presin BMP280


Sensor de presin baromtrica BMP280 de alta precisin y de bajo consumo...

S/. 15,00

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 2/24
16/7/2017 Tutorial ESP8266 Parte I

Sensor de Presin, Temperatura y Humedad BME280


Sensor de monitoreo ambiental ideal para aplicaciones de Drones e...

S/. 28,00

Mdulo GY-91 MPU9250 + BMP280 : Acelermetro, Giroscopio, Magnetmetro, Altmetro I2C


Sensor ultra compacto de 10 grados de libertad (DoF)

S/. 50,00

Shield Relay v2
La manera ms sencilla y rpida de controlar cargas de alta corriente...

S/. 45,00

Todas los nuevos productos

Tutorial ESP8266 Parte I


Posted by Tutoriales 36 Comments

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 3/24
16/7/2017 Tutorial ESP8266 Parte I

EL ESP8266 es un chip que gracias a la comunidad, sus caractersticas y un gran precio ha


logrado convertirse en uno de los adaptadores Wifi ms populares, y es que este chip
alberga gran potencia en un pequeo tamao.

Qu es el ESP8266?
-Soporta el protocolo 802.11 b/g/n
-Capacidad para Wi-Fi Direct (P2P), Soft-AP
-Tiene integrado el stack del protocolo TCP/IP
-Tiene un ncleo Diamond Standard Core (LX3) hecho por Tensilica
-Su ncleo de arquitectura RISC 32bits corre a 80Mhz
-64KBytes de RAM de instrucciones
-96KBytes de RAM de datos
-Tiene GPIOs, I2C, ADC, SPI, PWM, y ms: http://www.esp8266.com/wiki/doku.php?
id=feature_set.
-Los mdulos cuentan con una memoria flash SPI Winbond W25Q40BVNIG
-Los ESP8266 son fabricados por Espressif
-Los mdulos que usan este chip son de varios fabricantes y vienen en diferentes
formatos.

Mdulos con ESP8266


El ESP8266 est incluido en una gran variedad de mdulos de diferentes formas y formatos.

En este tutorial bsico vamos a trabajar con el ESP-01, uno de los ms conocidos, este
mdulo cuenta con los componentes necesarios para que solamente alimentes el mdulo y lo
empieces a utilizar.

Firmware para el ESP8266


El ESP-01 viene inicialmente con el firmware AT, con el cual puedes usarlo como un
adaptador wifi-serial, usando un microcontrolador externo como un Arduino para controlarlo y
comunicarse con la red inalmbrica.
Como cualquier microcontrolador se puede cambiar el firmware del ESP8266 y usar
cualquiera de los disponibles, entre los ms destacables estn, uLUA, microPython, y hasta
programas hechos en Arduino.

Conexiones del ESP-1


http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 4/24
16/7/2017 Tutorial ESP8266 Parte I

Conexiones del ESP-1


La conexin es bien sencilla solamente se necesita alimentar el mdulo, conectar el pin Rx y
Tx serial, y conectar el pin CH_PD a 3.3 para activar el chip.

Tomar en cuenta lo siguiente al usar el mdulo:


-El ESP8266 se alimenta con 3.3V, no usar 5V!
-El ESP8266 NO tiene entradas tolerantes a 5V, as que necesitas convertir el nivel de
las entradas si quieres comunicarte con dispositivos de 5V
-Durante los periodos de comunicacin inalmbrica el ESP8266 puede necesitar hasta
250mA, por lo que sin una buena fuente de alimentacin el ESP8266 se puede resetear.
Si este es el caso utilizar un capacitor en las entradas de alimentacin o una fuente de
mayor potencia.

Usando el Firmware AT
El firmware AT que viene por defecto en el ESP-01 es el ai-thinker V0.9.2.4.

Utilizacin de los comandos:


Tipo Ejemplo Descripcin

Prueba AT+CMD=? Retorna los posibles valores que puede tomar

Consulta AT+CMD? Retorna el valor actual del parametro

Establecer AT+CMD=Parametro Establece el valor del parametro de usuario

Ejecutar AT+CMD Ejecuta comandos sin parametros de usuario

Por defecto se utiliza un baud rate de 9600.


Despus de cada comando, el ESP8266 espera los caracteres especiales de nueva linea
<CR><LF> para ejecutar el comando.
Lista de comandos:
http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 5/24
16/7/2017 Tutorial ESP8266 Parte I

Lista de comandos:
Comando Respuesta Funcin

AT - Probar iniciacin correcta

AT OK Prueba si el mdulo responde correctamente

AT+RST - Reinicia el mdulo

AT+RST OK Reseta el mdulo

AT+CWMODE - Modo Wifi

+CWMODE:(1-3)
AT+CWMODE=? Lista los modos validos
OK

+CWMODE:modo Pregunta en que modo AP esta actualmente


AT+CWMODE?
OK el mdulo

Establece el mdulo en el modo dado


1 = Modo estacin (cliente)
AT+CWMODE=modo OK
2 = Modo AP (husped)
3 = Modo AP + Estacin (modo dual)

AT+CWLAP - Lista APs disponibles

Lista los Acess Points disponibles para


conectarse.
ecn: codificacin, puede ser:
0 = Abierto
1 = WEP
AT+CWLAP:ecn,ssid,rssi,mac
AT+CWLAP 2 = WPA PSK
OK
3 = WPA2 PSK
4 = WPA WPA2 PSK
ssid: String que contiene el SSID del AP
rssi: Fuerza de la seal
mac: String que contiene la direccin MAC

+CWLAP:ecn,ssid,rssi,mac Busca Acess Points disponibles para


AT+CWLAP=ssid,mac,ch
OK conectarse con las condiciones especificadas

AT+CWJAP - Unirse a un Access Point

+ CWJAP:ssid Imprime el SSID al que el mdulo esta


AT+CWJAP?
OK conectado

El mdulo se conecta al la red con el nombre


AT+CWJAP=ssid,pwd OK ssid indicado y la contrasea pwd
suministrada

AT+CWQAP - Desconectarse de una Access Point

Se desconecta de la red que esta actualmente


AT+CWQAP OK
conectado

AT+CWSAP - Configurar el softAP del mdulo

+CWSAP:ssid,pwd,ch,ecn
AT+CWSAP? Pregunta la configuracin actual del softAP
OK

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 6/24
16/7/2017 Tutorial ESP8266 Parte I

Comando Respuesta Funcin

Configura el softAP con


ssid: String con el nombre de la red
pwd: Contrasea, no mayor a 64 caracteres
ch: Canal inalmbrico
AT+CWSAP=ssid,pwd,ch,ecn OK ecn: Tipo de codificacin
1 = Abierto
2 = WPA_PSK
3 = WPA2_PSK
4 = WPA_WPA2_PSK

AT+CIPSTATUS - Informacin acerca de la conecin

status:
2 = Se obtuvo IP
3 = Conectado
4 = Desconectado
id: ID de la conexin en caso de multiconexin
STATUS:status
(1-4)
AT+CIPSTATUS +CIPSTATUS:id,type,addr,port,tetype
type: Tipo de conexin, "TCP" o "UDP"
OK
addr: Direccin IP de la conexin
port: Numero del puerto
tetype:
0 = El mdulo corre como cliente
1 = El mdulo corre como servidor

AT+CIPMUX - Habilitar o deshabilitar multiples conexiones

mode:
AT+CIPMUX=mode OK 0 = Conexin unica
1 = Mltiples conexiones, hasta 4

+CIPMUX:mode
AT+CIPMUX? Imprime el mode, el modo de conexin actual
OK

AT+CIPSTART - Establece una conexin TCP o registra un puerto UDP e inicia la conexin

Empieza una conexin como cliente (en modo


conexin nica)
type: puede ser "TCP" o "UDP"
AT+CIPSTART=type,addr,port OK
addr: String que contenga la direccin IP
remota
port: String que contenga el puerto remoto

Empieza una conexin como cliente (En modo


AT+CIPSTART=id,type,addr,port OK conexin mltiple)
id: ID de la conexin (1-4)

[+CIPSTART:(id)(type),(ip
AT+CIPSTART=? address),(port)] Lista los posibles comandos
OK

AT + CIPCLOSE - Cierra la conexin TCP o UDP

AT+CIPCLOSE=? OK

Cierra la conexin TCP o UDP con el ID "id"


AT+CIPCLOSE=id OK
en modo conexin mltiple

Cierra la conexin TCP o UDP para modo de


AT+CIPCLOSE OK
conexin nica

AT+CIPSEND - Enviar datos

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 7/24
16/7/2017 Tutorial ESP8266 Parte I

Comando Respuesta Funcin

AT+CIPSEND=? OK

Establece la longitud de datos a enviarse


AT+CIPSEND=length SEND OK (mximo 2048). Para un envo normal (modo
conexin nica)

Establece la longitud de datos a enviarse en la


AT+CIPSEND=id,length SEND OK conexin nmero "id". Para un envo normal
(modo conexin mltiple)

Enva datos sin adornos cada 20ms. El


mdulo retorna ">" despus ejecutar el
AT+CIPSEND
comando, si se recibe el comando "+++" se
regresa al modo comando.

AT+CIFSR - Obtener la direccin IP local

AT+CIFSR=? OK

+CIFSR:ip Retorna la direccin IP local del mdulo como


AT+CIFSR
OK cliente.

AT+CIFSERVER - Configurar
como servidor

Configura el mdulo como servidor donde el


modo:
0 = Borrar servidor
AT+CIPSERVER=mode[,port] OK
1 = Crear servido
puerto: numero del puerto, por defecto es el
333

AT+CIOBAUD Cambiar la velocidad de transmisin serial

+CIOBAUD:(9600-921600) Nos informa que las velocidades de


AT+CIOBAUD=?
OK transmisin permitidas estn en este rango

+CIOBAUD:baudrate Nos indica que el mdulo est actualmente


AT+CiOBAUD?
OK configurado a 'baudrate'

Configura la velocidad de transmisin a


AT+CIOBAUD=baudrate OK
'baudrate'

Para la lista completa de comandos visita: at_commands

Pruebas bsicas con Arduino


Vamos a realizar unas pruebas en las que el mdulo estar conectado a un puerto serial por
software del Arduino, el puerto serial por hardware lo utilizaremos para comunicarnos con el
Arduino via monitor serial.
Para esta prueba vamos a necesitar un mdulo ESP-1, un protoboard, cables dupont,
resistencias y un Arduino UNO r3.
Conectamos como se muestra en la imagen:

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 8/24
16/7/2017 Tutorial ESP8266 Parte I

Ahora cargamos el siguiente cdigo en el arduino.

#include <SoftwareSerial.h>
SoftwareSerial ESP(3, 2); // RX | TX

void setup()
{ Serial.begin(9600);
ESP.begin(9600);
}

void loop()
{
// Repetir lo recibido por el ESP8266 hacia el monitor serial
if (ESP.available())
{ char c = ESP.read() ;
Serial.print(c);
}

// Repetir lo recibido por el monitor serial hacia el ESP8266


if (Serial.available())
{ char c = Serial.read();
ESP.print(c);
}
}

Ahora vamos a abrir el monitor serial en el IDE del Arduino y configuramos los finales de
linea a NL & CR, y el baud rate a 9600 como se muestra en la imagen:

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 9/24
16/7/2017 Tutorial ESP8266 Parte I

Ahora para probar que todo funciona correctamente vamos a resetear el mdulo, para esto
conectamos el pin RST a tierra y luego lo desconectamos, cuando lo desconectemos lo
siguiente debera aparecer.

Los primeros caracteres son parte de un mensaje del bootloader que no vamos a ver por el
momento, se muestran as porque estan en otro baudrate. La siguiente linea que esta entre '[
]' es el fabricante y la versin de los cdigos AT que est cargada. Cuando el mdulo
transmita "ready" significa que esta listo para recibir comandos.
Probemos con el comando AT, este modo retorna "OK" si todo est en orden.

Ahora vamos a configurar el mdulo para se conecte a una red wifi de nuestra casa y
empieze a recibir datos:
El mdulo solamente ser cliente de una red inalmbrica existente por lo establecemos el
modo del mdulo a estacin (cliente), enviamos el comando:

AT+CWMODE=1

Este comando nos retorna "OK" si todo esta correcto, o "no change" si el mdulo ya se
encontraba en ese modo. El modo se queda grabado aunque se desenergize el mdulo.

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 10/24
16/7/2017 Tutorial ESP8266 Parte I

Ahora vamos a ver las redes inalambricas disponibles enviando:

AT+CWLAP

Ese comando nos retorna una lista con: el tipo de codificacin, el nombre de la red,
intensidad de seal, direccin MAC del AP, de la siguiente manera.

+CWLAP:(4,"Naylamp",-55,"0a:18:d6:99:59:47",6)
+CWLAP:(2,"VecinoWifi",-78,"10:fe:ed:7a:a9:42",6)
+CWLAP:(3,"Anonymous-Pro",-92,"c4:17:fe:8a:2d:24",11)
OK

Ahora vamos a conectarnos a una de esas redes, para ello enviamos el siguiente
comando con el nombre de red seguido por la contrasea, cada dato tipo String siempre va
entre comillas:

AT+CWJAP="Naylamp","hail_hydra"

Si despus de unos momentos nos responde con "OK" todo salio bien, sino revisa que hayas
puesto bien el nombre y contrasea de la red.
Ahora vamos a iniciar un servidor en el mdulo. Primero activamos el modo de multiconexin

AT+CIPMUX=1

Luego que nos responda "OK" iniciamos el servidor y le asignamos el nmero de servicio 1,
este servidor correr en el puerto 80. Este puerto es el mismo que usan los navegadores al
solicitar una pgina web, por lo que podremos probarlo en el siguiente paso.

AT+CIPSERVER=1,80

Ahora vamos a obtener la direccin IP que tiene asignada el mdulo en nuestra red local.
Para esto usamos lo siguiente.

AT+CIFSR

El mdulo nos responder con una direccin IP. En mi caso fue la 192.168.88.15 si
introducimos esta direccin IP en la barra URL de un navegador web como Google Chrome
sucede el navegador le solicita la pgina web al mdulo, para esto envia una serie de datos
que vamos a poder ver desde el monitor serial, ser algo como esto:

Link

+IPD,0,380:GET / HTTP/1.1
Host: 192.168.88.15
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.
155 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: es,en-US;q=0.8,en;q=0.6

OK
Link

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 11/24
16/7/2017 Tutorial ESP8266 Parte I

En el navegador seguira esperando una respuesta (una pgina web) del mdulo, pero como
no esta programado para responder no cargar nada. En el monitor serial, el texto de arriba
significa que se solicit informacin (mediante el mtodo http GET), la direccin a la que va
dirigida, tipo de conexin, tipo de archivo que espera recibir, tipo de cliente (navegador)
desde el cual se hizo la solicitud e idioma.
Ahora intentemos en el navegador con la siguiente direccin, reemplazando 192.168.88.15
con la direccin que hayas obtenido antes.

192.168.88.15/hola_mundo

En el monitor serial obtendremos:

Link

+IPD,0,380:GET /Hola_mundo HTTP/1.1


Host: 192.168.88.15
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.
155 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: es,en-US;q=0.8,en;q=0.6

OK
Link

En el texto recibido de arriba fijate en la lnea que contiene +IPD, en ahi se encuentra el texto
que enviamos desde el navegador. Ahora podemos pasar informacin al mdulo mediante el
navegador web.

Controlando un led desde el navegador


Vamos a implementar un interpretador de comandos en el Arduino para controlar un LED
desde el navegador.
Cargamos en el arduino el siguiente programa:

#include <SoftwareSerial.h>
// arduino Rx (pin 2) ---- ESP8266 Tx
// arduino Tx (pin 3) ---- ESP8266 Rx
SoftwareSerial esp8266(3,2);

void setup()
{
Serial.begin(9600); // monitor serial del arduino
esp8266.begin(9600); // baud rate del ESP8255

pinMode(13,OUTPUT);
digitalWrite(13,LOW);

sendData("AT+RST\r\n",2000); // resetear mdulo


sendData("AT+CWMODE=1\r\n",1000); // configurar como cliente
sendData("AT+CWJAP=\"SSID\",\"PASSWORD\"\r\n",8000); //SSID y contrasea para unirse a red
sendData("AT+CIFSR\r\n",1000); // obtener direccin IP

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 12/24
16/7/2017 Tutorial ESP8266 Parte I

sendData("AT+CIPMUX=1\r\n",1000); // configurar para multiples conexiones


sendData("AT+CIPSERVER=1,80\r\n",1000); // servidor en el puerto 80
}

void loop()
{
if(esp8266.available()) // revisar si hay mensaje del ESP8266
{
if(esp8266.find("+IPD,")) // revisar si el servidor recibio datos
{
delay(1500); // esperar que lleguen los datos hacia el buffer
int conexionID = esp8266.read()-48; // obtener el ID de la conexin para poder responder
esp8266.find("led="); // bucar el texto "led="
int state = (esp8266.read()-48); // Obtener el estado del pin a mostrar
digitalWrite(13, state); // Cambiar estado del pin

while(esp8266.available()){
char c = esp8266.read();
Serial.print(c);
}

//responder y cerrar la conexin para que el navegador no se quede cargando


// pgina web a enviar
String webpage = "";
if (state==1) webpage += "<h1>LED_13 = encendido!</h1>";
else { webpage += "<h1>LED_13 = apagado!</h1>";}

// comando para enviar pgina web


String comandoWebpage = "AT+CIPSEND=";
comandoWebpage+=conexionID;
comandoWebpage+=",";
comandoWebpage+=webpage.length();
comandoWebpage+="\r\n";
sendData(comandoWebpage,1000);
sendData(webpage,1000);

// comando para terminar conexin


String comandoCerrar = "AT+CIPCLOSE=";
comandoCerrar+=conexionID;
comandoCerrar+="\r\n";
sendData(comandoCerrar,3000);
}
}
}

/*
Enviar comando al esp8266 y verificar la respuesta del mdulo, todo esto dentro del tiempo timeout
*/
void sendData(String comando, const int timeout)
{
long int time = millis(); // medir el tiempo actual para verificar timeout

esp8266.print(comando); // enviar el comando al ESP8266

while( (time+timeout) > millis()) //mientras no haya timeout


{
while(esp8266.available()) //mientras haya datos por leer
{
// Leer los datos disponibles
char c = esp8266.read(); // leer el siguiente caracter
Serial.print(c);
http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 13/24
16/7/2017 Tutorial ESP8266 Parte I

}
}
return;
}

Lo que hace el programa es automaticamente conectarse a una red inalambrica de nombre


SSID y con contrasea PASSWORD. Luego incia un servidor en el puerto 80. Algo nuevo en
este programa es que cuando recibe la solicitud del navegador el mdulo le contesta con un
pequeo mensaje que se visualiza como pagina web en el navegador, esto lo hace con la
funcion AT+CIPSEND.
Podemos verificar la ip asignada al mdulo desde el monitor serial del arduino, en mi caso es
el 192.168.88.41. Con esta direccin puedo controlar al LED 13 del arduino desde el
navegador usando la subdireccines
192.168.88.41/led=0 para apagar el LED.

192.168.88.41/led=1 para encender el LED.

Con este tutorial hemos aprendido a usar el arduino en conjunto con el ESP-1 para hacer un
pequeo y simple servidor embebido.
Este fue solo un ejemplo y hay muchas cosas por mejorar como: solo ejecutar comandos
necesarios al inicio, algunos no necesitan ejecutarse cada vez que se inicia el mdulo.
Mejorar los tiempos de respuesta para que sea inmediato. Tambin se puede aadir
funciones adicionales como mostrar los estados de los pines o del ADC en la pgina web.
Una interfaz con botones para controlar el arduino.
En este tutorial solo vimos conectividad wifi en una red local, pero con los mismos principios
se puede conectar el mdulo a internet y asi tener realmente un sistema con internet de las
cosas.

24 ? ? 0 ? Compartir 8

36 Comments
http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 14/24
16/7/2017 Tutorial ESP8266 Parte I

Marvin Fuenmayor
nov 16, 2016

Hola, excelente tu informacin. Solo tengo unas pregunta, si el firmware del ESP es modificado para
usarlo solo a el para controlar directamente sus pines de I/O, es posible restaurar de nuevo al
firmware original? Para usar el propio ESP, es necesario modificar su firmware o es posible
programarlo y acceder a sus pines sin necesidad de modificar o cambiar el firmware x otro???Gracias
y saludos.

Reply

Naylamp
dic 2, 2016

Hola Marvin, Para controlar los pines GPIO es mejor cambiar el firmware por otro,
como por ejemplo el LUA o usar al ESP8266 como un microcontrolador como se
explica en > nuestro tutorial en dnde se programa desde el IDE de arduino . Y para regresar
a usar comandos AT tienes que cargar el firmware correspondiente.

Reply

Marvin Fuenmayor
ene 26, 2017

Gracias x tu respuesta.Saludos.

Reply

Alejandro MOLINARI
dic 5, 2016

Hola, muy buena info, y te hago una consulta, tengo mi modulo esp8266 lo prob ni bien lo compre y
todo Ok, luego de eso no se realmente que hice donde erre, pero ahora no tengo comunicacin con el
modulo, sabras decirme si hay alguna manera fsica de comprobar la comunicacin con el eh
probado cargndole nuevo firmware, reiniciando, cambie los Baudios, me esta dando a la idea que
erre en alguna conexin que no recuerdo y queme la comunicacin. Bueno agradecere si alguien
tiene algun truquito de como revisarlo sin empezar a desoldar chips...

Reply

Naylamp
dic 14, 2016

Hola Alejandro, si no te responde los comandos AT podra ser por la velocidad, intenta
probar con otra velocidad, Si has logrado cargar un firmware nuevo entonces los pines
de comunicacin estn bien, para cargar el firmware se usa el RX y TX los mismos que
son para comunicarse con comandos AT. En internet puedes encontrar varias
versiones del firmware prueba con diferentes.

Reply

julio
ene 12, 2017

hola,gracias por la informacin. Le hago una consulta,tengo mi modulo y quisiera saber si este
modulo sirve para controlar el arduino de manera remota, es que tengo 5 sensores de humedad y
necesito controlar todo de manera remota . Gracias
http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 15/24
16/7/2017 Tutorial ESP8266 Parte I

Reply

Naylamp
feb 18, 2017

Hola Julio, Si es posible controlar remotamente tu arduino, lo puedes hacer como


servidor web (ltimo ejemplo) pero tienes que configurar tu Router (abrir un puerto de
tu router que direccione a tu arduino). O tambin puedes programar tu arduino como
cliente web pero tendrs que crearle un servicio en un servidor externo (consultar:
Tutorial Arduino y ESP8266 como cliente web).

Reply

manuel
feb 6, 2017

Hola me ha sido muy til la informacin. Gracias por este magnfico tuto. Quera saber si hay alguna
forma de poder guardar en memoria el estado del Led, y cuando do se des o negro el dispositivo y se
vuelve a conectar a la corriente que tome el valor que tenia al desconectarse. Gracias

Reply

Naylamp
feb 18, 2017

Hola Manuel, tienes que ir guardando el valor del estado cada cierto tiempo en la
eeprom del Arduino, y al iniciar el programa inicializar el estado con el valor guardado.

Reply

Marcio Cabanhas
feb 17, 2017

Cara muito bom seu blog, resolveu minha duvido e meu projeto esta agora funcionando. Muito
obrigado.

Reply

Oscar Musayon
feb 19, 2017

Saludos cordiales. Muy interesante la informacin publicada por ustedes, les felicito. Por favor ojal
tengan la amabilidad de ayudarme con este escenario: Quiero capturar una huella digital con el lector
que ustedes comercializan (compatible con Arduino) y enviar la informacin digital de la misma de
forma inalmbrica hacia una pc en donde se guardar en una base de datos. 1. Este mdulo me
puede servir? 2. Si es as cul sera el alcance mximo? y si no hay otro dispositivo similar con ms
alcance? Gracias por la respuesta.

Reply

Naylamp
mar 25, 2017

Hola Oscar, el alcance de los mdulo ESP8266 son similares al de una router bsico,
menos de 100m sin obstculos, pero bsicamente depende que haya seal wifi en
donde vas a usar. En tu caso sera mejor usar el ESP como cliente y enviar los datos
directamente a la base de datos a travs de internet. Si lo nico que deseas es

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 16/24
16/7/2017 Tutorial ESP8266 Parte I

establecer comunicacin inalmbrica con la PC puedes usar un mdulo bluetooth o


mdulos NRF24L01.

Reply

martin sanchez
mar 5, 2017

Hola, muchas gracias por el espacio! la verdad esta todo de lujo, lo unico tuve 2 problemas. El 1ero
fue que sino colocaba mi programa en 19200 baudios no andaba nada (hay algun incomveniente
con eso?) Despus, si bien el 1er programa anduvo de lujo (es decir sin problemas) cuando
quieroe correr el 2do programa, desde ya modificandole los baudios desde los 9600 que ustedes
usan hasta los 19200, en la compilacin me tira un error en la final donde se coloca la contrasea y
el nombre de la red.El error es el sigueinte:
exit status 1
inconsistent user-defined literal suffixes 'SSID' and 'PASSWORD' in string literal
para ser mas claro la fila que tira el error dice:
sendData("AT+CWJAP="SSID","PASSWORD"rn",8000); //SSID y contrasea para unirse a red
Ahora, si lo modifico de forma que quede de la siguiente forma el error desaparece:
sendData("AT+CWJAP='SSID','PASSWORD'rn",8000); //SSID y contrasea para unirse a red
Reply

Naylamp
mar 25, 2017

Hola Martn, A cual velocidad te refieres? Al serial.begin() o al esp8266.begin(), con


el primero no debera tener problemas en modificar la velocidad, con el segundo, la
velocidad tiene que ser la misma que tu ESP8266, para cambiarlo aparte de
modificar la velocidad en el cdigo, tambin tienes que cambiar la velocidad de tu
ESP8266 usando los comandos AT respectivos. Con respecto a lo segundo son
problemas de sintaxis, las comillas el compilador las interpreta como inicio y fin de
una cadena. Todas las comillas internas deben ir con\" , tenemos un error al digitar
el cdigo en nuestro blog que borra el \ , estaremos solucionndolo pronto. La lnea
que mencionas escrita correctamente es:
sendData("AT+CWJAP=\"SSID\",\"PASSWORD\"\r\n",8000);
no olvides tambin en corregir todos los rn por \r\n.

Reply

Daniel
mar 24, 2017

Hola, buenas tardes. Tengo en la cabeza un proyecto que me ronda desde hace bastante tiempo,
pero que no soy capaz de desarrollar por mi falta de conocimientos. Expongo lo que quiero hacer y
vosotros me decs si es posible, y como. Quiero que cuando llueva se bajen las persianas de mi casa.
Para ello he pensado en utilizar los esp8266-- El primero como servidor, conectado a un modulo
sensor de lluvia. Para que cuando llueva se conecte con cada uno de esp8266 (AP) que habr
instalados en cada persiana y estn bajen. Es posible que se comuniquen entre los esp8266 y se
realice lo que quiero utilizando las entradas, salidas, gpo0 y gpo2.Quedo a la espera de vuestras
respuestas. Un abrazo y GRACIAS..

Reply

Naylamp
mar 25, 2017

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 17/24
16/7/2017 Tutorial ESP8266 Parte I

Hola Daniel, Si es factible realizar lo que estas planteando, Si el servidor es el que esta
con el sensor, este no tienen la capacidad de iniciar la comunicacin con un cliente, y
tendran que los otros ESP clientes estar consultando cada cierto tiempo al ESP
servidor, y en tu caso no habra problema puesto que no necesitas un tiempo de
respuesta rpido. Otra opcin seria que en las persianas cada ESP sea un servidor con
diferente IP, y en el sensor de lluvia sera un cliente, que se conectara a cada servidor
para realizar la accin.

Reply

SIMON
mar 25, 2017

Hola sabes que cargo el codigo y me sale error ** esp8266.print(comando); // enviar el comando al
ESP8266** en esta linea exit status 1 'esp8266' was not declared in this scope saludos

Reply

Naylamp
mar 25, 2017

Hola Simon, puede ser que te falte declarar en el inicio el SoftwareSerial esp8266(3,2);

Reply

Simon
mar 25, 2017

Hola naylamp copie el codigo tal cual... pero ahora me lanza error con el comando **
sendData("AT+CWJAP="DOMINGA","pass"rn",8000); //SSID y contrasea para unirse a red (puse mi
red y pass, desde el monitor hago lo mismo con at+cwjap y entra sin problema) el error que dice es
"inconsistent user-defined literal suffixes 'DOMINGA' and 'pass' in string literal estoy atento gracias

Reply

Naylamp
mar 26, 2017

Hola simn, son errores de sintaxis con las comillas internas, la lnea debera ser:
sendData("AT+CWJAP=\"SSID\",\"PASSWORD\"\r\n",8000); Fue un error que tuvimos
al digitar el cdigo en el blog que borro todos los \ , en el cdigo anterior tambin se
deben corregir todos los rn por \r\n.
El Cdigo en el tutorial ya fue corregido, ahora no debera haber problemas de sintaxis

Reply

David
abr 2, 2017

Hola, en primer lugar agradecerte el aporte. Mi pregunta es la siguiente: Voy a manejar un hardware
con Arduino (entre ellos un mdulo NFC para activar abrir una puerta en funcin del ID permitido), y a
travs del ESP8266 estar conectado a un servidor, este servidor nos enviar los IDs permitidos y
denegados cada cierto tiempo, por otra parte, enviaremos al servidor variables del tipo a sido abierto,
etc. El cdigo ms o menos me funciona tanto para enviar como para recibir. Ahora la idea sera
integrar ambas partes en un solo cdigo. Y aqu viene mi pregunta, como puedo hacer para que el
Arduino no se quede escuchando el canal todo el rato a ver si le llega algo del ESP. Ya que no puedo

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 18/24
16/7/2017 Tutorial ESP8266 Parte I

tenerlo ocupado en eso todo el rato tengo que manejar ms cosas. He pensado en actuar con
interrupciones, supongo que si detecto un cambio en el pin de Rx del Arduino, es decir, el Tx del ESP,
pero seguramnente se transmita informacin continuamente y me va a estar interrumpiendo todo el
rato. He visto la segunda parte de este tutorial en el que recibes datos de un servidor, alguna vez
integraste ambas partes? para poder enviar y recibir.Gracias de antemano.

Reply

Naylamp
abr 9, 2017

Hola David, mientras se est enviando o recibiendo datos del mdulo wifi, el
microcontrolador estar ocupando realizando esta tarea, si lo trabajas con
interrupciones primero tienes que analizar tu proyecto y ver que procesos son
prioritarios, En este ejemplo se usa if(esp8266.available()) de esta forma se entra al if
solo cuando hay datos disponibles en el ESP, de esta forma mientras no haya datos no
afecta al resto del programa. Cuando dices en integrar los dos tutoriales a que te
refieres? Este tutorial no es ni para enviar datos a un servidor ni para recibir de l, sino
es para trabajar al arduino como un servidor, en el segundo tutorial se usa como
cliente, para conectarse a un servidor y poder enviar o recibir datos, en tu caso ese es
el tutorial que debes de seguir.

Reply

Fernando
abr 23, 2017

Debiera compilar en arduino uno? el sketch para controlar LedMe aparece como comando erroneo
sendData("AT+RSTrn",2000); !sendData was not declared

Reply

Naylamp
may 1, 2017

Hola Fernando, el error es porque la funcin senData no est definida, la funcin est
en la parte final del cdigo, asegrate de haber copiado todo el cdigo o que tenga el
nombre correcto.

Reply

kikelo
may 8, 2017

hola buenos das, me gustara saber si a alguien tiene el mismo problema que yo, ya que no consigo
comunicar mi arduino uno con el esp8266. he probado desde los 9600 a 15200 baudios sabe alguien
a que puede ser debido. las conexiones estn todas correctas y la alimentacin la hago desde una
fuente externa de 3,3v

Reply

pepe
may 17, 2017

Pues a mi me pasa tambin lo mismo que tu kikelo, pero lo curioso del caso es que ayer me funciono
un rato, lo que de todas maneras no creo que correctamente, ya que me salia una sola linea con
caracteres raros. Hoy lo he probado con otro de nuevo y hace lo mismo, no funciona, al conectar la

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 19/24
16/7/2017 Tutorial ESP8266 Parte I

alimentacin se encienden los dos les un parpadeo y se paran y no se conecta, que


complicado.Saludos.

Reply

Naylamp
may 30, 2017

Lo ms probable es que tenga otra velocidad, prueben con todas las velocidades, 300,
600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 y 115200 lo ms
probable es que sea de 9600 38400 o 115200 baudios, recuerda que puedes cambiar
la velocidad con el comando el AT correspondiente.

Reply

Johnny
may 18, 2017

Buenas noches, este mismo esquema de conexin funciona para un Arduino Leonardo? Como podria
realizar la conexin con un Arduino Leonardo? Agradezco de antermano la ayuda que me puedan
brindar. Quiero subirle un Firmware actualizado al modulo ESP8266.

Reply

Naylamp
may 30, 2017

Hola Johnny, las conexiones para un arduino Leonardo son las mismas, Para que el
ESP8266 entre en modo de programacin el Pin GPIO_0 debe estar conectado a GND
antes de inicializarse. Es recomendable usar un Conversor USB-Serial para cargar el
Firmware.

Reply

Molecula_Girl
may 26, 2017

Hola..! Espero te encuentres bien... Yo estoy intentando programar este modulo pero con un PICAXE
usando el hserin y hserout que dispone para enviar y recibir datos seriales este dispositivo, pero la
respuesta que recibo cuando mando el AT es un "[A9]" en lugar de un OK y la verdad que no se que
significa eso, llegue a pensar que el modulo esta daado pero le he mandado otros comandos AT y la
respuesta es diferente es decir esta respondiendo al comando pero no se como interpretar la
respuesta, hay alguna manera de saber si se dao a nivel de hardware?.

Reply

Naylamp
may 30, 2017

Para descartar problemas de hardware prueba el ESP8266 con un arduino. Qu


terminal estas usando para enviar y visualizar los datos seriales? tal vez muestre los
valores en Hexadecimal, prueba con el monitor serial de Arduino.

Reply

alejandro
http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 20/24
16/7/2017 Tutorial ESP8266 Parte I
jun 13, 2017

disculpa yo utilise el modulo esp-01 pero solo puedo acceder dela misma red en la que el esta
conectado si intento utilizar datos mobiles no se conecta como puedo hacer para que se conecte

Reply

Naylamp
jun 30, 2017

Hola Alejandro, el ejemplo solo es para una red local, si quieres acceder remotamente
desde fuera de tu red tienes que configurar tu mdem y direccionar uno de los puertos
a la IP local del ESP. Para acceder remotamente se tendra que usar la IP pblica de tu
red y el puerto configurado.

Reply

jose
jun 21, 2017

disculpa, ante que todo tus tutoriales han sido de mucho ayuda pero con respecto a este modulo wi
fe, he tenido problemas para comunicarlo con mi arduino, ya he probado las diferentes velocidades y
nada, el modulo esp si lee los comandos AT pero me responde a veces con letras diferentes, o puros
cuadros blancos, he tratado de todo, agradecera mucho su ayuda

Reply

Naylamp
jun 30, 2017

Hola Jos, si nunca te responde el OK es porque la velocidad no es la correcta, intenta


con otra velocidad, si te responde el OK pero no siempre o con caracteres basura,
puede ser por un falso contacto en la conexin o porque estas usando una velocidad
muy alta para el SoftwareSerial, de ser este ltimo el caso, usa el comando
AT+CIOBAUD=9600 para cambiar de velocidad.

Reply

Leave a Reply
* Name:

* E-mail:
(Not Published)

Website:
(Site url withhttp://)

* Comment:

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 21/24
16/7/2017 Tutorial ESP8266 Parte I

Submit

Boletn Introduzca su direccin de correo electrnico

Informacin
Contacte con nosotros
Entrega
Condiciones de uso
Nosotros

Tutoriales y Proyectos con Arduino


Mapa del sitio

Mi cuenta
Mis compras
Mis vales descuento
Mis direcciones
Mis datos personales

Mis vales

Informacin sobre la tienda

Naylamp Mechatronics, Mz. E Lote 31 Urb. Ingeniera, Trujillo - Per


Llmanos ahora: 997646858
Email: naylamp.mechatronics@gmail.com

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 22/24
16/7/2017 Tutorial ESP8266 Parte I

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 23/24
16/7/2017 Tutorial ESP8266 Parte I

http://www.naylampmechatronics.com/blog/21_Tutorial-ESP8266-Parte-I.html 24/24