Simplificando a conexão entre o Módulo WiFi ESP8266 ESP-01 e o Arduino

Simplificando a conexão entre o Módulo WiFi ESP8266 ESP-01 e o Arduino

Nesta postagem você vai aprender a conectar o ESP-01 de uma forma bem simples ao Arduino e sem ter que se preocupar em montar circuitos complicados para atribuir conexão sem fio a sua placa.

Atribuir conexão sem fio ao Arduino se tornou algo simples de ser feito após a chegada do ESP8266 e o desenvolvimento de bibliotecas para comunicar as duas plataformas. A única parte mais complicada é que a conexão entre as duas plataformas exige o uso de conversor de nível lógico ou de resistores, e estas conexões irão exigir uso de protoboard e vários jumpers.

Na imagem abaixo você pode ver o esquema de ligação convencional entre o Arduino e o ESP-01 para atribuição de conexão WiFi e acionamento de um LED conectado ao Arduino:

img01_simplificando_conexao_entre_o_modulo_wifi_esp8266_esp-01_arduino_adaptador_3.3v_5v_rx_tx_ams1117_uno_nano_mega_due

Observe que são utilizados pelo menos três resistores, protoboard e nove jumpers para que toda montagem possa ficar completa. É fato que circuitos estão aí para serem montados com um propósito final, contudo, dependendo do circuito que o usuário implementar, poderá se deparar com problemas de mau contato, ainda mais se precisar ficar transportando o projeto para vários locais.

Com o intuito de facilitar a conexão do Arduino ao ESP8266 modelo ESP-01, podemos utilizar o Adaptador Conector 3.3V / 5V para o Módulo WiFi ESP8266 ESP-01:

img02_simplificando_conexao_entre_o_modulo_wifi_esp8266_esp-01_arduino_adaptador_3.3v_5v_rx_tx_ams1117_uno_nano_mega_due

O grande diferencial deste adaptador está na possibilidade de ligar o ESP-01 diretamente ao Arduino sem que seja necessário montar divisor de tensão ou usar conversor de nível lógico para trabalhar com os 5V do Arduino e 3.3V do ESP8266. Basta acoplar o ESP-01 ao adaptador e fazer a conexão ao Arduino utilizando jumpers:

img03_simplificando_conexao_entre_o_modulo_wifi_esp8266_esp-01_arduino_adaptador_3.3v_5v_rx_tx_ams1117_uno_nano_mega_due

Na imagem abaixo você pode ver o esquema de ligação similar ao primeiro esquema que foi mostrado, contudo, desta vez utilizando o adaptador como intermédio para conexão entre o Arduino e o ESP-01:

img04_simplificando_conexao_entre_o_modulo_wifi_esp8266_esp-01_arduino_adaptador_3.3v_5v_rx_tx_ams1117_uno_nano_mega_due

Veja que foram utilizados apenas quatro jumpers para fazer a conexão do ESP-01 ao Arduino. O adaptador possui os pinos GND (alimentação), VCC (alimentação), TX (conexão serial) e RX (conexão serial). A alimentação do adaptador é feita com 5V, pois o mesmo já possui um regulador de tensão AMS1117 que abaixa a tensão de 5V para 3.3V. Além disso, o adaptador já conta com componentes que garantem estabilidade no fornecimento de tensão e corrente para funcionamento do ESP8266 ESP-01.

É importante ressaltar que, para que o ESP-01 possa se comunicar com o Arduino e atribuir conexão WiFi, é necessário que o módulo esteja com um firmware que permita o envio de comandos AT. Acesse a postagem Upgrade de Firmware do WiFi ESP8266 ESP-01 através do Arduino e Conversor USB Serial e veja como instalar a versão de fimrware no ESP-01 que permite o envio de comandos AT. Em seguida retorne para continuar.

Considerando que o seu ESP-01 esteja com firmware de comandos AT e que já esteja acoplado ao adaptador que está conectado ao Arduino através de jumpers, faça download da biblioteca abaixo e em seguida faça instalação da mesma no IDE do Arduino:

Download WiFiEsp

Se você não sabe como importar bibliotecas no IDE do Arduino, leia a postagem Arduino – Importando bibliotecas para a IDE e em seguida retorne para continuar.

Copie o código abaixo e cole no IDE do Arduino:

1) Antes de carregar o código no Arduino você deverá inserir o nome da sua rede WiFi na linha char* ssid = “NOME DA SUA REDE WIFI”; e a senha deverá inserir na linha char* password = “SENHA DA SUA REDE WIFI“;.

2) O código está configurado para utilizar IP estático, portanto, na linha WiFi.config(IPAddress(192,168,2,110)); você deverá substituir o IP 192,168,2,110 por um endereço IP disponível na sua rede sem fio. Se você não sabe como ter acesso a esta informação no Windows, sugiro que leia a postagem Descobrindo a faixa de IP do seu roteador e em seguida retorne para continuar.

3) Após o código ser carregado, abra o monitor serial, em seguida abra o navegador no seu computador, smartphone ou tablet, copie o endereço IP mostrado em “IP address set” no monitor serial, cole no navegador e acesse para que a página seja carregada.

A página web possui um botão que será responsável por ligar / desligar o LED conectado ao pino 13 do Arduino. Pressione o botão para acender / apagar o LED e veja que o estado atual é atualizado na página.

Veja no vídeo abaixo o resultado final:

Bem simples né?! A partir de agora você pode implementar com muita facilidade os seus projetos utilizando o Arduino integrado ao ESP8266 ESP-01 através do uso deste adaptador.

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
Perfil no Instagram: https://www.instagram.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 pela Faculdade Presidente Antônio Carlos, fundador e CEO 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 25 comentários para esta postagem
  1. EMERSON JULIO às 15:34

    Boa tarde!

    Obrigado por mais um conteúdo de ótima qualidade!

    Estava precisando de algo do gênero para implementar em um projeto para o curso, mas esbarrei em um problema, a aplicação ficou muito grande, ocupa 94% de memória no Arduino (já com as dicas desse post implementadas) e fica instável ou não roda.
    Fica a pergunta, é possível gravar essa conexão diretamente no ESP8266 e recuperar informações da aplicação que está rodando no arduino?
    *Seriam 2 códigos, um de conexão diretamente no ESP8266 e outro no arduino coletando dados dos sensores.

    Obrigado!

  2. Keyce às 18:15

    Oi, Euler
    Incrível post, obrigada pela ajuda!

    Gostaria de saber se suas ilustrações foram feita no Fritzing?
    Se sim, pode disponibilizar o arquivo deste adaptador?

    Obrigada!!!

  3. Delcleciano às 19:04

    Opa, Boa noite, o código não esta compilando esta dando o seguinte erro

    Foram encontradas múltiplas bibliotecas para “SoftwareSerial.h”
    Usado: C:\Users\delcl\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\libraries\SoftwareSerial
    Não usado: C:\Users\delcl\Documents\Arduino\libraries\EspSoftwareSerial
    exit status 1
    conflicting declaration ‘SoftwareSerial Serial1’

    eu pensei que fosse algo relativo na montagem e comprei o adaptador Wifi no shop de voces , para ter menos cabo, e acabou que no fim continuei tendo o mesmo erro, o que faço para resolver o problema??

    • Euler Oliveira Autor às 19:17

      Olá Delcleciano.

      Agradeço pelo comentário!

      A mensagem de erro já informa o motivo:

      Foram encontradas múltiplas bibliotecas para SoftwareSerial.h

      Se você instalou no IDE do Arduino alguma versão da biblioteca SoftwareSerial, esta é a causa do problema, pois a SoftwareSerial é nativa do IDE e se adicionar uma segunda SoftwareSerial irá dar erro na compilação do código.

      O erro em questão não tem nada haver com o adaptador.

  4. Alessandro às 19:45

    O meu não funciona, já mudei varias variáveis e fica apenas,
    [WiFiEsp] Initializing ESP module
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] Cannot initialize ESP module
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] No tag found

    Qual o erro?

        • Euler Oliveira Autor às 18:23

          Olá Giulia.

          Agradeço pelo comentário!

          O firmware que carregou no ESP-01 é o disponível no tutorial aqui do Blog? Se sim, deveria funcionar, considerando que fez as conexões corretas e utilizou o código exatamente como está na postagem.

      • Victor de Almeida Souza às 20:51

        Para resolver este erro basta mudar a comunicação pra 9600, usando este comando: AT+UART_DEF=9600,8,1,0,0. Esta no final da postagem sobre download de firmware.
        Muito obrigado ao blog pelo conteúdo muito util.

  5. Rodrigo Silva às 09:00

    o meu esta dando essa falha ao compilar

    error: conflicting declaration ‘SoftwareSerial Serial1’

    SoftwareSerial Serial1(6, 7); //PINOS QUE EMULAM A SERIAL, ONDE O PINO 6 É O RX E O PINO 7 É O TX

    ^

    In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.33.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:233:0,

    from sketch\sketch_may11a.ino.cpp:1:

    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.33.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/HardwareSerial.h:147:25: note: previous declaration as ‘HardwareSerial Serial1’

    extern HardwareSerial Serial1;

    ^~~~~~~

    exit status 1
    conflicting declaration ‘SoftwareSerial Serial1’

    o que seria??

  6. silmar às 11:07

    Boa tarde, aqui foi o unico local que consegui algo com eu ESP01, porém recebo uma linha no monitor assim:
    [WiFiEsp] Warning: Unsupported firmware 0.9.5
    qual versao devo usar e onde encontro ela?
    obrigado

    • Euler Oliveira Autor às 16:26

      Olá Silmar.

      Agradeço pelo comentário!

      No oitavo paragrafo do texto é informado sobre a versão do firmware para execução da prática.

  7. Aluizio às 15:01

    Boa Tarde,

    Tutorial ótimo. Bem detalhado.

    Atualizar o firmware ou não?

    O meu ESP8266 é a placa “preta” e a versão que estou usando é a 1.1.0.0.
    Pode ser usada esta versão?

    Nesta placa do ESP8266 consigo enviar os comandos AT ja utilizados em outros projetos.
    Segue a versão do ESP8266:

    AT+GMR
    AT version:1.1.0.0(May 11 2016 18:09:56)
    SDK version:1.5.4(baaeaebb)
    compile time:May 20 2016 15:08:19

    Porém, mesmo trocando o divisor de tensão e trocando a velocidade para 9600 apresenta “TIME OUT” conforme segue:

    WiFiEsp] Initializing ESP module
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] Cannot initialize ESP module
    [WiFiEsp] >>> TIMEOUT >>>
    Grato,
    Aluizio

    • Euler Oliveira Autor às 08:41

      Olá Aluizio.

      Agradeço pelo comentário!

      Trocando o divisor de tensão? Mas o uso do adaptador mencionado na publicação não exige uso de divisor de tensão.

      Aparentemente a versão de firmware que possui já é suficiente para uso com a WiFiEsp.

  8. Pingback: Arduino e ESP01 não se conectam – Diário do Arduino
    • Euler Oliveira Autor às 10:18

      Olá.

      Agradeço pelo comentário!

      No tutorial tem a seguinte informação:

      É importante ressaltar que, para que o ESP-01 possa se comunicar com o Arduino e atribuir conexão WiFi, é necessário que o módulo esteja com um firmware que permita o envio de comandos AT. Acesse a postagem Upgrade de Firmware do WiFi ESP8266 ESP-01 através do Arduino e Conversor USB Serial e veja como instalar a versão de fimrware no ESP-01 que permite o envio de comandos AT. Em seguida retorne para continuar.

      Ou seja, já é informado que precisa de determinada versão de firmware e no tutorial de upgrade do firmware é ensinado como alterar a taxa de comunicação para 9600 bauds para que funcione com o Arduino.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *