Como usar com Arduino – Módulo WiFi ESP8266 ESP-01

Como usar com Arduino – Módulo WiFi ESP8266 ESP-01

img00_como_usar_com_arduino_-_modulo_wifi_esp8266_esp-01_uno_mega_2560_nano_internet_automacao_residencial_android_rele_web_server

– Descrição:

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.

Módulo WiFi ESP8266 ESP-01 também pode ser utilizado junto ao Arduino para agregar conexão sem fio a placa e tornar os projetos muito mais interessantes. O módulo tem suporte as redes WiFi 802.11 b/g/n e criptografia WPA e WPA2.

Com a plataforma embarcada conectada a rede sem fio, você poderá integrar seus projetos com smartphone e tablets, seja Android ou iOS.

OBS: para que o ESP8266 ESP-01 possa atribuir WiFi ao Arduino, é necessário que o módulo esteja com um firmware (código) que possa receber comandos AT. Além disso, para utilizar o código desta postagem a velocidade de comunicação serial do ESP8266 deverá estar  definida em 9600 bauds. Se você adquiriu um de nossos KITs que acompanha o ESP-01 ou adquiriu separadamente o ESP-01 em nossa loja e não enviou nenhum código para o módulo, o mesmo já vai estar com o firmware que aceita comandos AT e com a velocidade definida em 9600 bauds, logo, você pode prosseguir na prática. Caso você tenha adquirido o ESP-01 em outra loja ou já tenha carregado algum código no módulo, acesse a postagem Upgrade de Firmware do WiFi ESP8266 ESP-01 através do Arduino e Conversor USB Serial, execute os passos e em seguida retorne para continuar. Um outro ponto importante é que este tutorial e os demais aqui do Blog que envolvam ESP8266 ESP-01, foram todos executados com a versão preta da placa ESP-01 (possui 8Mb = 1MB de memória flash). Se você possui a versão azul do ESP-01, este tutorial e os demais aqui do Blog não serão compatíveis, pois esta versão possui apenas 4Mb = 512KB de memória flash, o que é insuficiente para carregamento dos firmwares / códigos disponibilizados.

– Especificações e características:

– Controlador: ESP8266
– Tensão de operação / nível lógico: 3.3VDC
– Suporte a redes: 802.11 b/g/n
– Potência de saída: +20dBm no modo 802.11b
– Alcance: ~90m
– Taxa de dados: 250kbps a 2Mbit
– Consumo em Standby: <1.0mW
– Processador: Arm 32 bits
– Comunicação: Serial
– Comunicação: TCP / UDP
– Criptografia: OPEN / WEP/WPA_PSK / WPA2_PSK / WPA_WPA2_PSK
– Temperatura de operação: -40 a 125º celsius

– 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 Módulo WiFi ESP8266 ESP-01 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 com Cabo USB
01 – Módulo WiFi ESP8266 ESP-01
01 – LED Difuso 5mm Vermelho
01 – Resistor de 150Ω
01 – Opção 01 de divisor de tensão (R1 = 1KΩ e R2 = 2.2KΩ)
01 – Opção 02 de divisor de tensão (R1 = 1KΩ e R2 = 1KΩ)
01 – Opção 03 de divisor de tensão (R1 = 10KΩ e R2 = 10KΩ)
01 – Resistor de 10KΩ

01 – Protoboard
05 – Cabos Jumper macho-macho
05 – Cabos Jumper macho-fêmea

OBS: deixei disponível três opções de divisores de tensão. Caso o ESP-01 não funcione bem (acuse erros de comunicação no monitor serial) com a opção 03, por exemplo, monte com a opção 01 ou a opção 02.

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

img01_como_usar_com_arduino_-_modulo_wifi_esp8266_esp-01_uno_mega_2560_nano_internet_esp01s

– 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

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

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

OBS: se no monitor serial retornar TIMEOUT, Cannot initialize ESP module ou No tag found, verifique as conexões do circuito na protoboard, principalmente no divisor de tensão e demais resistores, pois pode haver mau contato e isto está comprometendo o funcionamento do circuito. Caso não queira usar circuitos em protoboard para conectar o ESP-01 ao Arduino e não ter problemas de mau contato, recomendo utilizar o Adaptador Conector 3.3V / 5V para o Módulo WiFi ESP8266 ESP-01. Aqui no Blog temos a postagem Simplificando a conexão entre o Módulo WiFi ESP8266 ESP-01 e o Arduino que ensina a utilizar o adaptador.

– 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 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 52 comentários para esta postagem
  1. Luca Azalim às 22:23

    Olá Euler,

    Recebo o seguinte retorno ao abrir o monitor serial:

    22:22:25.743 -> [WiFiEsp] Initializing ESP module
    22:22:26.758 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:28.770 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:30.788 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:32.779 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:34.798 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:35.786 -> [WiFiEsp] Cannot initialize ESP module
    22:22:41.814 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:44.345 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:45.870 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:45.903 -> [WiFiEsp] No tag found

    Alguma ideia do que posso estar fazendo de errado?

  2. Carlos Alberto Porto às 19:04

    Prezado Euler:
    Boa Noite!
    De fato, se comprarmos este módulo de vocês ele já vem com o “firmware”?
    Agradeço antecipadamente pela atenção.
    Carlos Porto

  3. Murilo às 17:06

    Olá Euler,

    Eu tb estou com esse problema e não consigo resolver.
    Já atualizer firmware de comandos AT e já refiz todas as ligações.

    monitor serial:

    22:22:25.743 -> [WiFiEsp] Initializing ESP module
    22:22:26.758 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:28.770 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:30.788 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:32.779 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:34.798 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:35.786 -> [WiFiEsp] Cannot initialize ESP module
    22:22:41.814 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:44.345 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:45.870 -> [WiFiEsp] >>> TIMEOUT >>>
    22:22:45.903 -> [WiFiEsp] No tag found

    • Euler Oliveira Autor às 08:55

      Olá Lucas.

      Agradeço pelo comentário!

      A conexão é estabelecida com ou sem uso da serial. Na serial é apenas mostrada as informações da conexão.

      Este código possui IP dinâmico, logo, basta usar o IP definido no código para acessar a placa através do navegador.

  4. lucas às 21:54

    Boa noite, estou acrescentando novos comandos, as vezes aparece o seguinte:

    [WiFiEsp] New client 0
    [WiFiEsp] TIMEOUT: 45

    Ai o programa trava, como faço para corrigir esse problema e tambem para caso ocorra esse problema esse desconectar o client?

  5. floyd Manjate às 10:14

    Euler Oliveira! foi uma bencao mesmo encontrar teu blog, tenho esse modulo a 1 ano e ainda nao consegui fazer uma pagina web com ele. hoje mesmo mais logo irei testar o seu codigo e direi algo qualquer coisa. entro em contacto. se possivel peco o seu email. abraco.

      • floyd Manjate às 17:40

        Ola Euler!

        nao consigo conectar o esp a minha rede!
        Resposta no serial monitor:

        [WiFiEsp] Failed connecting to hot
        [WiFiEsp] Initializing ESP module
        [WiFiEsp] >>> TIMEOUT >>>
        [WiFiEsp] Warning: Unsupported firmware
        [WiFiEsp] Failed connecting to hot
        [WiFiEsp] Failed connecting to hot
        [WiFiEsp] Failed connecting to hot
        [WiFiEsp] Failed connecting to hot
        [WiFiEsp] Failed connecting to hot

        • Euler Oliveira Autor às 18:02

          Olá Floyd.

          Agradeço pelo comentário!

          Recomendo que verifique se inseriu corretamente no código os dados da rede WiFi e se definiu a taxa de comunicação em 9600 bauds para comunicação entre o ESP-01 e o Arduino.

          Confira também o esquema de ligação.

  6. Gustavo às 13:39

    Ola, deu tudo certo mas quando insiro o endereço IP dado pelo monitor serial no meu navegador, diz “Não é possivel acessar esse site” e que a conexão foi recusada, o que posso fazer para corrigir isso?

  7. Márcio Bastos às 10:49

    Bom dia!
    Parabéns pelo trabalho de vocês!

    Gostaria de saber se é possível converter o IP para um domínio qualquer?
    Estou tentando usar através do Jarvis.(comandos web)

  8. Ramon às 22:59

    Também estou tendo o TIMEOUT, ja atualizei a firmware do ESP e mesmo assim continua o problema, acredito que o problema possa ser com o divisor de tensão. Aliás, como funciona esse divisor de tensão, pq não faz diferença 1k ou 10k?

    • Euler Oliveira Autor às 10:55

      Olá Ramon.

      Agradeço pelo comentário!

      O problema de TIMEOUT geralmente ocorre devido a mau contato na protoboard, seja no divisor de tensão ou nas demais conexões.

      Faz diferença sim o valor do resistor, mesmo que a saída de tensão do divisor seja igual ao usar resistores de valor mais baixo ou de valor mais alto. Quando se usa resistores de valores muito baixos a dissipação de potência em cada resistor vai ser alta e a eficiência da malha será baixa, além disso, a malha de resistores irá exigir da fonte uma corrente muito alta.

      A malha de resistores deve consumir uma concorre bem menor que a corrente máxima de saída que pode ser fornecida pelo divisor de tensão. Se tratando do Arduino e plataformas similares, não há necessidade de montar um divisor que forneça um valor alto de corrente na saída. Os valores de divisores mencionados na postagem atendem perfeitamente ao ESP8266.

  9. Andreas às 16:11

    Olá Euler

    Não entendi ainda qual IP devo utilizar, gateway padrão? Máscara de sub-rede, ou endereço IPv4? O meu endereço IPv4 é 192.168.0.14, qual IP devo usar?

    • Euler Oliveira Autor às 16:48

      Olá Andreas.

      Agradeço pelo comentário!

      Você deve usar um endereço IP (IPV4) disponível dentro da sua rede.

      Se o DHCP estiver ativado no seu roteador, vai ter uma faixa de IP que é usada para identificar cada dispositivo na rede, logo, você deve atribuir ao código um IP desta faixa.

  10. Delcleciano às 11:23

    Bom Dia, eu resolvi o problema de ontem que dizia que eu estava tendo conflito com duas Serial , eu tentei em um outro computador baixei a ide de novo passei o código e tentei compilar quando copilei tive problemas no monitor serial , onde ele me acusava um erro de timeout igual do pessoal acima , ae ve que você pediu pro pessoal atualizar o firmware, mas não estou conseguindo atualizar , ele fica dando fail toda vez que aperto em start no flash dowload esp , já verifiquei as portas coloquei COM 3,2,1 e la no gerenciador de dispositivos o Arduíno ta como porta 3 e mesmo assim da fail, eu não possuo o adaptador serial, seria esse o motivo deu não conseguir atualizar o modulo wifi?? sem dizer que o modulo wifi esta com as duas luzes acessas tanto a vermelha como a azul.

    Não sei se pode ser esse o problema também mas meu push button é de 12x12x7.3 o que você utiliza no passo a passo é de 6x6x7 isso altera alguma coisa ??

    • Euler Oliveira Autor às 14:41

      Se montou o esquema de ligação com Arduino conforme a postagem, tem que funcionar.

      A não ser que o ESP-01 esteja com problema.

      Se estiver utilizando o Adaptador Conector 3.3V / 5V para o Módulo WiFi ESP8266 ESP-01, basta conectar o ESP-01 ao mesmo, ligar RX ao RX (0) do Arduino, o TX ao TX (1) do Arduino e alimentar o VCC e GND. Lembrando que no Arduino não pode estar sendo executado nenhum código que utilize a serial, pois a placa serve como ponte.

      • Delcleciano às 18:21

        Então pode ser que o modulo wifi aparenta estar com problemas mesmo, bem que poderia ter um jeito pra verificar mas acho que não tem, já o esquema de ligação esta idêntico ao da imagem se não tivesse certo as luzes do modulo wifi nem acenderiam as luzes azul e vermelha .

        Estou preocupado, pois mesmo se eu comprar outro modulo wifi e ele não funcionar vou ficar no prejuízo , e acredito que se eu comprar o Adaptador Conversor USB Serial TTL PL2303HX pra poder atualizar o meu modulo que já possuo, pode ser que ainda não consiga atualizar o firmware.

        Irei analisar melhor a situação pra vê o que compensa fazer, e muito obrigado pela ajuda mesmo com os problemas ganhei alguns conhecimentos .

    • Euler Oliveira Autor às 22:40

      Olá Pericles.

      Agradeço pelo comentário!

      Qual versão do Arduino está usando?

      Se for o Mega 2560, mude Serial1 para outro nome em todo o código.

Deixe uma resposta

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