Você está na página 1de 27

O que um ESP8266 ?

O ESP8266 uma plaquinha (24mmx16mm) quem contem um Microcontrolador de 32


Bits com interface WIFI e um chip de memria Flash. Somente isso. Essa plaquinha
pode ser usada para vrias aplicaes como: automao residencial, Plug de energia
inteligente, Rede de sensores remotos, Controle remoto Wireless, Cmera de acesso via
rede, e muitas outras com o uso do WIFI.
O ESP8266 fabricado pela Espressif Systems e possui um SoC Wi-Fi integrado com
um chip Tensilica Xtensa LX106; tambm possvel usando o firmware open-source
NodeMCU, criar aplicaes IoT com scripts em Lua.
O microcontrolador ES8266 tem as seguintes caractersticas:
- Processador RISC integrado com memria integrada e suporte memria externa,
- Suporte para rede WIFI 802.11 b/g/n,
- Protocolo TC/IP integrado,
- Interfaces SDIO 2.0, SPI, UART e I2S integradas,
- Engines de segurana integradas: WEP, TKIP, AES
- Sensor de temperatura integrado,

Quais so as vantagens em usar um ESP8266 ?


- O principal facilidade do ESP8266 que ele j tem um chip que permite a
comunicao WIFI
- E claro, ele bem barato > mais barato que o Arduino.
- Tem um consumo de energia bem baixo - aproximadamente 50 mA (dependendo da
potncia do radio, pode chegar a 170mA). http://bbs.espressif.com/viewtopic.php?t=133
Quais so as desvantagens?
- No estudei ainda como program-lo, mas j percebi que no to simples assim,
- Alm disso, precisar montar um circuito com regulador de tenso e usar uma
Interface serial USB, pelo menos na primeira vez,
- Os nveis de tenso da interface do ESP8266 so entre 3,3V e 0V . Como a grande
maioria de mdulos funciona com 5V, para us-los voc precisar usar um conversor de
nveis lgicos, seno poder queimar o seu ESP.

Alcance do sinal de RF :
Eu comprei dois mdulos ESP8266 - o modelo 12E e o modelo ESP-201.
E a primeira pergunta que eu fiz para o vendedor, foi sobre o alcance do sinal de RF.
Ele me disse que o alcance do 12E era limitado, mas que o ESP-201 que j vem com
uma mini antena externa, tinha o alcance sobre toda a casa dele.

Pesquisando na WEB, encontrei um vdeo sobre testes de alcance do sinal de RF do


ESP8266 e fiquei bem impressionado. Os testes parecem ser confiveis.
O rapaz testou com um roteador conectado ao laptop dele.
O teste foi usando o ping no IP do ESP8266.
Com Roteador TP Link WR-841N :
ESP8266 com antena externa adaptada = 479 metros
ESP8266 com a antena PCB (original)

= 366 metros

Com Roteador UBIQUITI M2 - antena prato


ESP8266 com antena externa adaptada = 4,26 km
ESP8266 com a antena PCB (original)

= 3,71 km

Alimentao e consumo de energia


O chip ESP8266EX que o microcontrolador do mdulo ESP8266 deve ser alimentado
com uma tenso de 3,3V. A tenso mnima de 3,0V e a mxima de 3,6V. Por isso toda
interface que for conectada no mdulo no pode ultrapassar o nvel de tenso de 3,3V isso muito importante pois, por exemplo, se conectar uma interface de 5V voc
queimar o seu chip !
Segundo as especificaes do fabricante, a corrente mxima que um pino de sada
(output) pode fornecer de 12mA.Como precao sugiro no ultrapassar os 10 mA. Isto
, se ligar um Led (dependendo do consumo do Led), poder danificar o chip tambm.
Muito cuidado com o uso dos pinos de saida e entrada (GPIO_XX).
Esses so os pinos de alimentao do Chip ESP8266EX.
CHIP ESP8266EX

ESP8266EX pinagem

Nos mdulos ESP8266, esses pinos j esto devidamente conectados.


1) VDDA - Alimentao do circuito analgico +3,3V
3) VDDP3 - Alimentao do Amplificador de potncia de RF +3,3V (esses pinos 3 e 4
so soldados juntos)
4) VDDP3 - Alimentao do Amplificador de potncia de RF +3,3V
5) VDD_RTC - o datasheet informa = sem conexo
6) TOUT - Pino de medio do conversor analgico digital ADC - mximo 3,3V
11) VDDPST - fonte de alimentao do Digital I/O (1,8V~3,3V)
17) VDDPST - fonte de alimentao do Digital I/O (1,8V~3,3V)
29) VDDD - Alimentao do circuito analgico +3,3V (deve ser Digital e no
analgico)
30) VDDA - Alimentao do circuito analgico +3,3V
31) RES12K - conexo de um resistor de 12K ohms ao terra
33) GND - terra
Essa tabela copiada do Datasheet do ESP8266EX demonstra o consumo de corrente nos
vrios modos de operao:

1) Modem-Sleep : nesse modo, o modem WIFI desligado, mas a conexo WIFI


mantida sem a transmisso de dados.
2) Light-sleep : A CPU pode estar suspensa em aplicaes como Switch de WIFI. Sem
a transmisso de dados, o modem WIFI pode ser desligado e a CPU suspendida para
economizar energia.
3) Deep-Sleep : No precisa de conexo WIFI para ser mantido. Pode ser usado em
aplicaes com grande intervalo de tempo entre as transmisses.
Pinos e definies :
Como todo microcontrolador ou microprocessador atual, o ESP8266 tem inmeros
pinos e cada pino pode ter mais de uma funo. Isso torna a programao para seu uso,
um pouco mais complexa. Mas ao mesmo tempo, o mdulo torna-se verstil. Se o chip

for programado para uma aplicao, mudando o cdigo interno (firmware) o mesmo
poder ser usado para um outro tipo de aplicao bem diferente da anterior.

GPIO - Pino de entrada/sada de uso geral (General Purpose Input/Output)


O chip tem 32 pinos, e os mdulos atuais tem aproximadamente 20 pinos. Por isso,
detalharei somente os pinos disponveis nos principais mdulos.
Como dito anteriormente, o chip ESP8266 tem vrios tipos de interfaces. Mas como o
nmero de pinos limitado, alguns grupos de pinos podem ser usados para diferentes
tipos de interface. Pretendo detalhar as interfaces em tpicos separados, para facilitar a
compreenso.
CHIP_EN (CH_PD / Pino 7 do Chip):
Como o nome j diz, Chip enable, isto ativao do Chip. Para o funcionamento
normal do mdulo, esse pino dever ter um nvel alto (3,3V). Como esse pino j tem
um resistor interno de pull-up, no h necessdade de conectar algum resistor. Para
desligar o chip (power down), conecte esse pino ao terra.
Apesar do Datasheet informar que o pino tem um resistor de pull-up, ao testar o
meu mdulo ESP-201, constatei que o pino CHP_EN estava sempre com zero
Volts. Por isso, para ativar o mdulo, precisei conectar um resistor de 10K ohms
ao +3,3V.
RST (EXT_RSTB / Pino 32 do Chip) :
Esse o pino de Reset do Chip ESP8266EX. Esse pino j tem um resistor interno de
pull-up, por isso, no necessrio conectar algum resistor. Para resetar o chip (reboot) ,
use um nivel baixo - conecte o pino ao terra (um pulso apenas).
XPD (XPD_DCDC / GPIO_16 / Pino 8 do Chip):
Esse pino o nico com um resistor interno de Pull-down. Ele usado para despertar o
Chip de um sono profundo (Deep-Sleep). Para despertar , esse pino dever ser
conectado ao pino RST. Ele dar um reset no Chip para despert-lo.
Depois comentarei os modos de Sonos (sleep mode) do chip.

IO_15 ( GPIO_15 / MTDO / Pino 13 do Chip):


Obedecendo configurao do firmware, para boot da memria Flash durante o reset,
esse pino dever ter o nvel baixo - conectado ao terra. Para o modo de download
atravs da interface serial UART, esse pino tambm dever estar no nvel baixo (zero
Volts).
IO_2 ( GPIO_2 / Pino 14 do Chip):
Obedecendo configurao do firmware, para boot da memria Flash durante o reset,
esse pino dever ter o nvel alto - conecte um resistor de 10K ohms ao +3,3V. Para o
modo de download atravs da interface serial UART, esse pino tambm dever estar no
nvel alto (3,3V).
IO_0 ( GPIO_0 / Pino 15 do Chip): Ateno !
Obedecendo configurao do firmware, para boot da memria Flash durante o reset,
esse pino dever ter o nvel alto - conecte um resistor de 10K ohms ao +3,3V. Mas para
gravar a memria Flash usando o modo de download atravs da interface serial UART,
esse pino dever estar no nvel nvel baixo (zero Volts - conectado ao terra).
ADC ( TOUT / Pino 6 do Chip):
Esse pino de entrada de tenses analgicas. usado pelo conversor analgico/digital
ADC de 10 Bits do Chip. Li no datasheet, que se esse pino estiver conectado um
circuito externo, a faixa de tenso de 0V a 1,0V somente ! Irei pesquisar mais.
Montei uma tabela dos principais pinos dos Mdulos ESP8266.
A primeira coluna PINO corresponde aos pinos do Chip ESP8266.
Na coluna NOME identifiquei todos os pinos de GPIO e mais alguns.
Na coluna MODULO, identifiquei os pinos com os nomes mais usados.
Nas colunas FUNO 1 e FUNO 2, identifiquei os principais usos de cada pino.
Nas colunas ESP8266-XX, marquei quais pinos so usados em cada tipo de mdulo.

Fonte de Tenso para ESP8266


Abaixo segue algumas dicas para tenses de 3.3volts utilizados pelo modulo testado e
aprovado.
Essa a fonte de 3,3V para o modulo ESP8266, usando uma fonte de 5V, um regulador
78D33 e capacitores de 0,33uF e 47uF. (no meu circuito usei um capacitor de 0,22uF,
porque eu no tinha um de 0,33uF).

Outro circuito interessante tambm testado e aprovado o que segue abaixo utilizando
um regulador chamado LM1117T que fornece tipicamente 1A de corrente.

Fonte com VCC = 3,27V esta tima!


importante dizer que a ESP, em picos, utiliza aproximadamente 300mA

Interface Serial
Para fazer atualizao de firmware, fazer alguma alterao de configurao, carregar
algum programa, usar com a Interface IDE Arduino, etc, necessrio fazer a conexo
da interface serial do ESP8266 com o seu PC.
Sabemos que todas as interfaces do ESP8266 usam o nvel de tenso 3,3V.
Grande maioria das interfaces USB Seriais do mercado usam o nvel de tenso 5V. Para
usar essa interface 5V ter que usar um conversor bidirecional de tenso .

Mas voc pode comprar uma interface USB-SERIAL que j use o nvel de 3.3 volts,
como as que utilizam o chip CP2102

Veja como os pinos so interligados. Se a sua interface usa 5V, no faa esse tipo de
ligao direta.
Nesse caso, ser necessrio fazer a converso de tenso.
Interface serial USB CP2102 -------------> ESP8266 (qualquer modelo)
TXD -------------------------> RXD
RXD -------------------------> TXD
GND -------------------------> GND

Aqui voc poder encontrar os drivers para essa interface (CP2102):


Instale os drivers primeiro, e depois conecte a interface na USB.
http://www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspx
Estou usando a minha interface USB no Windows 8.1 sem problemas.
Veja ela configurada na COM12 usando o Gerenciador de Dispositivos do Windows:

A velocidade da interface serial do meu mdulo ESP8266 ESP201 de 115200 bps.


Para acessar a serial, estou usando o programa PUTTY (grtis) :
http://www.putty.org/
Na janela do PUTTY, selecione SERIAL, digite a COM que esta usando (no meu caso
COM12) e a velocidade de comunicao 115200 bps. Pode salvar essa configurao
como ESP8266.

Clique em OPEN e ter uma janela aberta para a serial do ESP8266 ! Pronta para aceitar
comandos AT.

Se a sua interface USB Serial usa nveis de tenso de 5 Volts, sugiro que possa usar essa
adaptao para nvel de tenso de 3,3 Volts. Obs: esse circuito no foi testado por mim.
O modulo nesse diagrama o ESP8266-01, mas pode usar esse circuito para qualquer
modelo de ESP8266.
A sada TXD do mdulo ESP8266 gera sinal com nivel 3,3 V. A entrada RXD da
interface USB serial aceita esse nvel.
J a entrada RXD do mdulo ESP8266, no suporta um nvel de tenso de 5V, por isso
esta sendo usado um diodo Zener de 3,3V e um resistor de 100 ohms, para limitar o
nvel at 3,3V.
No se esquea de interligar o terra (GND) do ESP8266 com o terra da interface USB
Serial.

Interface Serial 5V - testado e aprovado OK


Revendo as especificaes do Mdulo ESP8266, constatei que todas as entradas Digital
IO so protegidas contra sobre-tenso e tenso esttica. Portanto no precisam de
proteo para a tenso de 5V ! Mas para o funcionamento correto do pino RXD, este
precisa de um redutor de nvel de tenso de 5V para 3,3V. No meu diagrama, o nvel 1
corresponde a 2,5V que um nvel aceitvel e bem mais seguro.
J testei essa interface com Arduino 5V e funcionou OK !
Esse o meu diagrama para Interface Serial do ESP8266 com um outro dipositivo
que usa 5V: ( testado e aprovado ! ) Anexei o diagrama.

Essas so as especificaes dos Pinos Digitais de Entrada e Sada do ESP8266:

MODOS DE LIGAO DO ESP8266

Alm do ESP8266, voc precisa de um conversor usb/uart e uma fonte de alimentao


de 3.3V, como j vimos anteriormente.
As ligaes necessrias podem ser vistas na imagem abaixo.

H basicamente trs mdulos de operao: atualizao de firmware, upload de novos


programas e modo de operao.
1 Para atualizao de firmware, todas as ligaes apresentadas na imagem acima
devem ser utilizadas, Antes de atualizar o firmware, lembre-se que o
pino GPIO_0 dever ser conectado em LOW, ou seja, dever ser aterrado antes de ligar
o modulo, desta forma o modulo entra em modo de atualizao.
2 Para upload de novos programas, apenas as ligaes em preto e vermelho.
3 Para o modo de operao, necessrio apenas as ligaes em preto, Outro ponto
importante que o pino CH_PD (Boot mode) precisa estar conectado ao 3.3v para que o
mdulo WiFi seja habilitado. Os demais pinos RESET, GPIO0 e GPIO2 no precisam
estar conectados.

Outra possvel ligao para o modo operao a que apresento a seguir.


Os pinos CH_PD (ou ENA) e RST devem ter um resistor cada de 10K conectado no
3,3V !
Veja o diagrama para montagem do ESP8266-12E. A diferena que o seu ESP826601 tem menos pinos !

Pode usar resistor de 1K ou maior para conectar os pinos CH_PD e RST no VCC, no
tem problema. Tem que ser um resistor para o CH_PD e outro para o RST.
Se quiser dar um reset na placa aperte o boto (RST), assim o pino RST aterrado por
um pequeno perodo de tempo.

Abaixo seguem as pinagens dos mdulos mais utilizados no momento, os ESP-01, 03, 07
e 12.

Pinagem do ESP-01

Onde:
1. GND
2. GPIO2
3. GPIO0
4. RX
5. TX
6. CH_PD
7. RESET
8. VCC

Pinagem do ESP-03

O pino ANTENA para aqueles que querem colocar uma antena externa ao mdulo ESP03.
A pinagem do ESP-07 idntica ao ESP-12. O que difere os mdulos a parte da antena,
que no ESP-07 de cermica e possui o conector para antena externa. No ESP-12 a
antena de trilha.

Pinagem do ESP-07 e ESP-12

Importante: Para os mdulos com GPIO15, devemos aterrar o pino para que o ESP inicie
com a leitura da memria flash externa. Caso no seja aterrado, o mdulo ir tentar iniciar
de outra forma e no ir funcionar corretamente.

Ligando o mdulo ESP-01 ao FTDI


CUIDADO!!! Os mdulos ESP8266 trabalham com a tenso de 3.3v e consomem cerca de
300mA, ou seja, dependendo da capacidade do regulador, o mdulo pode no funcionar
adequadamente.
Abaixo um modelo de ligao para conversores USB-Serial que no possuem a opo de
seleo de 3.3v ou 5v.

Modelo de ligao do ESP e FTDI

Note que o divisor resistivo, para baixar de 5v para, aproximadamente 3.3v s


necessrio no TX do adaptador, que ser conectado no RX do ESP. O TX do ESP no
precisa do conversor, j que o FTDI aceita os 3.3v do ESP.

Dica: Use um capacitor de 10uF na linha de


alimentao 3.3v do ESP para segurar flutuaes nos
picos.
Outro ponto importante sempre usar um resistor de 10kR para pull-up e pull-down.

Mapa das GPIOs e funes secundrias


Abaixo, segue a tabela com o mapa das GPIOs e as funes de cada uma:

Mapa das GPIOs

CUIDADO!!! As portas GPIOs NO so tolerantes


a 5V! Ao ligar em algum sensor ou micro
controlador com tenso de 5V, pode at
funcionar por um momento, mas ir danificar ou
queimar o mdulo aps um tempo.
Qualquer GPIO, com exceo da GPIO16, pode ser utilizada com PWM.
As GPIOs fornecem uma corrente mxima de 12mA. Se precisar de mais corrente ter
que adicionar um circuito com transistor, MOSFET ou outro componente para servir de
driver de corrente.
Abaixo seguem alguns exemplos de circuitos de botes com modos pull-up e modo pulldown:
Circuito de pull-up, quando o estado original LOW (aterrado) e quando acionado vai
para HIGH (em 3.3v).

Circuito de pull-up

Circuito de pull-down, quando o estado original HIGH (3.3v) e quando acionado vai
para LOW (aterrado).

Circuito de pull-down

Conversor Analogico-Digital (ADC)


O ESP possui um pino, o TOUT, que um conversor analgico-digital de 10bits de
resoluo, o que significa que os valores da converso variam de 0 a 1023.
O ADC do ESP, l tenses que variam de 0 a 1v, o que significa que muito provavelmente
um divisor resistivo ser necessrio para chegar a essa tenso.

UART (Universal Asynchronous Receiver Transmitter)


Existem 2 UART no ESP, UART0 e UART1. Teoricamente, a velocidade mxima que a
UART pode atingir de aproximadamente 4,5Mbps).
Por padro, a UART0 exibe algumas informaes no momento do BOOT, ento algum
lixo pode aparecer no terminal neste momento.
Nos mdulos comerciais, apenas o TX da UART1 est disponibilizado, na GPIO2, que
comumente utilizado para fins de DEBUG.

SPI (Serial Peripheral Interface)


O ESP disponibiliza uma SPI que pode chegar a 80MHz. As GPIOs utilizadas para SPI
esto listadas na tabela com o mapa das GPIOs.

I2C (Inter-integrated Circuit Interface)


O ESP tambm disponibiliza uma I2C nos pinos GPIO14 (SCL) e GPIO2 (SDA) podendo
atingir 100kHz.

FONTES: http://pedrominatel.com.br/eletronica/esp8266-o-guia-basico-de-hardware/
http://labdegaragem.com/forum/topics/conhecendo-oesp8266?commentId=6223006%3AComment%3A491976

ESP8266 com a IDE Arduino


O ambiente de desenvolvimento NodeMcu/LUA, no compila a sua aplicao mas sim
interpreta um script durante a execuo, isto causa uma certa sobre carga de memria,
algumas solicitaes HTTP GET simplesmente param de responder.
Enviar comandos AT exige no mnimo um microcontrolador para o envio de tais
comandos.
O EspressIf SDK oferece suporte nativo para o ESP8266, seu cdigo desenvolvido em
linguagem C e compilado; Necessita do desenvolvedor uma expertise maior nesta
linguagem.
Porm podemos utilizar um ambiente mais amigvel como o Arduino IDE 1.6.5.
Veja como configurar o ambiente para programar o ESP8266 utilizando a IDE do
Arduino.
1 Instale a verso da IDE arduino-1.6.5-r5-windows.exe, voc pode baixa-la aqui:
https://www.arduino.cc/en/Main/OldSoftwareReleases#previous
2 Instalada a IDE v a arquivos e preferncias

3 Cole o endereo abaixo em Additional Boards Manager URLs: e clique em OK.


http://arduino.esp8266.com/stable/package_esp8266com_index.json

4 V em ferramentas, Placa e Boards Manager, como mostrado na foto abaixo

5 Procure na janela do Board Manager as arquivos da placa ESP8266

No meu caso acima j est instalado, porm ir aparecer um boto para voc instal-lo.
6 Aps concludo a instalao v em Placa e escolha Generic ESP8266Module,
como mostrado abaixo.

7 Aps escolher o modelo genrico, no mexa em quase mais nada, apenas altere a
memria para 1M (512K SPIFFS).

Escolha a COM onde ser conectada

Escolha o gravador AVRISP mkII

8 aps tudo pronto pegue um arquivo para testar em: Exemplo, 01.Basics, Blink
Os arquivos para arduino tm extenso. INO

Abaixo vemos o tipo de ligao que o ESP8266 ter que ter.

Você também pode gostar