Académique Documents
Professionnel Documents
Culture Documents
Buscar
0
S/. 0,00
CATEGORAS
All Blog News Usando ESP8266 con el IDE de Arduino
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
ARTCULOS RECIENTES
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 1/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
PROMOCIONES ESPECIALES
Sensor EMG MyoWare
Controlar tus proyectos con el...
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
S/. 7,00
S/. 70,00
S/. 12,00
S/. 15,00
S/. 28,00
S/. 50,00
Shield Relay v2
La manera ms sencilla y rpida de controlar cargas de alta corriente...
S/. 45,00
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 3/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
En este tutorial explicaremos como instalar el plugin en el IDE de Arduino para poder
programar el ESP8266 (sin usar la placa Arduino), y desarrollaremos algunos ejemplos
bsicos con el fin de comparar las funcionalidades del ESP8266 y Arduino.
El ESP8266 es un SoC (System on Chip), con capacidades de 2.4 GHz Wi-Fi (802.11 b / g /
n, soporte WPA / WPA2), 16 GPIO de propsito general (entrada / salida), IC, convertidor
analgico-digital (ADC de 10 bits), SPI, IS, UART y modulacin de ancho de pulso (PWM),
emplea un CPU RISC de 32 bits basado en el Tensilica Xtensa LX106 funcionando a 80
MHz (o overclocked a 160 MHz). Tiene una memoria ROM de inicio de 64 KB, memoria
RAM de instrucciones de 64 KB y 96 KB de RAM de datos. Memoria flash externa de 4MB
pero este ltimo vara entre diferentes versiones de modulo.
En pocas palabras podemos decir que nuestro ESP8266 es un microcontrolador con WIFI
incorporado. Y al igual que muchos microcontrolador podemos reprogramar a nuestra
necesidad, por defecto o de fbrica nuestro ESP8266 viene con un firmware de comandos
AT, que nos permite manipular el ESP8266 desde otro microcontrolador, nosotros en este
tutorial vamos a programar el ESP8266 pero usando el IDE Arduino.
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 4/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
siguiente link pueden revisar los diferentes tipos de mdulos, nosotros detallaremos dos de
los ms comerciales:
ESP-01
Este mdulo es comnmente llamado Modulo wifi y est diseado para usar como un
transiver Wifi, para ser controlado de forma serial con un microcontrolador usando
comandos AT.
ESP-12E
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 5/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
ESP-12E
Este mdulo es uno de los ms usados, tiene disponible todos los pines que el chip
ESP8266 posee.
Este chip es la base de varias plataformas de Iot, siendo las ms populares NodeCMU y
Wemos
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 6/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
En los ejemplos del tutorial trabajaremos con estas tres placas ESP-01, NodeMCU y WeMos D1
Mini
Este paso es necesario para que nuestro IDE de arduino reconozca a nuestro ESP8266
como una tarjeta.
Debemos tener ya instalado nuestro Arduino IDE con versin 1.6.4 o superior.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 7/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
La instalacin va a demorar un poco, al finalizar, el tem del ESP8266 les debe marcar
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 8/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
como instalado.
Conexin ESP8266
Esto depender del modelo ESP que tengan:
ESP-01:
Este modelo tal vez sea el ms molestoso para conectar: para que el modulo funcione es
necesario conectar los pines VCC (3.3V), GND y CH_PD( a 3.3V) con esto empieza a
funcionar. Adicionalmente como necesitamos la conexin con la PC vamos conectar el RX y
el TX a un conversor USB serial, con esto ya est la comunicacin con la PC, pero solo
para programar se necesita que el ESP8266 arranque con el pin GPIO0 en estado LOW, de
esta forma el ESP entra a modo de programacin.
Despus de programar puedes desconectar el GPIO0 para que no entre nuevamente en
estado de programacin cada vez que se enciende el mdulo.
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 9/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
Notar que usamos un regulador de 3.3V, esto porque dependiendo del conversor USB serial
que usen los 3.3V no podra tener la suficiente corriente para alimentar el ESP y esto podra
causar que se cuelgue o reinicie el modulo.
NodeMCU (ESP-12E)
En este caso solo necesitan conectar su cable USB y conectar un led en el pin D4, esto
para el primer ejemplo que veremos ms adelante.
El pin D4 es el pin GPIO2 del ESP-12E, desde el IDE de arduino nos guiaremos por los
GPIO en lugar de la numeracin de pines de la palca:
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 10/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
WeMos (ESP-12E)
El Wemos que usaremos ser el Wimos D1 Mini y al igual con el MCU solo necesitan conectar
el Led al pin D4 (GPIO2), esta conexin ser para el primer ejercicio que desarrollaremos.
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 11/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
void setup() {
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH); // Led ON
delay(1000); // pausa 1 seg
digitalWrite(2, LOW); // Led OFF
delay(1000); // pausa 1seg
}
En cualquiera de los casos hay que verificar que en el IDE se haya seleccionado la placa y
el puerto correspondiente (En el caso del ESP-01 debe estar seleccionado la placa: Generic
ESP8266 Module)
A diferencia de un arduino durante el proceso de carga, en la parte inferior del IDE nos
muestra el porcentaje de la carga que se est realizando:
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 12/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
Si han realizado bien todos los pasos anteriores, debe parpadear el LED, en el caso del
NodeMCU y WeMos notaran que tambin parpadea el Led del ESP-12E, esto porque el
GPIO2 generalmente se usa como TX1 para hacer debugging y el Led muestra el estado
del pin GPIO2 pero negado.
Si su led Parpadea entonces significa que tienen todo configurado correctamente y estn
listos para realizar los siguientes ejemplos:
Este ejemplo no podrn implementar los que estn trabajando con el ESP-01, y en el caso
del NodeMCU y WeMos deben conectar un potencimetro en el pin A0 pero usando los
3.3v
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 13/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
void setup() {
//Iniciamos la Comunicacion Serial a 9600 baudios
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(A0); //Lectura del ADC
float voltage = sensorValue * (3.3 / 1023.0); //escalamos a voltaje
delay(100);
}
Notar tambin que estamos usando la comunicacin serial y en este ejemplo lo utilizamos
para enviar el valor de la lectura analoga a la PC
Otro punto que hay que tener en cuenta es que el rango no es exactamente hasta 3.3V esto
porque el divisor de voltaje esta hecho con valores comerciales de resistencias e incluso
una resistencia por ms precisa que sea puede tener pequeas variaciones, y si
necesitamos un valor exacto del voltaje es necesario escalar el voltaje correctamente.
Para obtener la ecuacin correcta para escalar, necesitamos conectar el pin A0 a 3.3V,
seguidamente debemos de anotar el valor del ADC, en nuestro caso 966, dicho valor
debern poner en la ecuacin en remplaz del nmero 1023.
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 14/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
Otra diferencia positiva para el ESP8266 es que podemos modificar la frecuencia del PWM,
siendo por defecto de 1KHZ.
Para realizar el ejemplo se puede usar la conexin inicial (el Led en el GPIO2) pero les
recomendamos usar esta funcin en otro pin puesto que le GPIO2 siempre va a parpadear
al iniciar el modulo.
void setup() {
pinMode(2, OUTPUT);
}
void loop() {
En caso quieran modificar la frecuencia del PWM deben de poner la siguiente lnea de
cdigo en el void setup () con la frecuencia deseada:
analogWriteFreq(2000); //2KHz
En este caso hay que tener cuidado con el Pin que usemos, por ejemplo el Pin GPIO2 se
utiliza como salida de datos para depurar, por esta razn siempre cuando se inicie o recete
el ESP el GPIO2 va a enviar datos por ese pin, eso podra causar movimientos
involuntarios en el servo.
En el ejemplo trabajaremos con ese pin pues el ESP-01 solo tiene disponible el GPIO2 pero
los que estn trabajando con el NodeMCU o WeMos pueden cambiar de pin.
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 15/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
El cdigo es el siguiente
#include <Servo.h>
Servo myservo;
void setup() {
myservo.attach(2); // servo en el pin 2
}
void loop() {
for (int angulo = 0; angulo <= 180; angulo += 1)
{
myservo.write(angulo);
delay(10);
}
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 16/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
#include <ESP8266WiFi.h>
WiFiServer server(80);
void setup() {
Serial.begin(9600);
delay(10);
Serial.println();
Serial.println();
Serial.print("Conectandose a red : ");
Serial.println(ssid);
void loop() {
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 17/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
client.flush();
Serial.println("Enviando respuesta...");
//Encabesado http
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");// La conexin se cierra despus de finalizar de la respuesta
client.println();
//Pagina html para en el navegador
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head><title>Naylam Mechatronics</title>");
client.println("<body>");
client.println("<h1 align='center'>Test ESP8266</h1>");
client.println("<div style='text-align:center;'>");
client.println("<br />");
client.println("<button onClick=location.href='./?LED=ON'>LED ON</button>");
client.println("<button onClick=location.href='./?LED=OFF'>LED OFF</button>");
client.println("<br />");
client.println("</div>");
client.println("</body>");
client.println("</html>");
delay(1);
Serial.println("respuesta enviada");
Serial.println();
}
}
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 18/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
En el monitor serial pueden monitorear las peticiones que se hacen al ESP8266, solo
mostramos la primera lnea de cada peticin http pues es all donde estn los datos que
pasamos por URL.
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 19/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
3 ? ? 0 ? Compartir 2
19 Comments
Fernando
nov 14, 2016
Ms que comentario es una pregunta todo super bien explicado y funciona muy bien ,vyo tengo un
problema que me est volviendo loco , cuando conecto el node mcu por primera vez a la tableta con
Windows 10 se conecta al serial y se desconecta con una frecuencia de un segundo hasta que
oprimo el botn rst luego puedo cargar el programa sea cual fuere , y cuando termina de cargar por
ejemplo el Code del servidor y quiere conectar el terminal serie empieza otra vez a desconectarse y
conectarse dndome error , tengo dos placas node las dos me hacen lo mismo . No prob con un
ordenador todava pero no encuentro la solucin , Ah mi placa es nodemcu lolin con Driver ch340 G
desde ya gracias Fernando desde Ibiza
Reply
Naylamp
nov 16, 2016
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 20/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
Hola Fernando, suele pasar eso cuando el cable est fallando, pero en tu caso no
creo que sea eso puesto que te deja programar. Lo ms probable es que un segundo
procesos o programa en la tableta est abriendo y cerrando los puertos seriales en
busca de algn dispositivo
Reply
fernando
nov 26, 2016
Reply
Luis
dic 22, 2016
Buen da, tengo problemas al acceder al modo Servidor web con ESP8266 con mi router de casa,
ingreso el nombre de la red y la contrasea, cargo al dispositivo y luego al momento de visualizar la
comunicacin de recepcin de la IP que obtiene el dispositivo, aparece: Conectandose a red :
VHDL_FPGA ............................... ................................................ y sigue los puntos suspensivos
para conectar a la Red. y no logra conectarse a la Red.He hecho la prueba con mi celular, compartir
el internet al ESP8266 y el resultado es exitoso. Pero no resulta el mismo resultado con el router de
casa, podran darme algunas sugerencias....!!!
Reply
Dario
may 18, 2017
Hola Luis, ya solucionaste este problema con la conexin al router de casa, yo tengo
el mismo inconvenientes y no he podido solucionarlo
Reply
Jorge
ene 2, 2017
Reply
Jorge
ene 2, 2017
Reply
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 21/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
Luis Rivas
feb 5, 2017
Hola muchas gracias genial tu aporte me sirve mucho, tengo una pregunta sobre como mejor la
seguridad del servidor?. de nuevo muchas gracias.
Reply
Naylamp
feb 18, 2017
Hola, la forma ms fcil seria solicitarle al cliente un usuario y contrasea, si los datos
son correctos recin mostrarle la informacin del arduino, similar al acceso de
configuracin de un router.
Reply
Oscar
abr 24, 2017
Hola, yo cuento con un nodemcu lolin V3, todo parece estar bien alcargar un programa pero cuando
termina parece que no responde ya e intentado encender un led con diferentes gpio pero ninguna
parece responder
Reply
Sergio
may 2, 2017
Hola amigo. Tengo una duda y me gustara compartirla para lograr resolverla. No soy nada experto
en Arduino o nodemcu pero esta ltima placa me agrada por las posibilidades que ofrece, wifi y
muchos puertos gpio. Estos puertos gpio, deseo usarlos como entrada de datos, especficamente
para leer el cambio de estado de varios Sensor de luz y luminosidad con resistencia LDR. Estos
traen pines A0 y D0, imagino sern salidas analgicas y digitales. Mi pregunta es: podra usar esos
valores de salida del sensor como entrada al nodemcu y de ser posible, cul? El A0 o D0? Gracias
de antemano y disculpa mi ignorancia.
Reply
Naylamp
may 31, 2017
Hola Sergio, puedes usar cualquiera de las dos salidas del mdulo LDR, si usas la
analgica tienes que conectar al pin analgico A0 de NodeMCU. Y si usas la salida
digital del mdulo puedes conectar a cualquier pin GPIO del NodeMCU.
Reply
Dario
may 18, 2017
Yo tengo el mismo problema que Luis, mi NodeMCU no se conecta a la red wifi del router de la casa
pero si le comparto Internet de mi celular se conecta con xito, cmo puede resolver este problema?
Reply
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 22/23
16/7/2017 Usando ESP8266 con el IDE de Arduino
Naylamp
may 31, 2017
Podra ser la configuracin del router, prueba en otra red wifi que funcione y compara
las configuraciones del router.
Reply
andres
jun 14, 2017
Reply
Naylamp
jun 30, 2017
Hola Andres, si trabajas con el NodeMCU no tiene salida de 5V, para alimentar el
modulo tendrs que usar una fuente externa de 5V, si usas el WeMos si tiene salida
de 5V. El pin de dato del modulo relay si puede ir conectado directo al NodeMCU
Reply
Carlos Guerra
jun 29, 2017
Hola, es de los mejores tutoriales que he encontrado, muchas gracias, una duda todo me funciona
bien, solo que despus de pasados unos minutos el led se apaga y tengo que reiniciar de nuevo el
modulo para encenderlo y apagarlo.
Reply
Naylamp
jun 30, 2017
Hola Carlos, en qu ejemplo tienes ese problema? podra ser problema de fuente, el
ESP8266 es sensible al ruido, para descartar intenta agregar un condensador de
100uF entre el vcc y gnd o probar con una fuente estable de 5V y de 1A.
Reply
julio
jun 30, 2017
Hola buenas, el tema es que me he fabricado un termostato con el ESP8266 y puedo gestionar la
temperatura de la caldera desde cualquier parte del mundo desde mi mvil, viendo en todo
momento T y humedad. El problema me surge cuando han pasado unas horas, el mdulo se
desconecta del wifi y me toca reiniciarlo fsicamente. Haba implementado un watchdog, pero al final
no me sirve puesto que al reiniciar el mdulo mediante SW tb me reinicia las patillas GPIO y la
conexin con la caldera se pierde.Te ha pasado algo as?, alguna sugerencia?Gracias
http://www.naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html 23/23