Alternativas de conexão Serial para o Shield WiFi ESP8266 com o Arduino

Alternativas de conexão Serial para o Shield WiFi ESP8266 com o Arduino

A comunicação entre o Shield WiFi ESP8266 com o Arduino pode ser feita através da Serial Nativa (hardware serial do Arduino), contudo, várias bibliotecas de comunicação entre o ESP8266 e o Arduino utilizam a SoftwareSerial para comunicação entre as plataformas e o usuário pode optar por usar outros pinos digitais que não sejam D0 e D1. Portanto, nesta postagem você vai ver algumas alternativas para comunicar o Shield WiFi ESP8266 com o Arduino utilizando outros pinos digitais da placa junto com a SoftwareSerial.

Na postagem Conhecendo o Shield WiFi ESP8266 para Arduino foi feito um apanhado geral sobre a placa. Logo, recomendo que você leia a postagem caso ainda não tenha lido. Além disso, é extremamente importante que você leia também a postagem  Shiald e Shield WiFi ESP8266? Será que tem diferença?, pois se tratando do Shield WiFi ESP8266 (também conhecido como ESP8266 ESP-12E UART Wireless WIFI Shield TTL Converter), é 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.

Recomendo também que leia a postagem Upgrade de Firmware no Shield WiFi ESP8266 para Arduino. Nesta postagem foi ensinado a instalar no Shield WiFi ESP8266 o firmware de comandos AT que é um requisito essencial para a maioria das bibliotecas de comunicação entre o ESP8266 e o Arduino utilizando a SoftwareSerial.

IMPORTANTE: AS FORMAS APRESENTADAS ABAIXO SÃO ALTERNATIVAS! VOCÊ PODE UTILIZAR A COMUNICAÇÃO PADRÃO DO SHIELD WIFI ESP8266 COM O ARDUINO ATRAVÉS DA SERIAL NATIVA (PINOS D0 E D1).

Para utilizar o Shield WiFi ESP8266 com o Arduino através da serial nativa (pinos D0 e D1), é necessário que um código seja carregado no shield e que no Arduino seja carregado um outro código para enviar, receber e interpretar os dados tráfegados através da serial nativa.

Conforme já mencionado anteriormente, várias bibliotecas de comunicação entre o ESP8266 e o Arduino utilizam a SoftwareSerial para comunicação entre as plataformas e além disso, o usuário pode precisar de imprimir informações na serial para debugar o código. Logo, torna-se necessário o uso de outros pinos digitais para emular uma conexão serial entre o ESP8266 e o Arduino.

Nesta postagem vou apresentar algumas formas de conexão entre o Shield WiFi ESP8266 e o Arduino (Uno, Mega 2560, Leonardo e outros modelos que aceitem o acoplamento do shield). Em ambas as formas o shield vai estar acoplado ao Arduino e o que será feito é a conexão entre o TX e RX do shield com dois pinos digitais do Arduino que vão fazer o papel de RX e TX na biblioteca SoftwareSerial.

Para maiores informações sobre a biblioteca SoftwareSerial clique AQUI.

OBS: a título de demonstração, em algumas das formas utilizei os pinos digitais D8 e D7. O pino D8 fazendo o papel de RX e o pino D7 sendo o TX.

– Conexão utilizando os pinos da Debug Port:

O Shield WiFi ESP8266 possui uma sequência de pinos que podem ser utilizados para debug. Esta sequência é composta pelos pinos TXD / RXD / 5V / GND / 3V3. Como o shield vai estar acoplado ao Arduino, será necessário utilizar apenas os pinos TXD e RXD:

img01_alternativas_de_conexao_serial_para_o_shield_wifi_esp8266_com_o_arduino_uart_esp12e_uno_mega_2560_ttl

Nesta forma de conexão os dois cabos jumper vão passar por cima do shield para que seja feito a conexão nos pinos D8 e D7 do próprio shield. Você pode passar os dois jumpers por baixo do shield:

img02_alternativas_de_conexao_serial_para_o_shield_wifi_esp8266_com_o_arduino_uart_esp12e_uno_mega_2560_ttl

Ao acoplar o shield no Arduino é feita a conexão do RX do shield ao TX do Arduino e do TX do shield ao RX do Arduino.

– Conexão utilizando os pinos diretos do ESP8266:

Na parte superior do Shield WiFi ESP8266 há os pinos para conexão direta ao ESP8266. Dentre estes pinos temos o RXD e o TXD que serão utilizados para conectar aos pinos D8 e D7 do próprio shield:

img03_alternativas_de_conexao_serial_para_o_shield_wifi_esp8266_com_o_arduino_uart_esp12e_uno_mega_2560_ttl

Nesta forma de conexão os dois cabos jumper também vão passar por cima do shield, contudo, você pode utilizar cabos jumper menores:

img04_alternativas_de_conexao_serial_para_o_shield_wifi_esp8266_com_o_arduino_uart_esp12e_uno_mega_2560_ttl

Ao acoplar o shield no Arduino é feita a conexão do RX do shield ao TX do Arduino e do TX do shield ao RX do Arduino.

– Conexão utilizando os contatos inferiores do shield e DIP switch:

Na parte inferior do Shield WiFi ESP8266 há os contatos (soldas) dos pinos para conexão direta ao ESP8266 e estes contatos já estão identificados. Utilizando o RXD e o TXD, podemos soldar um fio em cada um deles, passar cada um dos fios nos terminais de uma chave DIP switch de duas vias e do outro lado da chave soldar mais dois fios e por fim soldar cada um destes fios aos pinos D8 e D7 do próprio shield, se atentando a conectar o TXD do ESP8266 ao pino D8(RX) e o RXD do ESP8266 ao pino D7(TX):

img05_alternativas_de_conexao_serial_para_o_shield_wifi_esp8266_com_o_arduino_uart_esp12e_uno_mega_2560_ttl

Com as duas vias da DIP switch na posição ON, ao acoplar o shield no Arduino é feita a conexão do RX do shield ao TX do Arduino e do TX do shield ao RX do Arduino.

Note que, nas duas primeiras formas basta remover os jumpers dos pinos caso você não queira usar a serial emulada nos pinos digitais. Na terceira forma, caso não queira utilizar a serial emulada nos pinos digitais D8 e D7, basta colocar as duas vias da DIP switch na posição OFF.

Em qualquer uma das formas acima, basta que o usuário informe no código os pinos de conexão para a SoftwareSerial, que no caso são os pinos 8 (RX) e o 7 (TX).

– Conexão com Arduino Mega 2560 ou outras placas que possuam mais de uma hardware serial:

Todas três formas de conexão apresentadas acima são compatíveis com o Arduino Mega 2560 ou outras placas que possuam mais de uma hardware serial (HWSERIAL), contudo, quando a plataforma possuir mais de uma hardware serial, o usuário poderá usar conexão direta a estes pinos.

No Arduino Mega 2560, por exemplo, há três hadware serial disponíveis além da serial nativa (Serial (pino 0 RX0 e pino 1 TX0)), sendo elas: Serial1 (pino 19 RX1 e pino 18 TX1), Serial2 (pino 17 RX2 e pino 16 TX2) e Serial3 (pino 15 RX3 e pino 14 TX3).

Utilizando os os pinos para conexão direta ao RXD e o TXD do ESP8266, podemos, por exemplo, conectar aos pinos da hardware serial 3 (Serial3):

img06_alternativas_de_conexao_serial_para_o_shield_wifi_esp8266_com_o_arduino_uart_esp12e_uno_mega_2560_ttl

Desta forma, no código basta informar para a SoftwareSerial os pinos de conexão, que no caso são os pinos 15 (RX) e o 14 (TX), e definir o parâmetro como Serial3 (SoftwareSerial Serial3(15, 14);).

No caso do Arduino Leonardo, a serial para conexão com o computador é virtual e não está ligada a serial nativa (pinos D0 e D1). Logo, basta acoplar o shield ao Arduino Leonardo, carregar o código na placa definindo o parâmetro como Serial1 (SoftwareSerial Serial1(0, 1);),  colocar na posição ON as vias P1 e P2 da DIP switch, e a conexão entre o shield e o Arduino Leonardo será estabelecida.

É importante ressaltar que ao utilizar umas destas formas de conexão alternativa (exceto com o Arduino Leonardo), as vias da DIP switch sempre deverão permanacer desligadas.

Dependendo do projeto ou prática que pretenda montar, os pinos D8 e D7 vão ser utilizados para conectar outros componentes e não o shield. Portanto, verifique quais pinos digitais vão sobrar para que possa usá-los na conexão entre o shield e o Arduino.

Gostou desta postagem? 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 2 comentários para esta postagem
  1. Marcel às 22:55

    Por acaso existe o esquemático desta placa para arduino, pois pesquisei na web e não achei.

    • Euler Oliveira Autor às 11:49

      Olá Marcel.

      Agradeço pelo comentário!

      Não há.