Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando
-- Tutorial de iniciación a Arduino --
Volver al índice del tutorial Return to index tutorial
____________________________
Arduino. Button. Dimmer. LED. |
57_3.- Módulo Wifi ESP8266 ESP-01.
1.- Presentación.
NOTA:
- Al modulito ESP8266 hay que introducirle los códigos de los programas. Esos códigos se pueden introducir conectándolo a un modulo FTDI conectado por USB al ordenador, en este caso no es necesario el Arduino para nada. Lo que sí es necesario es el programa IDE del Arduino que se utilizará para introducir el programa.
- Si no tiene el FTDI, puedes utilizar un Arduino para cargarle el programa. Es este caso el Arduino hace las veces de FTDI, vale para cargarle el programa al ESP8266, una vez que esté el programa cargado ya no es necesario el Arduino. En este tutorial voy a cargar el código en el ESP8266 mediante el Arduino.
- Una vez que el programa esté cargado en el ESP8266, se tratará de encender y apagar un LED desde una página web.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
El modulito ESP8266 es un servidor y cliente wifi, entre otras muchas posibilidades.
Puede funcionar con Arduino y de forma independiente.
También es un procesador SOC (Sistem On Chip), tiene una CPU,
de tal manera que puede trabajar sin estar conectado al Arduino, ya que podemos cargar el código de un programa en el mismo módulo.
Sus terminales GPIO 0 y GPIO 2, se utilizan como terminales de entrada o salidas para recibir información de un sensor, un interruptor, un pulsador,... y dar información a un LED, relé,...
Future Technology Devices International (FTDI) es una empresa escocesa que fabrica unos chips que comunican el puerto USB a interfaces populares como RS232, RS422, RS485, I2C y SPI.
El FTDI232RL comunicará el puerto USB del ordenador con el puerto serie (TX-RX) del módulo ESP8266. De esta manera podremos programar el módulo ESP8266 sin utilizar el Arduino y una vez programado funcionará independentemente de otro módulo.
Para programar el ESP8266 no hace falta este elemento, aunque en muchos sitios web lo utilizan. Nosotros vamos a grabar programas en el ESP8266 con el Arduino UNO.
Para programarlo se suele utilizar el IDE del Arduino (pero sin Arduino).
2.- Pero bueno... todavía no hemos recibido nuestro FTDI así que vamos a cargar con el Arduino un programa en el ESP8266 para que trabaje de forma independiente.
Repito, como no tenemos el FTDI vamos a utilizar el Arduino para cargar el programa en el ESP8266
Aclaro, vamos a utilizar el Arduino y su IDE 1.6.7 para cargar un programa en el ESP8266. Una vez que esté cargado, quitamos el Arduino y el ESP8266 contendrá el programa.
- Vamos a instalar en nuestro ordenador un IDE 1.6.X, en mi caso instalo el IDE1.6.7
- Una vez instalado vamos a Archivos / Preferencias
y pegamos esta dirección en Gestor de URLs Adicionales de Tarjetas:
http://arduino.esp8266.com/package_esp8266com_index.json
- Luego vamos a Herramientas / Placa: Arduino / Gestor de tarjetas...
- Saldrá una ventana vamos a...
esp8266 by ESP8266 Community, pulsamos, se pone de color gris y luego pulsamos el botón de Instalar.
Esto es una comunidad que ha desarrollado un software para programar el ESP8266 con el IDE de Arduino y utilizando los comandos que utilizamos con el Arduino.
Cuando termine la instalación volvemos a Herramientas / Placa y veremos que se ha instalado paquetes de ESP8266.
Marcamos en Generic ESP8266Module
3.- Grabación del programa Blink en el ESP8200
- Realizamos esta conexión. Es mejor alimentar al módulo con la tensión de 3,3 V del Arduino como muestro en el dibujo.
Arduino |
Módulo ESP8266 |
TX |
TX |
3,3 V |
CH_PD |
3,3 V |
Vcc |
GND |
GND |
GPIO 0 |
GND |
RX |
RX |
Suponemos que tenemos el firmware v0.9.2.4 AT Firmware-ESPFIX.bin.
Si no lo tienes lo puedes instalar según hemos visto en un tutorial anterior.
No te incomodes de volver a instalar el firmware, es muy sencillo, baja el programa que he puesto en la página anterior: ESP8266_flasher.zip
BareMinimum |
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
} |
Carga el programa BareMinimun. No olvides de conectar el GPIO 0 a GND. Alimenta al modulo con los 3,3 V del Arduino.
Carga el v0.9.2.4 AT Firmware-ESPFIX.bin. Mediante el Serial Monitor establece la velocidad a:
AT+CIOBAUD=9600
---------------------
Continuamos.
Deja la conexión como está arriba, es decir el GPIO 0 conectado a GND, no lo quites.
Copia este progama en el IDE del Arduino que estamos utilizando.
Recuerda que el IDE está configurado en Generic ESP8266Module
Blink |
void setup() {
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
} |
- Importante: quita y pon el cable de alimentación del ESP8266, para que se reinicie. Esto es importante quita y pon varias veces hasta que funcione.
- Pulsa el icono de Subir el programa, saldrá esto...
- El proceso de compilación y subida en lento y requiere mucha trabajo con el disco duro.
- Durante la carga parpadea el LED azul del módulo, cuando acaba la subida el LED se apaga.
- Ya tenemos el programa Blink en el ESP8266.
4.- Probamos el programa Blink instalado en el ESP8266
- Conectamos un LED con su resistencia limitadora de 270 al terminal GPIO 2 del módulo. Alimentamos al módulo con 3,3 V.
- NO es necesario conectar TX ni RX.
- El programa Blink que hemos cargado en el módulo comenzará a funcionar.
- El módulo es independiente, tiene un procesador interno con el programa grabado.
- Si no tienes módulo de alimentación, puedes conectarlo a 3,3 V del Arduino para ver como funciona, pero ya sabes que el Arduino solo nos ha servido para cargar el programa en el ESP8266, luego ya no hará falta.
El módulo ESP8266 ESP-01, solo tiene dos terminals GPIO 0 (que utilizamos para cargar el firmware y el programa) y el GPIO 2, que podemos utilizar como terminal de entrada o salida, sin embargo otras versiones tienen más GPIO con lo cual disponemos de más entradas o salidas.
------------------------------------------------
5.- Con dos LED
- También me ha cargado y funcionado con dos LED. Un LED irá al GPIO 0 y el otro al GPIO 2, observa el código.
- GPIO 0 y GPIO 2 son entradas o salidas digitales. El modulo ESP8266 - ESP01 solo tiene estas dos, pero hay otros módulos como el ESP8266 - ESP12 que tienes varios terminales de entrada/salida digitales y además convertidor AntógicoDigital. Se aconseja la compra del ESP8266 - ESP12E.
- El GPIO 0 debe estar a GND mientras se carga el programa, luego lo quitamos del GND y lo conectamos a su diodo.
- He tenido que quitar y poner varias veces la alimentación de 3,3 V, pero al final ha cargado correctamente.
Blink_2 |
void setup() {
pinMode(0, OUTPUT);
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(0, LOW);
digitalWrite(2, HIGH);
delay(500);
digitalWrite(0, HIGH);
digitalWrite(2, LOW);
delay(500);
} |
- Los terminales GPIO son digitales, no se pueden utilizar como analógico.
- Fijate que el GPIO 0 es como el pin 0 del Arduino y el GPIO 2 como el pin 2 del Arduino.
________________________________
|