Arduinoesp8266

Arduino shield para ESP8266

arduino shield

Arduino shield ou ESP8266 shield?

Ahá! Parece inovador quando mudando o ângulo de visão, não é mesmo? Legal, mas apesar de ser verdade o conceito de um Arduino como slave para o ESP8266, trata-se apenas do shield WiFi com ESP8266 sobre um Arduino; o Arduino shield desse outro artigo.

Pare de usar chavões

Resolvi fazer a chamada desse jeito porque apesar da aplicação estar nas mãos do usuário, diversas pessoas vieram com o chavão “o ESP8266 não precisa de um Arduino”. Pessoal do clichê, “hello”! Pesquise no site e encontre mais de 60 artigo sobre ESP8266, com diversos firmwares diferentes. Entenda de vez que quase ninguém mais utiliza o firmware AT no ESP8266, então não é uma novidade que o ESP8266 é independente. Escrevi 2 ou 3 artigos sobre o uso de AT, todos os demais focam na independência do ESP8266 e quando escrevo sobre utilizar o ESP8266 em conjunção ao Arduino, obviamente trata-se de Arduino como slave. E ainda você pode se perguntar se existe razão para isso. Sim, existe, basta pensar o que tem de vantagem no Arduino que seria bom ter no ESP8266:

  • 5 pinos analógicos
  • 11 pinos digitais de propósito geral
  • Nível lógico 5V

Fora isso, você ainda tem a vantagem de utilizar um ADC extra em 1V ou 3V3, conforme seleção do pino no shield.

Gravar no ESP8266



Como agregar isso ao ESP8266? Simplesmente use o shield WiFi sobre o Arduino UNO, por exemplo. Para colocar o shield ESP8266 em modo de gravação, mude os pinos 3 e 4 do DIP switch para ON. Coloquei os pinos 1 e 2 também em ON e utilizei a porta de debug para gravar, ligando um FTDI ao shield. As conexões são simples como em qualquer ESP8266 em que se utilize FTDI:

ESP8266 debug port  FTDI 3V3
TX  RX
RX TX
3V3 VCC
GND GND

Em suma, coloca-se os 4 pinos do DIP switch em ON. Para tirar do modo de gravação, desligue o shield  e mude os pinos 3 e 4 para OFF.

arduino shield
arduino shield

Utilize a IDE do Arduino

Pouco provável que ainda não conheça esse recurso, mas se ainda não utilizou a IDE do Arduino para gravar um firmware no ESP8266, recomendo esse artigo.  Pela IDE do Arduino, a configuração do módulo ESP8266 genérico ficou assim:

arduino shield
arduino shield

Utilize PlatformIO

Entre outras IDEs, você pode ver a configuração nesse artigo que escrevi para ESP32, mas serve para ESP8266 também.

Comunicação entre o Arduino e o shield ESP8266

Coloque os pinos 1 e 2 do DIP switch em ON. Desse modo, o TX do ESP8266 estará conectado ao RX do Arduino. De outro modo, não haverá comunicação direta entre o Arduino e o ESP8266 e esse modo é útil quando em modo debug direto com o ESP8266.

Comunique-se através da serial

Coloque ambas as seriais em 9600, tanto no Arduino quanto no ESP8266. Depois disso trate toda a lógica de seu programa no ESP8266 e apenas use o Arduino como slave, enviando dados para a serial em forma de comandos. Por exemplo, defina algumas macros:

E em seu programa, apenas escreva esse 1 byte pela serial. No Arduino, faça condicionais ou arrays para manipular os bytes advindos da serial e apenas utilize-o para executar os comandos, acionando relés, disparando alarmes etc.

Sketch de exemplo para o ESP8266

Esse exemplo faz a alternância do estado do LED onboard do ESP8266 para que você tenha um status enquanto analisa a comunicação serial. O primeiro passo para testá-lo é remover o FTDI do pino TX da porta de debug (após ter gravado o firmware) e colocá-lo ao pino 0 do shield. Abra o monitor serial e perceba que com os pinos 1 e 2 do DIP switch em ON, você verá o print na serial. Desligue o shield, troque os estados do DIP switch para OFF novamente e perceba que, apesar do LED estar alternando seu estado  ainda, a serial não exibe mais nada, pois o DIP switch fez o isolamento. Teste com esse sketch:

Sketch de exemplo para o Arduino UNO

Esse sketch é exclusivamente para o Arduino UNO porque estou utilizando o recurso SerialEvent (peguei do próprio exemplo e adicionei umas 5 ou 6 linhas apenas), que não está disponível para todas as boards. Basicamente, o Arduino lê um evento da seria e trata conforme o resultado, acendendo ou apagando o LED colocado sobre o pino 7.

Após subir o sketch em cada uma das placas, encaixe o shield sobre o Arduino e ligue-o à porta USB ou a um pack de bateria e veja o sincronísmo entre o LED do ESP8266 e o LED do Arduino. Gostou do exemplo?

Onde comprar

Esse shield WiFi você encontra na Eletrogate, através desse link, mas sugiro agilidade na aquisição porque parece que o shield foi muito bem aceito e está chegando às últimas peças.

Inscreva-se no nosso newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/

Próximo post a caminho!