Como usar com Arduino – Shield WiFi ESP8266

Como usar com Arduino – Shield WiFi ESP8266

img00_como_usar_com_arduino_shield_wifi_esp8266_uart_esp12e_uno_mega_2560_ttl_leonardo_pagina_servidor_webserver

– Descrição:

Shield WiFi ESP8266 Módulo ESP-12E para Arduino (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. Este shield se encaixa perfeitamente no Arduino Uno, Arduino Mega 2560, Leonardo e outros modelos. Além disso, não há necessidade de alimentar o shield externamente, pois o mesmo já é alimentado pelo Arduino.

Módulo ESP8266 é um dispositivo IoT (Internet das Coisas) que consiste de um microprocessador ARM de 32 bits com suporte embutido à rede WIFI e memória flash integrada. Essa arquitetura permite que ele possa ser programado de forma independente, sem a necessidade de outras placas microcontroladoras como o Arduino, por exemplo. Vale ressaltar que o ESP8266 além de ser programado em LUA (linguagem de programação desenvolvida no Brasil), também é compatível com o ambiente de programação (IDE) do Arduino.

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 Módulo ESP-12E para Arduino 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.

Um dos grandes diferenciais do Shield WiFi ESP8266 Módulo ESP-12E para Arduino está na possibilidade de utilizá-lo sozinho, logo, caso você queira desenvolver um projeto independente do Arduino, poderá fazer de forma simples, pois ele possui toda pinagem do ESP-12E disponível, inclusive os pinos para conexão de um conversor USB serial.

OBS: para que o Shield WiFi ESP8266 Módulo ESP-12E possa atribuir WiFi ao Arduino, é necessário que o módulo esteja com um firmware (código) que possa receber comandos AT. Se você adquiriu o Shield WiFi ESP8266 Módulo ESP-12E em nossa loja e não enviou nenhum código para o shield, o mesmo já vai estar com o firmware que aceita comandos AT e você pode prosseguir na prática. Caso você tenha adquirido o Shield WiFi ESP8266 Módulo ESP-12E em outra loja ou já tenha carregado algum código no módulo, acesse a postagem Upgrade de Firmware no Shield WiFi ESP8266 para Arduino, execute os passos e em seguida retorne para continuar.

– Especificações e características:

– Controlador: ESP8266 ESP-12E
– Compatibilidade: Arduino Uno, Arduino Mega 2560, Leonardo e outros
– Tensão de operação (shield conectado ao Arduino): 5VDC
– Tensão de operação (standalone com conversor USB serial): 3.3VDC
– Nível lógico: 3.3V (não tolerante a 5V)
– Velocidade de clock: 80MHz / 160MHz
– Memória: 32Mb (4 megabytes)
– Portas digitais (GPIO): 11
– Entrada analógica (ADC): 1
– GPIO: função PWM, I2C e SPI
– Pinos UART: 2
– Suporte a redes: 802.11 b/g/n
– Potência de saída: +20dBm no modo 802.11b
– Antena embutida
– Alcance: ~90m
– Processador: Arm 32 bits
– Comunicação: TCP IP
– Criptografia: WEP, WPA, TKIP, AES
– Modo de operação: STA / AP / STA+AP

– Aplicações:

Projetos com Arduino em que seja necessário conectar a placa a internet através de conexão WiFi (sem fio) para desenvolvimento de projetos que necessitam controlar algo remotamente ou obter informações de outros dispositivos para exibir em tempo real ou armazenar em uma base de dados.

– Proposta da prática:

Utilizar o Shield WiFi ESP8266 para atribuir WiFi ao Arduino, fazer conexão a um webserver e acessar uma página web que possui um botão para ligar / desligar um LED. O estado atual deste LED também será exibido na página.

– Lista dos itens necessários:

01 – Arduino (MEGA 2560 R3 / Uno / Leonardo)
01 – Shield WiFi ESP8266 Módulo ESP-12E para Arduino
01 – LED Difuso 5mm Vermelho

– Esquema de ligação da prática:

img01_como_usar_com_arduino_shield_wifi_esp8266_uart_esp12e_uno_mega_2560_ttl_leonardo_pagina_servidor_webserver

– Tutorial de instalação e configuração do ambiente de programação do Arduino:

Arduino – Instalação e Configuração da IDE no Windows

– Biblioteca:

Download WiFIESP-mod

– Importando bibliotecas para o ambiente de programação do Arduino:

Arduino – Importando bibliotecas para a IDE

– Código:

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,0,110)); você deverá substituir o IP 192,168,0,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) Se estiver utilizando o Arduino Leonardo, vá até as linhas 19 e 20 do código, e mude a palavra Serial para Serial1.

4) Coloque todas as vias da DIP switch na posição OFF e faça o carregamento do código:

5) Terminado o carregamento do código no Arduino, desconecte o cabo USB da placa, coloque as vias P1 e P2 do shield na posição ON e conecte o cabo USB ao Arduino novamente.

6) 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.

7) Alterne entre os comandos para acender e apagar o LED.

8) Para esta postagem utilizei o Arduino Mega 2560, contudo, o resultado final será o mesmo caso você esteja utilizando outra placa Arduino que permita o acoplamento do shield.

9) Enquanto as vias P1 e P2 do shield estiverem na posição ON, você não poderá fazer o envio de códigos para o Arduino, pois a serial nativa vai estar ocupada. Lembre-se de toda vez que mudar a posição das vias da DIP switch, pressionar o botão ESP-RST ou o RESET do Arduino.

– Resultado final:

Gostou desta prática? 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 36 comentários para esta postagem
  1. Luís Vanderlei às 12:51

    Boa tarde.
    Gostaria de saber se conectado a placa uma ve a Arduíno todas as porta ficam a diposição ou há portas que não pderei usar. Poderia me confimar, e informar caso seja usadas, quais são essas portas?

    • Euler Oliveira Autor às 09:18

      Olá Luís Vanderlei.

      Agradeço pelo comentário!

      Os pinos utilizadas pelo Shield são os RX e TX, 0 e 1 respectivamente.

  2. Antonio às 18:17

    ola amigo, boa noite gostaria de saber se vc escreve codigo para Arduino Mega com WiFi Embutido ESP8266, preciso de um codigo para acionar todas as entradas via pagina web, gostaria de sabe o valor para escrever o codigo

  3. Filipe S. C. Lima às 01:19

    Na hora de carregar o programa para o arduino da o seguinte erro:

    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_getsync(): timeout communicating with programmer
    Ocorreu um erro enquanto o sketch era carregado

  4. Nikolas às 15:10

    Hi there, awesome project.

    I’m working on a project where I collect data from sensors and I would like to send the data to a database. The problem is that I am stuck at sending the data from the Arduino to the Wifi Shield, so they can be forwarded to the database. How would I be able to do that? I managed to figure out how to send data from the shield to the database, but cannot figure out sending data from Arduino to shield.
    Any help would be highly appreciated.
    Thank you.

  5. Kevin Okamura às 16:39

    Olá! É possível utilizar o protocolo Modbus TCP/IP com este Shield e associar com um supervisório tipo ScadaBR? Obrigado.

  6. Gabriel Oliveira Ferreira às 08:56

    Esse código funciona apenas para uma rede interna? Em caso afirmativo, como faço para controlar o led pela internet (redes wifi diferentes)?

    • Euler Oliveira Autor às 10:37

      Olá Gabriel.

      Agradeço pelo comentário!

      Somente para rede interna.

      Pesquise por NAT para poder acessar externamente.

  7. Lucas Oliveira às 14:42

    Olá Euler ,

    Muito bom o post, porém estou com algumas dúvidas , este código deve ser baixado no Arduino e não na placa correto ?
    Estou utilizando o modelo “shiald”, posso conectar o shield diretamente no arduino, ou preciso conectar o RX, TX através dos jumpers?

    Através do monitoramento da serial, ele não passa dessa mensagem:
    AT+CIPSTATUS

    • Euler Oliveira Autor às 13:40

      Olá Lucas.

      Agradeço pelo comentário!

      Conforme está informado no tutorial, o shield deve estar com o firmware de comandos AT.

      No Arduino é carregado o código da postagem.

      • Lucas às 00:09

        Euler, boa noite. Estou com o mesmo problema do colega. Não passa da mensagem CIPSTATUS. Conforme relatado em outro post, não consegui atualizar firmware de forma alguma. Realizei diversas vezes todos os passos. Estou utilizando Arduino Mega como intermédio. Conferi todos os cabos, ligações, posições da chave DIP, porém sem sucesso. Placa shiald more. Me ajuda, por favor. Obrigado desde já.

  8. Agustin de Landa às 20:02

    Buenas tardes seguí la practica y todo funciono muy bien, muchas gracias.

    Una pregunta : ¿Donde puedo obtener mas documentación para usar esta placa? Es decir donde estan comandos como :

    WiFiEspClient client = server.available();

    Gracias.

  9. Flávio Augusto Adamo Mendes da Silva às 11:06

    Olá!
    Gostaria de saber se nesse processo consigo comunicar dois arduinos ?
    Por exemplo, tenho dois aduinos um em casa extremidade de minha casa ambos com dois botões, digamos que um vermelho e outro verde e quando um botão de cada um for acionado e as cores se corresponderem ele emita um som, por isso lhe pergunto se eles podem se comunicar através do EPS8266?
    Fraternalmente.

    • Euler Oliveira Autor às 13:56

      Olá Flávio.

      Agradeço pelo comentário!

      Consegue sim.

  10. Daniel às 12:35

    me precipitei, desculpe. O mesmo cabo curto que usei no mega nao funcionou no Uno que acabou funcionando com um cabo mais longo, n’ao sei qual a mágica, mas pode ser defeito no cabo. valeu!

  11. Daniel às 12:23

    Euler, parabéns pelos posts. Funcionou apenas no arduino Mega. Testei no leonardo, nano e Uno não funcionou . Essa shield só funciona mesmo no mega? poderia confirma isso? preciso que ele funcione placa menor, uno por exemplo. valeu ! obrigado

    • Euler Oliveira Autor às 13:11

      Olá Daniel.

      Agradeço pelo comentário!

      Conforme informado no texto, o shield é compatível com todas as versões de Arduino em que a placa possa ser acoplada.

  12. Guilherme Campbell às 11:35

    Boa tarde,

    Estou com problema no passo 6.

    A porta serial imprime a seguinte mensagem:

    12:21:10.674 -> f怘⸮AT
    12:21:12.691 -> AT
    12:21:14.689 -> AT
    12:21:16.720 -> AT
    12:21:18.753 -> AT
    12:21:25.822 -> AT+CWDHCP_CUR=1,0
    12:21:27.335 -> AT+CIPSTA_CUR=”172.20.10.4″
    12:21:29.858 -> AT+CIPSTATUS

    Utilizo o IP indicado porém não há conexão. Como devo prosseguir?

    • Euler Oliveira Autor às 12:55

      Olá Guilherme.

      Agradeço pelo comentário!

      Recomendo que faça novamente o processo de upgrade de firmware do shield,reinstale a biblioteca WiFIESP-mod e que confira a posição das vias da DIP switch.

      • Guilherme Campbell às 16:38

        Olá Euler,

        No código a velocidade estava 9600. Trocando para 115200 passou a funcionar!

        Obrigado

    • Euler Oliveira Autor às 18:42

      Olá João.

      Agradeço pelo comentário!

      Sim, é possível.

  13. Rodrigo às 12:01

    Olá eu consigo salvar dados em algum banco de dados com esse Shield? Alguem tem algum exemplo pra compartilhar pra me ajudar?

    • Euler Oliveira Autor às 12:57

      Olá Rodrigo.

      Agradeço pelo comentário!

      O shield utilziado junto ao Arduino apenas faz o intermédio do Arduino com a rede local ou internet. Portanto, é possível sim transmitir / receber dados para um banco de dados.

      Pesquise por exemplos de código utilizando o Arduino e o ESP-01 com banco de dados e poderá aplicar perfeitamente junto ao shield e o Arduino.

  14. Rodrigo às 18:55

    Professor, por acaso esse módulo ESP-12E ESP8266 pode se conectar diretamente ao arduino (sem shield) e prover wi-fi? Comprei achando que sim. 🙁

    • Euler Oliveira Autor às 11:22

      Olá Rodrigo.

      Agradeço pelo comentário!

      Sim, qualquer versão do ESP8266 pode ser utilizada para atribuir WiFi ao Arduino.

    • Attilio às 18:25

      oi, eu estou tentando aprender a usar o skatch do seu escudo wifi Entrei em tudo e funciona até a metade.
      Não consigo concatenar as strings para iniciar o comando relay.

      Eu precisaria de uma mão, ficaria grato

      Gostaria de enviar o arquivo para que você possa conferir

      obrigado

      • Euler Oliveira Autor às 19:53

        Olá Attilio.

        Agradeço pelo comentário!

        Como assim funciona até a metade? Poderia dar mais detalhes sobre o problema que está tendo?

        Quais strings deseja concatenar? Para qual finalidade?

        Para usar com o módulo relé, o código não mudaria muita coisa.

        • Attilio às 08:43

          Bom dia,
          obrigado pela resposta oportuna.
          Gostaria de enviar os 2 arquivos, mas não sei o email. o primeiro arquivo funciona corretamente com a blindagem ethernet; o segundo, como eu disse antes, consegui fazê-lo funcionar apenas pela metade. Se ele não vê os arquivos, ele não consegue entender neste meio.

          • Euler Oliveira Autor às 09:02

            Mas se estiver tentando utilizar o código de ethernet shield com este shield wifi da postagem, não irá funcionar.

            Você pode usar aqui no campo de pergunta a tag code conforme mostrado no link abaixo e deixar o seu código para que seja analisado:

            https://www.w3schools.com/tags/tag_code.asp

            Dúvidas sobre os itens usados nas práticas aqui do Blog, devem ser passadas através de perguntas nas postagens para que eu ou outro usuários possam tentar ajudar.