0% encontró este documento útil (0 votos)
129 vistas23 páginas

Esp 8266

Este documento proporciona instrucciones para configurar un módulo ESP01 basado en ESP8266 para conectarse a una red WiFi. Explica cómo alimentar el ESP01, las opciones disponibles para la alimentación, y cómo conectarlo a una fuente de alimentación externa para proporcionar los 3,3V necesarios. También describe brevemente los pines del ESP01 y diferentes tipos de firmware que se pueden cargar.

Cargado por

Otrebor Rapl
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
129 vistas23 páginas

Esp 8266

Este documento proporciona instrucciones para configurar un módulo ESP01 basado en ESP8266 para conectarse a una red WiFi. Explica cómo alimentar el ESP01, las opciones disponibles para la alimentación, y cómo conectarlo a una fuente de alimentación externa para proporcionar los 3,3V necesarios. También describe brevemente los pines del ESP01 y diferentes tipos de firmware que se pueden cargar.

Cargado por

Otrebor Rapl
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 23

Gua para congurar un ESP01, el mdulo WiFi basado en

ESP8266
programarfacil.com/

Desde que irrumpi el ESP8266 en el mercado, han surgido muchas variantes de este microcontrolador. En el
podcast puedes escuchar el captulo que dedicamos al ESP8266 donde hablamos de las diferentes alternativas.
Quizs el ms famoso entre los Makers sea el ESP01 debido a que fue el primero y a su bajo coste . De este
precisamente voy a hablarte hoy en este artculo.

La primera vez que compr un Arduino UNO, qued fascinado al encender un simple LED. Tras varios aos
haciendo proyectos, me entr la curiosidad y empec a investigar las posibilidades que nos ofrece Arduino
conectado a una red o Internet.

Rpidamente me compr un Shield Ethernet y la verdad, funciona muy bien. La gran pega es que tiene que
tener una toma de red cerca para que se conecte. Una alternativa para evitar esto es comprar un Shield WiFi,
pero el precio tira para atrs. Cuesta 4 veces ms que la propia placa de Arduino, no tiene sentido.

Indice de contenidos

De repente, descubr que una empresa de China haba sacado un mdulo WiFi de muy bajo coste y que
permita conectarse a un Arduino UNO a travs de l. Este mdulo era el ESP-01 y la empresa Espressif.
Cuando lo compr estaba en una etapa muy temprana sin apenas documentacin y muy complicado de
programar.

Tras unas semanas probando y congurando lo met en un cajn donde ha permanecido mucho tiempo. Su
dicultad a la hora de utilizarlo con Arduino era mxima y no mereca la pena.

Con el tiempo ha ido evolucionando y en la actualidad se puede utilizar como un mdulo autnomo sin
necesidad de utilizarlo con Arduino es decir, como si fuera un Arduino. Hay que recordar que el ESP8266 es un
microcontrolador y como tal, puede hacer las mismas funciones que un Arduino UNO. Eso si, tiene sus
limitaciones.

Firmware para el ESP01 1/23


Firmware para el ESP01
Empiezo explicando un tema que debemos tener muy claro ya que hay mucha confusin al respecto en Internet.
El rmware es el software de bajo nivel que nos va a permitir controlar los circuitos elctricos.

Por defecto, en el ESP01 viene instalado la versin con la que podemos comunicar con el ESP8266
mediante comandos AT a travs del puerto serie. No voy a entrar muy en detalle que son estos comandos, lo
nico es decir que fue creado por la compaa Hayes y se convirti en un estndar para la conguracin y
parametrizacin de modems.

Este tipo de comunicacin nos permitir hacer un puente entre Arduino y el ESP8266. De esta manera
conseguimos que un Arduino UNO se conecte a una red WiFi. Puedes obtenerlo en la web ocial de Espressif.

Pero si lo que queremos es cargar nuestro propio


programa como si de un Arduino se tratara, solo
tenemos que crear el sketch y cargarlo. Esto
sobrescribir el rmware de comandos AT que
viene por defecto en el ESP01. Todo esto lo
veremos ms adelante.

Existen tambin otros rmwares que funcionan


como interpretes. Hacen precisamente esa funcin,
interpretar un lenguaje de alto nivel y lo traducen
para poder controlar el microcontrolador ESP8266.
Hay interpretes para microPython, Espruino (js) o
ESPBasic.

Una vez que tenemos claro qu es un rmware,


ya podemos empezar a programar nuestro ESP01.
Primero debemos alimentar y saber cmo podemos
programar nuestro ESP01 basado en el ESP8266.

ESP01 la placa microcontroladora


Antes de nada, vamos a conocer el ESP01. En la siguiente imagen puedes ver las partes ms importantes.

2/23
ESP8266 es el microcontrolador del mdulo ESP01.
Pines donde conectaremos la alimentacin, sensores y transmisin de programa.
BG25Q80A es la memoria Flash donde residen los programas o sketchs. El ESP8266 no dispone de este
tipo de memorias y por eso es un chip a parte.
LEDs que nos informan de si est encendido o no y de la transmisin de datos (Tx y Rx).
La antena WiFi para conectarse a una red o a Internet.

Pines del ESP01, una de sus limitaciones


El ESP01 tiene 8 pines, cada uno de ellos est pensado para una tarea concreta.

1. GND es la toma de tierra.


2. GPIO2 es una entrada salida de propsito general. Es el pin digital nmero 2.
3. GPIO0 es una entrada salida de propsito general. Es el pin digital nmero 0.
4. RXD es el pin por donde se van a recibir los datos del puerto serie. Trabaja a 3,3 V. Tambin se puede
utilizar como pin digital y el nmero sera el nmero 3.
5. TXD es el pin por donde se van a transmitir los datos del puerto serie. Trabaja a 3,3 V. Tambin se puede
utilizar como pin digital y el nmero sera el nmero 1.
6. CH_PD pin para apagar y encender el ESP01. Si lo ponemos a 0 V (LOW) se apaga y a 5 V (HIGH) se
enciende.
7. RESET pin para resetear el ESP01. Si lo ponemos a 0 V (LOW) se resetea.
8. Vcc es por donde alimentamos el ESP01. Admite 3,3 V de alimentacin y un mximo de 3,6 V. La
intensidad debe ser mayor de 200 mA.

Como puedes comprobar, no tenemos ningn pin analgico y solo 4 pines digitales GPIO0, GPIO1, RXD y
TXD. Estos dos ltimos funcionan como pines I/O siempre y cuando el programa que carguemos a la placa no
utilice esta caracterstica por ejemplo, para mostrar informacin a travs del monitor serie.

An as, el ESP01 soporta la comunicacin I2C. Si nuestros sensores se comunican mediante este protocolo no
tendremos problema y con solo dos pines de nuestro ESP01 , podremos comunicar con decenas de

3/23
sensores.

Por ltimo, con respecto a los pines digitales o GPIO , es importante recalcar que funcionan a 3,3 V es decir,
un estado alto (HIGH) ser 3,3 V. Los pines RXD y TXD cuando funcionan para comunicar mediante puerto serie
tambin utilizan este voltaje. Luego veremos como sortear esto si lo conectamos a un Arduino UNO para
programarlo.

Opciones para alimentar el ESP01


Antes de hacer nada, tenemos que alimentar el ESP01. Admite una tensin de 3,3 V con un mximo de 3,6 V.
Se recomienda una intensidad mayor de 200 mA. Esto es debido a que cuando est transmitiendo a travs de
la WiFi puede alcanzar picos de 200 mA.

Existen diferentes posibilidades para alimentar el ESP01. Vamos a ver las ventajas e inconvenientes que
presentan cada una de estas posibilidades.

Opcin 1: a travs de un Arduino UNO

Arduino UNO tiene dos pines de alimentacin dentro del bloque destinado a alimentar sensores y actuadores.
Puede suministrar 5 V y 3,3 V. Seguramente ests pensando alimentar el ESP01 con el pin de 3,3 V que est
en el rango de operacin del ESP8266.

Efectivamente estamos dentro del rango de voltaje. El inconveniente es que este pin solo suministra un
mximo de 50 mA. Esto supone que en ocasiones puede quedarse corto, sobre todo cuando estamos
haciendo un uso intensivo de la WiFi.

4/23
Por lo tanto, alimentar un ESP01 basado en el ESP8266 con un Arduino UNO no es una buena opcin .
Puedes hacerlo y probablemente te funcionar en muchos casos, pero llegar un punto en que deje de
funcionar.

Opcin 2: a travs de un adaptador USB-Serie

Quizs me est adelantando a lo que vendr despus, cmo programar un ESP01. Gracias a un adaptador
USB-Serie o tambin llamados TTL, podemos programar un ESP8266 o podemos alimentarlo.

En el mercado existen multitud de adaptadores de


este tipo, lo importante es conocer la corriente que
suministra cada uno de ellos. Lo tpico es que no
lleguen a lo mnimo requerido por el ESP01 as que
no es una buena opcin.

La intensidad que suministran estos componentes


va desde los 50 mA a los 120 mA.

Opcin 3: fuente de alimentacin de 3,3 V


y5V

Quizs sea la mejor opcin que tengamos para


alimentar un ESP8266 sea una fuente de
alimentacin de este estilo. Este tipo de
componentes suministra 3,3 V o 5 V y esto es una
ventaja.

Muchos de los sensores y componentes que vamos a utilizar necesitan 5 V. Por ejemplo el sensor de
temperatura LM35 o el sensor de ultrasonidos.

Existen muchas marcas y modelos en el mercado. La que yo voy a utilizar es la MB102 de YwRobot. Casi
todas suministran entre 700 y 800 mA, ms que suciente para alimentar el ESP01 y los sensores.

Conectando el ESP01 a la fuente de alimentacin 5/23


Conectando el ESP01 a la fuente de alimentacin
Como hemos visto anteriormente, existen diferentes maneras de alimentar el ESP8266. En este artculo
utilizaremos la fuente de alimentacin de 3,3 V y 5 V. Hay diferentes marcas y modelos y prcticamente todos
funcionan de la misma forma.

Lo primero es ver cmo congurar la fuente para que nos de 3,3 V, lo que necesitamos para alimentar el ESP01.

Fuente de alimentacin MB102

Este tipo de fuentes de alimentacin para electrnica tiene la particularidad que suministran 3,3 V y/o 5 V.
Tiene dos salidas de potencia colocadas en los extremos y dependiendo de cmo coloquemos el jumper
suministrar un voltaje u otro.

Lo primero es colocar la placa en la protoboard. Debemos encajar 8 pines, 4 por cada lnea de potencia.

Lo colocamos en la protoboard en las las donde


pone + y -.

6/23
Para elegir el voltaje tenemos unos jumpers qie segn los coloquemos, suministrar 3,3 V y 5 V. Lo ms
prctico es tener una lnea con 3,3 V y otra con 5 V.

7/23
Conectando el ESP01 a la protoboard

Ya tenemos todo listo y podemos alimentar el ESP01 con la fuente de alimentacin. Utilizaremos la lnea que
est suministrando 3,3 V. Debes tener un cable macho-hembra o un cable macho-macho y otro hembra-
hembra.

Los pines son el 1 para GND y el 8 para Vcc. El esquema sera el siguiente.

8/23
Cmo programar el ESP01
Una vez que tenemos alimentado el ESP01 vamos a empezar con la programacin. En este apartado tambin
hay diferentes opciones, las veremos y as podrs elegir la que ms te guste :).

Lo primero, para cargar el programa lo haremos a travs del puerto serie. Esto supone que utilizaremos los
pines RX y TX para transmitir los datos a la memoria Flash, donde se almacenan el sketch.

Normalmente cuando trabajamos con Arduino no debemos decir si vamos a cargar un programa o debe
ejecutarlo. Todo esto lo hace de forma interna y automtica.

Sin embargo, con el ESP01 esto no sucede y debemos ser nosotros de forma manual los que pongamos
los diferentes modos. Existen dos modos de trabajo o ejecucin y se conguran a travs de los puertos
GPIO0 y GPIO2. Los modos son modo Flash y modo UART.

Modo UART, carga de programa en la memoria del ESP01

Cuando queremos cargar un programa en el ESP01 debemos poner el pin GPIO0 a nivel bajo (0 V) y el GPIO2
a nivel alto (3,3 V). Te recuerdo que el ESP8266 trabaja con niveles lgicos de 3,3 V.

Modo Flash, funcionamiento normal del ESP8266

Una vez que lo carguemos hay que ejecutarlo. Esto lo hacemos poniendo el GPIO0 y el GPIO2 a nivel alto (3,3
V).

En la siguiente tabla puedes ver un resumen de los dos modos y los valores de los pines.

9/23
GPIO0 GPIO2

Modo UART (carga programa) 0 1

Modo Flash (ejecuta programa) 1 1

En este punto te estars preguntando, si utilizamos RX y TX para cargar el programa en la placa y GPIO0 y
GPIO2 para indicar el modo de trabajo cmo conectamos los sensores y actuadores al ESP-01?

Hay que tener en cuenta dos cosas:

RX y TX los utilizamos para cargar el programa. Una vez nalizada la carga los podemos utilizar como
pines de entrada y salida digitales.
Los modos de trabajo se indican cuando se resetea o reinicia la placa a travs de los pines 0 y 2. Una
vez que tengamos el modo de trabajo funcionando de manera normal, ya podemos conectar cualquier
componente a estos pines.

Preparando el entorno de desarrollo ocial de Arduino

Antes de meternos de lleno en preparar el circuito para programar el ESP01, vamos a preparar el entorno de
desarollo. Para ello utilizaremos el entorno de desarrollo de Arduino. Lo puedes descargar desde aqu.

El lenguaje con el que vamos a programar es el cdigo nativo de Arduino. Seguramente encontremos
diferencias en las libreras, pero son las mnimas. Prcticamente vamos a poder utilizar el 90% de ellas para el
ESP8266.

Paso 1: aadir la URL para placas adicionales

Abre las preferencias que se encuentran en Archvio > Preferencias

10/23
En donde pone Gestor de URLs Adicionales de Tarjetas copia el siguiente enlace:
http://arduino.esp8266.com/stable/package_esp8266com_index.json

11/23
Y haces click en ok.

Paso 2: aadir los drivers del ESP8266

Vete a Herramientas > Placa: Arduino UNO > Gestor de Tarjetas

12/23
En el gestor de tarjetas buscas esp e instalas el ESP8266 by ESP8266 Community

Paso 3: seleccionar la placa Generic ESP8266 module

13/23
Una vez hemos instalado la placa, ya podemos elegir entre los diferentes tipos de ESP que nos ofrecen. Para
utilizar el ESP01 tenemos que seleccionar Generic ESP8266 module.

Programando el ESP01 desde la placa de Arduino

Vamos a comenzar programando el ESP01 desde la placa de Arduino. Tememos dos inconvenientes a la hora
de utilizar este mtodo. Por un lado la alimentacin, ya hemos visto que no suministra los 200 mA
necesarios, y por otro lado el voltaje de operacin, Arduino UNO funciona con 5 V y esto tambin incluye a
los pines RX y TX.

Con estas dos premisas necesitaremos una fuente de alimentacin, como la que hemos visto antes la MB102, y
hacer un divisor de tensin para bajar el voltaje de los pines RX y TX de Arduino.

Esto ltimo lo hacemos porque necesitamos pasar de 5 V a 3,3 V para evitar daar el ESP01.

Circuito elctrico ESP01 con Arduino

14/23
El TX de Arduino lo conectamos al TX del ESP01
El RX de Arduino lo conectamos a la entrada del divisor de tensin
La salida del divisor de tensin al RX del ESP01
Se hace un puente entre el pin GND y el pin RESET en el Arduino UNO
Conectamos todas las GND entre si

GND de Arduino
GND del ESP01
La tierra del divisor de tensin
GND de la fuente de alimentacin

El pin CH_PD del ESP01 a 3,3 V con una resistencia de 10 k en serie


El pin RESET del ESP01 a 3,3 V.
Para habilitar el modo de programacin UART, conectamos el pin GPIO0 a tierra a travs de una
resistencia de 10 k
Por ltimo quedara el pin GPIO2 que, como esta placa tiene una resistencia pull-up, lo dejamos al aire

Probando el primer programa del ESP01 con Arduino

Ahora ya lo tenemos todo preparado para hacer la primera prueba. Pero antes, tienes que seleccionar el
puerto donde tienes conectado el Arduino UNO. Esto lo haces desde Herramientas > Puerto.

15/23
Una vez lo tengas seleccionado vamos a cargar un ejemplo. Carga el que est en Archivo > Ejemplos >
ESP8266WebServer > HelloWebserver.

Sustituye los valores de ssid por el nombre de tu WiFi y password por la contrasea de tu WiFi.

16/23
Le das a subir programa y esperas a que termine de compilar y subir al ESP8266. Puede tardar un rato.

Abre el monitor serie que se encuentra en Herramientas > Monitor Serie. Asegrate que tienes seleccionado Sin
ajuste de lnea y 115200 baudio.

17/23
Copia la IP que aparece y la pones en un navegador. El resultado que te tiene que dar es el siguiente.

Lo que hemos hecho es crear un servidor web dentro del ESP01 . S, es increble que podamos tener un
servidor que nos cabe en un bolsillo y solo por 2 .

Recomendaciones

Por ltimo y para acabar con el moto de programar un ESP8266 desde un Arduino, te voy a enumerar unas
recomendaciones.

Siempre que terminas de cargar un programa automticamente se ejecuta aunque estemos en modo
UART.
Si reinicias el ESP01 y vuelves a intentar acceder a la pgina web no podrs, est esperando a que
vuelvas a cargar otro programa. Deberas cambiar el modo de ejecucin a modo Flash en el ESP01.
Una vez hayas terminado la lgica, cambia al modo UART para que cuando se reinicie ejecute el
programa automticamente.

Programando el ESP01 con un conversor USB-serie

Ahora vamos con este segundo mtodo que es bastante ms sencillo ya que viene todo integrado dentro del

18/23
propio circuito. Existen multitud de conversores de este tipo llamados tambin convertidor USB a TTL o FTDI .
Prcticamente todos funcionan de la misma forma salvo las caractersticas especiales de cada uno.

Es un convertidor entre protocolos. En este caso se utiliza para convertir los datos estndar USB al puerto
serie y viceversa.

Hay algunos que trabajan a 3,3 V, otros a 5 V y otros pueden trabajar con los dos voltajes, como es mi caso. Yo
tengo el modelo CH340G y tiene un jumper para seleccionar el voltaje con el que quieres trabajar.

Circuito elctrico

Todos tienen los mismos pines de conexin, Vcc, GND, RX y TX. Por lo tanto la conexin se hace igual en
todos los modelos. Como ya hemos visto antes, el ESP01 tiene que ser alimentado con una fuente de
alimentacin dedicada y eso es lo que haremos en este mtodo.

Adems, he incorporado unos pulsadores que nos van a permitir cambiar de modo muy fcilmente. En el
siguiente esquema te muestro un ejemplo.

19/23
Te voy a explicar cmo funciona este circuito viendo cada uno de los pines del ESP01.

Conectamos todas las masas a un mismo punto, la del ESP01, fuente de alimentacin y convertidor USB
serie.
El GPIO2 lo dejamos al are. Debido a que tiene una resistencia pull up, mantendr un estado alto para
ejecutar el modo carga de programa.
El GIPIO2 lo vamos a conectar a tierra a travs de un pulsador. Estamos en el mismo caso que en el pin
anterior. Para poder cargar un programa debemos tener este pin a 0 V pero como tiene una resistencia
pull up, por defecto lo que har ser ejecutar el programa. Vemos los casos:

No se pulsa el pulsador: GPIO0 a 5 V y GPIO2 a 5 V. Modo Flash, ejecuta el programa cargado.


Se pulsa el pulsador: GPIO0 a 0V y GPIO2 a 5 V. Modo UART, a la espera de cargar un
programa. (Pulsar antes de arrancar el ESP01)

El RX del convertidor al TX del ESP01.


El TX del convertidor al RX del ESP01.
El pin CH_PD conectado a la fuente de alimentacin (3,3 V) con una resistencia de 10 k. Esto evita un
exceso de consumo.
El pin RESET lo conectamos a un pulsador con una resistencia pull up.

Cuando no est pulsado, 5 V en la entrada RESET. No se resetea.


Cuando pulsamos, 0 V y conseguimos resetear el ESP01.

El Vcc a los 3,3 V de la fuente de alimentacin.

Este sera el circuito recomendado para poder trabajar de una manera fcil y cmoda. Con los pulsadores
vamos a poder resetear y cambiar del modo el ESP01.
20/23
Programacin del ESP01 con FTDI

La programacin es igual que en el caso de que utilicemos un Arduino UNO. La conguracin del IDE de
Arduino es idntica y la nica precaucin que tenemos que tener es a la hora de seleccionar el puerto.

Como hemos conectado el FTDI a nuestro ordenador, ahora nos aparecer un puerto nuevo dentro del IDE de
Arduino sin nombre. Ese es el que tenemos que seleccionar.

Una vez seleccionado ya puedes cargar el programa de ejemplo que hemos visto anteriormente.

Resumen de cmo congurar el ESP01


Para nalizar y antes de darte los ltimos consejos, te dejo esta infografa donde puedes ver un resumen de las
partes ms importantes de cmo congurar un ESP01 basado en el microcontrolador ESP8266.

21/23
Recomendaciones nales
Para nalizar, te voy a dar unas recomendaciones a modo de resumen que deberas tener en cuenta en todo
momento.

1. Solo se dispone de 512 kB de memoria Flash. Depender del modelo de ESP01 que tengas.

2. El ESP01 dispone de 4 pines accesibles. Aprovecha tambin los pines RX y TX una vez que hayas 22/23
2. El ESP01 dispone de 4 pines accesibles. Aprovecha tambin los pines RX y TX una vez que hayas
cargado el programa.
3. Todos los GPIO funcionan con 3,3 V.
4. No alimentes la placa con ms de 3,6 V, la puedes daar.
5. Intenta utilizar el protocolo I2C para comunicar con los sensores, as ahorrars pines.
6. La corriente necesaria es de unos 200 mA cuando la WiFi est transmitiendo, no alimentes con menos el
ESP01.
7. Si quieres que trabaje como interfaz WiFi de un Arduino, utiliza el Firmware de comandos AT.
8. Existen otro Firmwares para otros lenguajes como Python, JavaScript o Basic.
9. Alimenta la placa con una fuente que suministre 3,3 V y ms de 200 mA.
10. Si cargas los programas desde Arduino, asegrate de utilizar un divisor de tensin para RX y TX. Puedes
daar la placa.
11. Si programas con TTL recuerda que RX del TTL va a TX del ESP01 y viceversa.

Y con esto damos por concluida la gua cmo congurar el ESP01 de principio a n. Ahora depende de ti crear
nuevos proyectos con esta placa basada en el ESP8266.

23/23

También podría gustarte