Conhecendo o Shield WiFi ESP8266 para Arduino

Conhecendo o Shield WiFi ESP8266 para Arduino

Esta placa chegou na MasterWalker Shop por engano, pois havíamos pedido a Wemos D1 R2 e o fornecedor acabou nos entregando este shield. Mesmo ele tendo chegado para nós por engano, decidimos ficar com algumas peças para assim que possível, algum membro da equipe fazer testes com ele e produzir artigos aqui para o blog. Pois bem, eu me habilitei a desvendar esta placa, pois não tínhamos nenhuma documentação sobre ela e nos primeiros testes não conseguimos fazer ela funcionar sozinha e muito menos com o Arduino.

img00_conhecendo_o_shield_wifi_esp8266_para_arduino_esp12e_escudo_ethernet_sem_fio_automacao_residencial_nodemcu

Passado algum tempo desde a última vez que mexi com ela, resolvi pesquisar informações que pudessem me ajudar a fazer progressos (enviei e-mails para o criador da placa, mas foram em vão, pois ele nunca me respondeu). Me deparei com diversas pessoas em diversas partes do mundo fazendo os mesmos questionamentos:

Por onde começar com a placa? Para que serve a DIP Switch de 4 vias? O que cada uma das vias faz? É possível utilizar o shield sozinho? É só acoplar ao Arduino, programar e já funciona? Precisa de adaptador USB serial para utilizar a placa? Como fazer upgrade de firmware?

Levei alguns dias para conseguir as informações necessárias, mas valeu a pena, pois consegui fazer o shield funcionar com Arduino e sozinho também, apesar das informações e documentação sobre ele serem extremamente escassas. Além disso, consegui as respostas para todos estes questionamentos citados acima e muitos outros que eu tinha.

Portanto, acompanha aí, pois tem bastante informação legal sobre este shield nesta postagem.

Shield WiFi ESP8266 (também conhecido como ESP8266 ESP-12E UART Wireless WIFI Shield TTL Converter) foi desenvolvido com a finalidade de facilitar a conexão do Arduino a redes WiFi através do ESP8266 modelo ESP-12E. Geralmente, é necessário montar um circuito com vários componentes e fiação para interligar um ESP8266 ao Arduino, contudo, ao utilizar o Shield WiFi ESP8266 ESP-12E o trabalho se resume apenas em acoplar a placa em cima do Arduino, posicionar as vias da DIP switch de acordo com o modo de funcionamento do shield e programar o Arduino para se conectar a redes WiFi. Além disso, a placa pode ser utilizada sem o Arduino, pois possui toda pinagem do ESP-12E disponível.

Na placa há a informação de que ela foi criada por uma pessoa chamada WangTongze e quem detém os direitos da mesma é a elecshop.ml. Inicialmente o criador da placa tentou buscar recursos para o seu projeto através do Indiegogo (site de financiamento coletivo), mas pelo jeito ele não teve sucesso na arrecadação. Clicando AQUI você pode ver mais informações sobre a campanha que ele fez para arrecadar fundos. Mesmo não tendo sucesso com a campanha, uma empresa (elecshop.ml) se interessou e passou a produzir o shield em grande escala.

Abaixo listei as principais características deste shield.

Características do ESP8266 modelo ESP-12E:

– Arquitetura RISC de 32 bits
– Processador pode operar em 80MHz / 160MHz
– 32Mb de memória flash
– 64kB para instruções
– 96kB para dados
– WiFi nativo padrão 802.11b/g/n
– Opera em modo AP, Station ou AP + Station
– Possui 11 pinos digitais
– Possui 1 pino analógico com resolução de 10 bits
– Pinos digitais, exceto o D0 possuem interrupção, PWM, I2C e one wire
– Programável via USB ou WiFi (OTA)
– Compatível com a IDE do Arduino
– Compatível com módulos e sensores utilizados no Arduino

Características do shield em geral:

– Medidas do Arduino Uno R3 e a pinagem é compatível com Arduino Uno, Mega 2560, Leonardo e derivados.
– Versões menores do Arduino (Nano e Pro Mini, por exemplo) são compatíveis, mas as conexões deverão ser feitas através de jumpers.
– Tensão do Arduino (5V) é utilizada para alimentar o shield.
– Possui regulador de tensão AMS1117 3.3V, logo, a tensão de 5V fornecida pelo Arduino é reduzida para alimentar o shield sem necessidade de alimentação externa.
– Possui conversor de nível lógico embutido, logo, o nível TTL do Arduino (5V) não danifica o ESP8266 que opera com nível TTL 3.3V.
– Possui uma chave DIP de 4 vias que serve para alterar os modos de funcionamento da placa.
– Modos de funcionamento disponíveis: Shield WiFi para Arduino / envio de comandos AT através do Arduino / upgrade de firmware via conversor USB Serial externo / standalone.
– Possui LEDs indicativos (PWR / DFU / AP / STA).
– Por ser em formato de shield, possibilita que outros shields e módulos possam ser inseridos.
– Possui o botão ESP-RST para dar reset no ESP8266.
– O pino ADC do ESP8266 está disponível de duas formas na placa, sendo a primeira em um pino com faixa de leitura de 0 a 1V e a segunda forma na faixa de 0 a 3.3V.

Na imagem abaixo temos em destaque as principais partes do shield:

img01_conhecendo_o_shield_wifi_esp8266_para_arduino_esp12e_escudo_ethernet_sem_fio_automacao_residencial_nodemcu

A (PINOS DIGITAIS): sequência de pinos utilizados pelo Arduino.

B (PINAGEM DO ESP8266): ESP8266-12E e seus respectivos pinos. Na parte de trás da placa há a nomenclatura dos pinos.

C (CONEXÃO DE ADAPTADOR USB SERIAL EXTERNO): sequência de pinos utilizados para conectar o adaptador USB Serial externo para gravação de firmware ou depuração do ESP8266.

D (PINOS DE MANUTENÇÃO DO SHIELD): sequência de 3 pinos identificados como Maintenance Only e que devem ser utilizados para verificação se o regulador de tensão está recebendo e fornecendo as tensões corretamente. NÃO DEVE SER UTILIZADO COMO FONTE DE ALIMENTAÇÃO.

E (CHAVE DIP PARA ALTERAR MODOS DE FUNCIONAMENTO): chave DIP de 4 vias para mudar os modos de funcionamento.

VIA 1 (P1) e VIA 2 (P2): utilizados para conectar o RX (representado por P1) e TX (representado por P2) do ESP8266 aos pinos D0 (RX) e D1 (TX) do Arduino. P1 e P2 na posição OFF inabilitam a conexão de RX do ESP8266  ao TX do Arduino e TX do ESP8266 ao RX do Arduino.

VIA 3 (P3) e VIA 4 (P4): utilizados para habilitar e desabilitar o modo de gravação de firmware para o ESP8266. Para habilitar a gravação / upgrade de firmware no ESP8266, P3 e P4 devem estar na posição ON. Quando P4 estiver na posição ON, o LED DFU irá acender, indicando que o ESP8266 está habilitado para receber o firmware. Para desabilitar o modo de gravação de firmware e colocar o ESP8266 em funcionamento normal, basta colocar P3 e P4 na posição OFF.

OBS: todas as 4 VIAS em posição OFF, indicam que o ESP8266 está operando em modo normal junto ao Arduino.

F (ADC DO ESP8266): pinagem referente ao ADC do ESP8266. Um pino que opera na faixa de 0 a 1V e outro pino que opera na faixa de 0 a 3.3V. Estes pinos só serão utilizados quando estiver utilizando o ESP8266 sozinho (modo standalone).

G (RESET DO ESP8266): botão utilizado para dar reset no ESP8266. Sempre que alterar a posição das vias da chave DIP, você deverá pressionar o botão ESP-RST.

H (PINOS ANALÓGICO E ALIMENTAÇÃO): sequência de pinos utilizados pelo Arduino.

Neste apanhado rápido já dá para saber as funções de cada uma das partes da placa.

Este shield tem uma particularidade nas vias P1 e P2 e esta particularidade, na verdade gera uma grande dúvida nas pessoas que tentam utilizar a placa.

Segundo o criador do Shield WiFi ESP8266, ao conectá-lo ao Arduino apenas 2 pinos serão requisitados. Estes pinos seriam o D0 e D1 (RX e TX do Arduino respectivamente) e além disso, as vias P1 e P2 do shield precisam estar na posição ON para que haja a conexão.

Num dos únicos documentos em chinês que consegui a respeito deste shield, o criador da placa diz:

P1 e P2 são codificadores de bits e são utilizados para determinar se a serial do ESP8266 está ou não conectada a D0 e D1 do Arduino.

Em um outro trecho do documento é mencionado:

Esta placa de expansão mantém a serial do Arduino ocupada, conectando RX do ESP8266 ao TX do Arduino e TX do ESP8266 ao RX do Arduino.

Os pinos D0 (RX) e D1 (TX) do Arduino, correspondem a comunicação serial / USB, logo, estes pinos se mantém ocupados sempre que enviamos código para a placa ou utilizamos o monitor serial. Portanto, se as vias P1 e P2 do shield estiverem na posição ON, o ESP8266 vai estar utilizando D0 e D1 do Arduino e não será possível fazer o envio de códigos ou utilizar a serial, pois ela vai estar ocupada. Além disso, para o envio de comandos AT ao shield, é necessário que o RX do ESP8266 esteja conectado ao RX do Arduino e que o TX do ESP8266 esteja conectado ao ao TX do Arduino. Isto só irá ocorrer se invertemos as conexões conforme mostrado na imagem abaixo.

img05_conhecendo_o_shield_wifi_esp8266_para_arduino_esp12e_escudo_ethernet_sem_fio_automacao_residencial_nodemcu

Veja que dobrei os contatos D0 e D1 do shield, e conectei o D0 do Arduino ao D1 do shield e D1 do Arduino ao D0 do shield. Ao utilizar a conexão desta forma (Arduino sendo utilizado como ponte de conexão), consegui fazer o envio de comandos AT ao ESP8266 e confirmei o que já imaginava.

A forma padrão de funcionamento do shield, exige que seja carregado um código (webserver ou firmware, por exemplo) no shield e que seja carregado um outro código no Arduino para enviar, receber e interpretar os dados vindos através da serial nativa. Mais detalhes sobre esta forma de comunicação podem ser vistos AQUI.

De qualquer forma, esta particularidade do shield não interfere no seu funcionamento, pois geralmente emulamos uma serial em outros pinos digitais do Arduino para que possamos ter a serial nativa à disposição. Além disso, caso seja necessário enviar comandos AT ao shield, podemos conectá-lo ao Arduino através de quatro cabos ou utilizar um conversor USB serial.

Por fim, o shield se mostrou bem estável e facilitou bastante a montagem de circuitos. Fiz testes com Arduino Uno R3 e o Mega 2560 R3.

Agora que você já conhece os detalhes deste shield, recomendo que você leia a postagem Shiald e Shield WiFi ESP8266? Será que tem diferença?, pois é possível encontrar no mercado pelo menos três placas que aparentemente são iguais, mas na verdade estas placas possuem alguns pontos que as diferem, até mesmo na questão de funcionamento com o Arduino através de comunicação pela serial nativa.

Depois de descobrir qual o Shield WiFi ESP8266 é o seu, que tal aprender a fazer upgrade / modificação de firmware nele para começar a colocar em prática alguns projetos?! Acesse nossa postagem Upgrade de Firmware no Shield WiFi ESP8266 para Arduino.

Gostou deste tutorial? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação, Técnico em Eletroeletrônica, Fundador e Diretor da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Existem 9 comentários para esta postagem
  1. MARIO CARRAZZA às 10:38

    Possuo um Arduíno MEGA 2560 e não consegui atualizar o firmware do Shield Wifi ESP8266 utilizando os passos descritos neste site.

    Necessito que me ajude a realizar esta atualização do firmware utilizando o Arduíno MEGA.

    Obrigado pela atenção.

    • Euler Oliveira Autor às 10:54

      Olá Mario.

      Agradeço pelo comentário!

      Tente novamente, pois os passos mencionados no tutorial aqui do Blog funcionam perfeitamente para atualizar o firmware do Shield.

  2. Iuri de Lima Marques às 14:22

    Cara como voce fez a ligação dos jumpers com o ESP8266?

  3. dex às 16:45

    I flashed shield and it’s ok. Now i would like to use it without Arduino. To upload sketch, what i need? How to set up board in tools? How to wire shield with USB to TTL? Should it stayed the way it was while i flashed it? How to position DIP switches?

    Thanks in advance.

  4. Daniel às 12:58

    Efetuei a aquisição do Shield “WIFI ESP8266-12E” mas em meu caso mesmo com a inversão da conexão, posicionamento do DIP-SWITCH e alternar velocidades, não foi possível fazer o upload do programa.
    Poderia informar se apenas utilizando o Shield WIFI e Arduino se conseguiu fazer o upload do programa ? Ou como outros sites informam utilizaram um modulo adicionar para isto ?

    Grato, abraço, Daniel

  5. João Ricardo Contreira Pires às 17:22

    Boa Tarde poderia dizer qual biblioteca está usando para programar este shield

    • Euler Oliveira Autor às 09:01

      Olá João Ricardo.

      Não é necessário utilizar nenhuma biblioteca para programar este shield. A programação desta placa é feita da mesma forma que no ESP8266, contudo, conforme foi explicado na postagem, há botões na placa que possuem funções específicas para upgrade de firmware e para que a placa possa funcionar como shield ao ser conectada ao Arduino.

      Há bibliotecas que facilitam sim a programação de webserver com ESP8266 e estas bibliotecas são compatíveis com o shield.