Tutorial Módulo Wireless ESP8266 com Arduino 446

Com o Módulo Wireless ESP8266 você pode conectar o seu Arduino nas redes wireless 802.11 b/g/n, enviando e recebendo dados nos modos AP (Access Point/Ponto de acesso) e STA (Station), e neste tutorial vamos mostrar como configurar esse módulo como web server, enviando dados para um browser.

esp8266

Esse módulo se comunica com o microcontrolador utilizando interface serial e seu firmware pode ser atualizado, se necessário. Possui ainda 2 pinos GPIO (General Purpose Input Output, ou Entrada e Saída de uso geral), permitindo que o módulo seja programado diretamente e a GPIO acionada sem a necessidade de uso de um microcontrolador.

Outras características do Módulo Wireless ESP8266:

  • Conexão à redes padrão 802.11 B/G/N
  • Alcance aproximado: 91 metros
  • Tensão de operação : 3.3 VDC
  • Comunicação serial: pinos TX e RX
  • Modos de operação : Cliente, Access Point, Cliente+Access Point
  • Modos de segurança wireless : OPEN/WEP/WPA_PSK/WPA2_PSK/WPA_WPA2_PSK.
  • Suporta comunicação TCP e UDP, com até 5 conexões simultâneas

O módulo possui antena embutida e um conector de 8 pinos, além dos leds indicadores de funcionamento (vermelho) e comunicação (azul):

esp8266_indicativo

Atenção para o nível de sinal utilizado pelo módulo, que é de 3.3V, assim o pino RX (Recepção serial) não pode ser ligado diretamente ao Arduino. Você pode montar um divisor de tensão com dois resistores, utilizando o calculador deste link.

Ligação do módulo ESP8266 ao Arduino

Na ligação do ESP8266 com o Arduino usamos um resistor de 1K entre o Vcc (3.3V) e o pino CH_PD (Chip Enable). Para o divisor de tensão, utilizamos 2 resistores de 10K, o que diminuiu a tensão do nível de sinal para um valor suficiente para os testes. Os dois push-buttons do circuito serão utilizados para enviar informações à uma página web, utilizando um web server. Os resistores utilizados nos botões também são de 10K.

Circuito Arduino e módulo ESP8266

Recomendamos a utilização de uma fonte externa para alimentação do módulo, pois dependendo da situação ele pode exigir até 300mA de corrente, e o limite do Arduino é de 50mA.

Programa web server ESP8266

Antes de carregarmos o programa do web server, vamos alterar a velocidade de comunicação (baud rate) do módulo, que por padrão está setada em 115200 (firmware versão 0.9.5). Nessa velocidade, a biblioteca Software Serial não foi capaz de realizar a comunicação adequadamente, por isso alteramos a velocidade para 19200, utilizando o programa abaixo.

Na linha 17 colocamos a velocidade padrão (115200), e na linha 25 setamos a nova velocidade (19200):

// Programa: Versao firmware modulo ESP8266 e
//           mudanca de baud rate
// Autor : MakerHero

#include <SoftwareSerial.h>

//RX pino 2, TX pino 3
SoftwareSerial esp8266(2, 3);

#define DEBUG true

void setup()
{
  Serial.begin(9600);
  // Configure na linha abaixo a velocidade inicial do
  // modulo ESP8266
  esp8266.begin(115200);
  sendData("AT+RST\r\n", 2000, DEBUG);
  delay(1000);
  Serial.println("Versao de firmware");
  delay(3000);
  sendData("AT+GMR\r\n", 2000, DEBUG); // rst
  // Configure na linha abaixo a velocidade desejada para a
  // comunicacao do modulo ESP8266 (9600, 19200, 38400, etc)
  sendData("AT+CIOBAUD=19200\r\n", 2000, DEBUG);
  Serial.println("** Final **");
}

void loop() {}

String sendData(String command, const int timeout, boolean debug)
{
  // Envio dos comandos AT para o modulo
  String response = "";
  esp8266.print(command);
  long int time = millis();
  while ( (time + timeout) > millis())
  {
    while (esp8266.available())
    {
      // The esp has data so display its output to the serial window
      char c = esp8266.read(); // read the next character.
      response += c;
    }
  }
  if (debug)
  {
    Serial.print(response);
  }
  return response;
}

Nesse programa, é mostrado no serial monitor a versão de firmware do módulo e também se os comandos foram processados com sucesso:

Serial_monitor_Baud_Rate

No programa vamos utilizar a biblioteca SoftwareSerial para efetuar a comunicação com o módulo usando os pinos 2 (RX) e 3 (TX). Assim, podemos utilizar o serial monitor para acompanhar o envio dos comandos ao módulo. Na linha 18 do programa, substitua as informações de SSID (nome da rede wireless) e SENHA pelas informações da rede à qual o módulo irá se conectar.

// Programa: Web Server com modulo ESP8266
// Alteracoes e adaptacoes: MakerHero

#include <SoftwareSerial.h>

//RX pino 2, TX pino 3
SoftwareSerial esp8266(2, 3);

#define DEBUG true

void setup()
{
  Serial.begin(9600);
  esp8266.begin(19200);

  sendData("AT+RST\r\n", 2000, DEBUG); // rst
  // Conecta a rede wireless
  sendData("AT+CWJAP=\"SSID\",\"SENHA\"\r\n", 2000, DEBUG);
  delay(3000);
  sendData("AT+CWMODE=1\r\n", 1000, DEBUG);
  // Mostra o endereco IP
  sendData("AT+CIFSR\r\n", 1000, DEBUG);
  // Configura para multiplas conexoes
  sendData("AT+CIPMUX=1\r\n", 1000, DEBUG);
  // Inicia o web server na porta 80
  sendData("AT+CIPSERVER=1,80\r\n", 1000, DEBUG);
}

void loop()
{
  // Verifica se o ESP8266 esta enviando dados
  if (esp8266.available())
  {
    if (esp8266.find("+IPD,"))
    {
      delay(300);
      int connectionId = esp8266.read() - 48;

      String webpage = "<head><meta http-equiv=""refresh"" content=""3"">";
      webpage += "</head><h1><u>ESP8266 - Web Server</u></h1><h2>Porta";
      webpage += "Digital 8: ";
      int a = digitalRead(8);
      webpage += a;
      webpage += "<h2>Porta Digital 9: ";
      int b = digitalRead(9);
      webpage += b;
      webpage += "</h2>";

      String cipSend = "AT+CIPSEND=";
      cipSend += connectionId;
      cipSend += ",";
      cipSend += webpage.length();
      cipSend += "\r\n";

      sendData(cipSend, 1000, DEBUG);
      sendData(webpage, 1000, DEBUG);

      String closeCommand = "AT+CIPCLOSE=";
      closeCommand += connectionId; // append connection id
      closeCommand += "\r\n";

      sendData(closeCommand, 3000, DEBUG);
    }
  }
}

String sendData(String command, const int timeout, boolean debug)
{
  // Envio dos comandos AT para o modulo
  String response = "";
  esp8266.print(command);
  long int time = millis();
  while ( (time + timeout) > millis())
  {
    while (esp8266.available())
    {
      // The esp has data so display its output to the serial window
      char c = esp8266.read(); // read the next character.
      response += c;
    }
  }
  if (debug)
  {
    Serial.print(response);
  }
  return response;
}

Acompanhe no serial monitor as informações de conexão ao access point (AP) e também o endereço IP obtido pela placa.

Serial Monitor

Para testar o funcionamento do circuito, abra um browser (Chrome, Firexox, etc) e digite na barra de endereços o endereço IP que foi mostrado no passo anterior, no nosso caso, 192.168.0.27:

ESP8266 - Browser

Acione os botões do circuito para que as informações correspondentes sejam enviadas ao browser. Devido à taxa de atualização, as informações podem demorar alguns segundos para aparecer na tela. Abaixo, temos uma imagem do circuito que utilizamos para montar este post:

esp8266_circuito

Gostou? Deixe seu comentário logo abaixo.

Esse e outros módulos ESP8266 você encontra em nossa loja.

Faça seu comentário

Acesse sua conta e participe

446 Comentários

  1. Olá
    O segundo programa só me retorna
    )))⸮⸮J⸮)⸮⸮⸮⸮J⸮⸮⸮⸮⸮⸮⸮))⸮⸮R⸮⸮⸮⸮⸮
    Desde já grato pela atenção

  2. Olá estou rodando o primeiro código e esta ocorrendo a seguinte saída:
    AT+RST

    OK

    ets Jan 8 2013,rst cause:2, boot mode:(3,7)

    load 0x40100000, len 27728, room 16
    tail 0
    chksum 0x2a
    load 0x3ffe8000, len 2124, room 8
    tail 4
    chksum 0x07
    load 0x3ffe8850, len 9276, room 4
    tail 8
    chksum 0xba
    csum 0xba
    ⸮⸮⸮l⸮⸮⸮l`⸮⸮⸮p⸮⸮⸮⸮l`⸮⸮⸮p⸮⸮⸮⸮ll`sl⸮⸮o⸮
    ready
    Versao de firmware
    AT+GMR

    AT version:1.1.0.0(May 11 2016 18:09:56)
    SDK version:1.5.4(baeoi0:OAT+⸮RJU⸮⸮ʒ⸮⸮j

    ERROR

    ** Final **

  3. Olá.

    Estou tentando fazer o primeiro programa funcionar (o que deveria mostrar a versão do firmware). Entretanto, algo está dando errado, pois no Serial não estão aparecendo os resultados do comandos AT. Aparece apenas o seguinte:

    Versao de firmware
    ** Final **

    Meu módulo esp8266 está sendo alimentado com uma fonte externa de 3.3V e 210 mA. Já chequei algumas vezes e todas as conexões do circuito batem com o esquema apresentado no tutorial. O LED do esp8266 pisca ao ligá-lo e algumas vezes durante a execução do programa.

    Vocês teriam alguma ideia do que pode ser? Qualquer ajuda é bem-vinda, pois estou há dias procurando possíveis erros.

    Obrigado

    1. Olá Eber!

      Tinha um pequeno erro no código devido as versões mais novas do firmware de comandos AT.

      Tente agora, acredito que irá funcionar.

      Abraços!
      Vinícius – Equipe MakerHero

      1. Olá Vinícius.

        Obrigado pelo retorno.

        Infelizmente ainda não consegui fazer funcionar. Atualmente, estou obtendo a seguinte saída no monitor serial ao rodar esse primeiro programa:

        ⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮Versao de firmware
        ⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮** Final **

        Estou alimentando o ESP8266 com uma fonte externa de 12V e 1A conectada àquela plaquinha que converte para 3,3V da loja de vocês (Fonte Ajustável Protoboard)

        Será que eu preciso fazer algum update de firmware do ESP8266? Eu simplesmente comprei ele e já conectei no Arduino, sem fazer nada antes.

        Att,
        Éber

        1. Aliás, é normal o LED do ESP8266 dele ficar piscando quando os cabos estão conectados, mesmo quando não está havendo troca de dados?

        2. Olá Éber!

          No caso do ESP-01 em geral não é preciso fazer nenhum update de firmware, ele vem por padrão com o firmware de comandos AT.

          Pode ser que seu módulo esteja com outra taxa serial que não 115200. Você pode tentar outras taxas na linha 17. Há uma lista de taxas padrão no monitor serial.

          Abraços!
          Vinícius – Equipe MakerHero

    2. Olá Eber,

      Eu obtive o mesmo problema e consegui resolvê-lo. Pelo tempo desde sua publicação acredito que já tenha resolvido o seu problema também, mas vou deixar aqui a solução do meu problema caso isso ocorra com alguém no futuro.

      Descobri que o erro estava acontecendo pois eu estava utilizando um Arduino Mega ao invés de usar um Arduino Uno. Como este programa utiliza a biblioteca SoftwareSerial, vale lembrar que o Arduino MEGA não utiliza os mesmos pinos que o Arduino UNO (eu tive que usar o pino 50 do meu Arduino Mega como RX).

      Além disso, tive que alterar o BaudRate da linha 17 (do primeiro código) para 19200.

      Espero que eu ajude alguém no futuro! Rsrsrs
      Att.
      Matheus Antonio da Silva – Equipe SuperMaker

  4. boa noite podem me ajudar.
    Estou a desenvolver um projeto com o Arduíno esp8266 e o Arduíno NEO 6M, com o aplicativo Blynk para a minha PAP em Portugal. Este projeto é do final de curso do Técnico Profissional.
    Quando compacto a programação para o esp 8266, ele depois não me mostra a localização, podem ajudar-me?
    Obrigado

    1. Olá Afonso,

      Você pode lançar a sua ideia e dúvidas na nossa comunidade do Facebook, por lá o pessoal Maker está compartilhando conhecimento e projetos. Veja só: https://www.facebook.com/groups/272908123918982

      Abraços!
      Vinícius – Equipe MakerHero

  5. Boa tarde FIlipe sabe me informar se é aconselhável aplica as ESP8266 em industrias?

    1. Olá Manoel,

      Vai depender das condições ambientes e de ruído elétrico da indústria, mas analisadas essas questões, acredito não haver razões que impeçam o uso em industrias.

      Abraços!
      Vinícius – Equipe MakerHero

  6. Boa tarde a todos, tenho um sistema de automação de aquário que funciona com aplicativo via internet shild W5100 e Arduíno Uno e queria mudar para ESP 8266.
    Preciso de ajuda, alguém poderia me auxiliar de como poderia ser feito essa mudança, tipo programação do ESP ou alteração no código fonte do Arduíno e continuar usando o aplicativo ?
    Desde já agradeço.

    1. Carlos,

      Você precisa ver exatamente o que está sendo feito com o W5100 e a partir daí fazer a troca para o ESP, utilizando basicamente os mesmos passos (a lógica) com outro código. É um processo que vai exigir um pouquinho de “pensamento”, mas funciona 😀

      Abraços!
      Diogo – Equipe MakerHero

  7. Matéria muito boa mesmo. Merecia uma atualização. O código só funciona com ajustes. Seria também interessante excplicar tudo e citar as fontes.

  8. Boa tarde Adilson.
    Excelente post. bem esclarecido. Parabéns.
    Você tem algum post para enviar comandos do PC para o Arduino via WIFI?
    Acredito que o hardware para comunicação seja o mesmo, bastando substituir os botões por leds e alterar o código.
    Obrigado.

  9. Senhores Boa Tarde
    Estou rodando no Arduino Uno a rotina “Lendo Botões por Wifi com ESP8266” e alterei a rotina na linha do setup a velocidade para 115200 (esp8266.begin(115200) e no final inseri o retorno para 19200 da seguinte forma:

    Após o comando do: sendData(“AT+CIPSERVER=1,80\r\n”, 1000, DEBUG);
    Inseri o comando para alterar a velocidade conforme a seguir:

    // Configure na linha abaixo a velocidade desejada para a
    // comunicacao do modulo ESP8266 (9600, 19200, 38400, etc)
    sendData(“AT+CIOBAUD=19200rn”, 2000, DEBUG);

    O led de comunicação do ESP8266 “pisca” algumas vezes na execução da rotina.

    Com isto não “deu” erro na carga para o Arduino Uno porém, não consegui ver o endereço IP no monitor serial.

    Segue o resultado no monitor serial:

    OK

    ets Jan 8 2013,sst cause:2, boot mode:(3,6)

    load 0x40100000,n6tail 0
    chksum 0x2a
    load 0x3ffe8000, len 2124, room 8
    tail 4
    chksum 0x07
    load 0x3ffe8850, len 9276, roo4tail 8
    chksum 0xba
    csum 0xba
    ⸮⸮⸮p⸮⸮⸮⸮l`⸮⸮⸮l⸮⸮⸮l`⸮⸮⸮x⸮⸮⸮⸮ll`sl⸮⸮o⸮
    ready
    AT+⸮⸮⸮P⸮⸮⸮⸮⸮T⸮U:}% I⸮b⸮⸮ٽɂ⸮⸮j
    WIFI DISCONNECT
    AT+CWMODE=1
    busy p…
    AT+CIFSR
    busy p./.
    AT+CIPMUX=1
    busy p…
    AT+CIPSERVER=1,80
    busy p…
    AT+CIOBAUD=19200rn

  10. Olá Adilson,
    muito legal e didático o post de conectar o ESP8266.
    Eu comprei a ESP-201 e segui esses passos mas sem resultado.
    Como no post a placa ESP8266 usada parece ser uma ESP-01 eu pergunto: O procedimento desse post também é aplicável à ESP-201?

    Atenciosamente
    Ricardo

    RICARDO JOSE DO REGO BARROS
  11. Boa tarde, estou tentando com o código acima testar uma placa ESP8266, usando um adaptador ESP-01, mas somente aparece as seguintes mensagens:

    Versao de firmware
    ** Final **

    tentei conectar usando os resistores e protoboard, mas sem diferencas. Alguma dica?

  12. Oi Adilson,
    Bom dia!

    Primeiramente, parabéns pelo excelente tutorial!

    Gostaria de saber como faço para ligar um ESP8266 Wemos D1 Mini ao Uno?
    Quero ligá-lo para testar o projeto #15 Dado Eletrônico por exemplo e enviar informações para um servidor de IoT na nuvem como o Azure IoT Hub.

    Desde já, obrigado!

    1. Hugo,

      Em tese você poderia fazer o dado eletrônico na própria Wemos.

      Abraços!
      Diogo – Equipe MakerHero

  13. Oi Adilson,
    Bom dia!

    Como faço para ligar um ESP8266 mini ao Uno?
    Gostaria de ligá-lo para testar o projeto #15 Dado Eletrônico por exemplo e enviar informações para um servidor de IoT na nuvem, por exemplo o Azure IoT Hub.

  14. Adilson, Boa noite.
    Consigo utilizar o arduino com respectivo Módulo Wireless ESP8266 como um repetidor de internet da vivo, o alcance do molden que tenho em casa e pouco e não tenho internet em minha oficina . Se sim voce teria o programa ?

    1. É possível sim.
      Você precisa configurar como Access Point: https://techtutorialsx.com/2017/04/25/esp8266-setting-an-access-point/

      Abraços!
      Diogo – Equipe MakerHero

  15. Esse exemplo aplica-se também ao Shield ESP8266 ESP12E?
    Precisa de alguma modificação?

    1. Wanderlei,

      Funciona sim!

      Abraços!
      Diogo – Equipe MakerHero

  16. Queria conectar dois microcontroladores em uma rede e transmitir informações entre eles aonde , um deles irá pegar as variáveis da outra e determinar um camando como acender um led como eu poderia fazer isso ? No seu programa os dados vão para uma página web apenas.

  17. Olá!

    Possuo uma placa de Arduino MEGA e estarei usando o shield V5 nela para controle de uma garra robótica que será controlada via wifi. Entretanto, o shield V5 “tampa” as entradas ICSP e também os pinos que são utilizados para ligar o módulo ESP8266.

    Teria algum modo alternativo para eu ligar o módulo ESP8266 com o shield V5 na placa?

    Obrigado.

    1. Thmagnum.e

      A única forma que encontro para esse problema seria soldar alguns jumpers por baixo da placa. É uma solução feia, mas como os pinos estão inacessíveis devido o shield, é por aí.

      Abraços!
      Diogo – Equipe MakerHero

  18. Nesse primeiro código na qual é feita a mudança de baud rate, não funcionou comigo.

    1. Ronaldo,

      A mudança simplesmente não ocorre? Como acontece?

      Abraços!
      Diogo – Equipe MakerHero

  19. Vou utilizar o esp8266 com um sensor de nível de água, da qual usei o serial pra mandar a.msg do nível de água, consigo utilizar esses msm cod

    1. Thaís,

      Você poderia usar partes dele, e adaptar algumas para o seu sensor.

      Abraços!
      Diogo – Equipe MakerHero

  20. Bom dia, o meu modulo wifi não se conecta a rede, nem mostra a versão do frimware e nem muda a velocidade para 19200.
    Eu segui todos os passos do site. Alguém poderia me dar uma solução?

    Gustavo Benevenuto de Oliveira
    1. Gustavo,

      Acontece algum tipo de erro?

      Abraços!
      Diogo – Equipe MakerHero

  21. Boa noite. Estou realizando alguns testes e o serial monitor retorna a seguinte situação, como se apenas escrevesse os comandos, um após o outro…..

    AT+RSTrnAT+CWJAP=TPLINK,38362945rnAT+CWMODE=1rnAT+CIFSRrnAT+CIPMUX=1rnAT+CIPSERVER=1,80rn

    O que poderia ser?

    Obrigado

    1. Olá, Leandro.

      Já tentou ativar a caixinha “Nova Linha” ali mesmo no monitor serial?

      Abraços!
      Diogo – Equipe MakerHero

      1. Boa noite,

        Obrigado pelo retorno.

        Esta com “Both NL e CR” selecionado

        1. Leandro,

          Você fez alguma modificação no código?

          Abraços!
          Diogo – Equipe MakerHero

  22. Olá boa noite, essa informação é show de bola. Mas quero saber o seguinte, vc pode me dizer se consigo configurar ele pra me enviar uma informação por email?

    1. Rodrigo,

      Você pode testar esse projetinho para enviar email!

      Abraços!
      Diogo – Equipe MakerHero

  23. Nossa nação tem muito plumitivo bom e você é um deles.
    Agradeço a web por me presentear a oportunidade de saber seu sítio e poder regressar.

  24. Boa tarde, ótima matéria muito esclarecedora,mas ainda tenho uma duvida Sr. Adilson seria possível com este dispositivo enviar áudio para o Smartphone ou informações ???
    Grato,
    Geovane

    1. Olá Geovane,

      É possível sim 🙂

      Abraço!
      Rosana – Equipe MakerHero

  25. Bom dia! Como posso ligar uma fonte externa no módulo ESP8266EX visto que o datasheet do mesmo exige 80mA, enquanto o arduino só consegue me fornecer 50mA?

    Vocês tem alguma indicação de fonte externa? Estou com medo de queimar o módulo….

    1. Eu usei uma dessas aqui neste projeto, funcionou muito bem.

      Alias, projetinho awsome!! Funcionou belezinha!! Só precisei trocar os valores dos resistores do divisor de tensão do RX, por 2,2K e 1K, respectivamente ligados ao GND e a porta 3 do arduino.

      Abraço!

      1. Olá Fernando,

        É muito bom saber que gostou do nosso trabalho 😀

        Abraço!
        Rosana – Equipe MakerHero

  26. oi tem algum tutorial similar usando a esp8266 12f? ja tentei de tudo aqui mas nada de funcionar

    1. Olá Leonardo,

      Já deu uma olhada nesse tutorial aqui? https://www.makerhero.com/blog/esp8266-nodemcu-como-programar/

      Abraço!
      Rosana – Equipe MakerHero

  27. ready

    Versao de firmware
    AT+GMR
    AT versioo:1.3.0.0(Jul 14 2016 18;54:01)
    SDK version:2.0/8
    2
    AT⸮⸮RJU⸮⸮ʒ⸮⸮j

    ERRORC⸮
    ** Final **

    1. Olá Celso,

      Dê uma olhada nesse tutorial, acho que vai te ajudar: https://www.makerhero.com/blog/upgrade-de-firmware-do-modulo-esp8266/

      Abraço!
      Rosana – Equipe MakerHero

      1. Olá Rosana, obrigado pelo retorno.
        Na sessão: “Preparação do ESP Flash Download Tool”
        quando vou clicar em “START” para sincronizar a COM3 (verifiquei e q minha com é a COM3)
        aparece “FAIL” e por consequencia não mostra nada em “DETECTED INFO”
        A única diferença que eu estou fazendo é usando a saida de 3.3v do proprio arduino

        Outro detalhe é que os comando AT e AT+GMR não mostram nada de retorno.

        1. Olá Celso,

          Eu recomendo que você use uma alimentação externa nesse caso. Em alguns casos o Arduino não consegue entregar corrente suficiente para o funcionamento do ESP8266.

          Abraço!
          Rosana – Equipe MakerHero

  28. 2019-04-30
    Nada mais funciona…
    poderia verificar algo mais atualizado por favor?

  29. Estava tendo problemas com a exibição da resposta do firmware pois tentei até a atualização de firmware, mas somente agora, vi que o esquema de ligação apresentado no site esta incorreto pois para ambas portas 2 (rx) e 3(tx) são necessárias a conversão para a tensão de 3.3 para conectar ao ESP8266 e a porta CH_PD deve estar conectado diretamente ao 3.3.
    Em breve irei comentar um link registrando as etapas e contendo os esquemas atualizados para facilitar e solucionar alguns dos problemas relatados.

    1. Olá Filipe,

      Obrigada pelo comentário! Acredito que a utilização de conversor de nível lógico (https://www.makerhero.com/pd-14770b-conversor-de-nivel-logico-3-3-5v-bidirecional.html) pode ajudar na comunicação com o Arduino.

      Abraço!

      1. Sim, Rosana. Grato pela atenção
        O exemplo do AT funciona, mas os exemplos de Web dizem que nao tem shield (uso adaptador pra 4 pinos: gnd, vcc, rx, tx).
        O exemplo2 do link que mandou dá erro na linha 18
        Testado com Arduino Nano (oldbootloader) e Mega, no IDE 1.8.9 em Linux e Windows.
        To desesperado. Meu projeto nao anda por causa disso

  30. Não tem como comunicar com o Arduíno diretamente, sem ter que utilizar Web server?

    JOEL ALEXANDRE DA ROSA REALINO
    1. Olá Joel,

      No nosso blog há diversas postagens sobre o ESP8266. Você pode dar uma olhada nesse post para saber mais sobre o ESP8266: https://www.makerhero.com/blog/guia-do-usuario-do-esp8266/

      Abraço!
      Rosana – Equipe MakerHero

  31. Olá, boa tarde…vendo este tutorial me surgiu uma dúvida: e se caso eu precisar usar os pinos TX/RX do arduino para outra função? ou será que no setup serial esta configuração do pinos 3 e 2 desabilitam os pinos TX/RX? fico no aguardo desta dúvida

    1. Olá!

      Os pinos de serial são o 0 e 1. Colocamos nos 2 e 3 justamente para poder liberar esses pinos.

      Você pode escolher outros, se precisar.

      Abraços!

      André – Equipe MakerHero

  32. Boa noite, não entendi a sintaxe para escrever o nome da rede e a senha. Eu deveria trocar:
    sendData(“AT+CWJAP=”SSID”,”SENHA”rn”, 2000, DEBUG);
    por
    sendData(“AT+CWJAP=”nome da minha rede”,”minha senha”rn”, 2000, DEBUG);

    ? Mas me parece q esta sobrando ou faltando alguma aspas.
    Obrigado

    1. Olá Leonardo!

      Deu algum erro? A princípio é isso mesmo.

      sendData(“a AT+CWJAP=”b nome da minha rede b”,”c minha senha c”rn a”, 2000, DEBUG);

      Abraços!

      André – Equipe MakerHero

  33. Eu comprei esse módulo separado do arduino, e também comprei o Nodemcu já incorporado ao arduino. Tenho um domínio onde eu envio os dados de um sensor de temperatura e umidade por um Nodemcu e outro Node mcu que lê valores do banco de dados do domínio e aciona cargas em casa. Porém eu tenho um problema de tempo de espera para enviar os sinais e receber o feedback do banco de dados, isso interrompe as atividades do arduino e ele fica aguardando todo processo de transmissão e recepção de dados. O que preciso é disponibilizar esses dados do arduino para o ESP8266, e não ficar aguardando a resposta, e continuar fazendo outros acionamentos e enquanto isso o ESP8266 faz o acesso ao banco de dados e entrega os valores que o Arduino forneceu e coleta os valores que estão disponíveis no banco de dados e deixa disponível para o arduino ler quando o scan passar. Em resumo, seriam dois equipamentos fazendo cada um tipo de atividade, pois para o arduino, interessa escrever em um endereço para o ESP8266 e continuar o scan e sempre estar lendo o endereço leitura para ver se houve alteração.

  34. Muito bom, espero ler mais como este!

    1. Olá Renato!

      Obrigado pelo reconhecimento!!

      Abraços!

      André – Equipe MakerHero

  35. Bom dia,
    Estou com esse erro para a linha 18: sendData(“AT+CWJAP=”SSID”,”SENHA”rn”, 2000, DEBUG);
    Erro: user-defined literal suffixes ‘SSID’ and ‘SENHA’ in string literal
    Alguém teve o mesmo problema?

    Obrigado

    1. Olá Leonardo!

      Você experimentou copiar todo o código novamente?

      Chegou a fazer alguma alteração?

      Abraços!

      André Rocha – Equipe MakerHero

      1. Olá André,
        Tentei sim, inclusive desinstalei a ide do arduino e instalei novamente para ter uma instalação limpa e descartar problemas de biblioteca SofwareSerial, mas continua errado. Copiei e compilei novamente o código e dá o mesmo erro.
        Se eu comentar a linha 18, compila sem erros, mas não vai conectar nada pois é a linha da conexão na rede sem fio.
        Alguma outra idéia?

        Obrigado.

      2. André, agora consegui fazer a compilação funcionar na linha 18, problema de ” e ‘…fiz assim e passou a compilação, e o led azul de comunicação está piscando…embora a saída na serial esteja cheia de ????
        veja a linha corrigida e funcionando:
        sendData(“AT+CWJAP=’SSID’,’SENHA’rn”, 2000, DEBUG);
        aspas duplas somente antes do AT e depois do rn…o restante aspas simples.

        Continuo tentando sanar o problema da saída no monitor serial.que está assim: ԩ⸮R⸮J⸮⸮⸮⸮⸮⸮⸮⸮⸮R⸮⸮⸮⸮R⸮⸮⸮⸮⸮R)⸮⸮
        Alguma idéia?
        Obrigado

      3. Não sei se o problema da saída no monitor serial para o programa do webserver tem relação com o programa do update de firmware…
        no meu update de firmware, compila sem erros, mas a saída do monitor serial é assim:
        AT+SSTVersao de firmware
        AT+GMRAT+CIOBAUD=9600snAT+GMRrn
        ** Final **
        Já alterei a velocidade na linha 26 (sendData(“AT+CIOBAUD=9600rn”, 2000, DEBUG)) para diversas diferentes de 9600, porém sem melhores resultados…parece que os comandos AT não estão sendo executados.
        Alguma idéia?
        Obrigado.

        1. Olá Leonardo!

          Me parece muito problema de velocidade (baud rate) mesmo. Como você está fazendo essa comunicação serial? Através do Arduino mesmo? No monitor serial, você testou diferentes velocidades?

          Abraços!

          André – Equipe MakerHero

    2. Leonardo, acredito que a forma como foi inserida o código aqui na página acabou apagando as contra barras. Refiz o tutorial e também tive muita dificuldade mas no fim consegui \o/

      Especificamente no teu problema da linha 18: O SSID e a senha obrigatoriamente precisam ser incluídos com duplas aspas. Entretanto o comando sendData já envia a string também com duplas aspas. Se você quer colocar “aspas dentro de aspas” é necessário colocar uma contra barra antes. No meu caso ficou assim:
      sendData(“AT+CWJAP=\”SSID\”,\”senha\”\r\n”, 2000, DEBUG);

      Espero poder ter ajudado.

  36. No site da MakerHero tem um adaptador para o módulo ESP que transforma 5V em 3,3V pra possibilitar alimentação pelo arduino. A minha dúvida é o que ocorre com a corrente? A corrente na alimentação de 5V é de 800mA. Esse adaptador mantém essa corrente? Pq é necessário ter pelo menos 280mA pra alimentar o módulo ESP. Desde já agradeço

    1. Olá André! Bonito nome!

      Essa especificação de 5 V e 800 mA é o mínimo. Mas em toda conversão existe perda de energia, como nesse caso é baixa, a eficiência não precisa ser muito alta.

      Abraços!

      André Rocha – Equipe MakerHero

  37. como eu faco isso pelo ide do arduino sem utilizar o arduino, somente o esp01?

    me ajuda

    criei um ap com ip 192.168.4.1 ate a i tudo ok, funciona a primeira vez, mais quando perto o botao para enviar nomente um contador por exemplo de aprto do botao para web nao vai como faço para ele fica atualizndo sempre, ou seja o ip fica escutando sempre .

    1. Olá Rodrigo!

      Para programar diretamente o ESP8266, você vai precisar desse produto:
      https://www.makerhero.com/produto/adaptador-usb-para-modulo-wifi-esp8266-esp-01/

      Sugiro dar uma olhada nesse tutorial, ele pode te ajudar:
      https://www.makerhero.com/blog/guia-do-usuario-do-esp8266/

      Abraços!

      André Rocha – Equipe MakerHero

  38. Oi, estou tentando utilizar o código e estou tendo o seguinte erro:

    [WiFiEsp] Initializing ESP module
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] End tag not found
    [WiFiEsp] Warning: Unsupported firmware
    [WiFiEsp] >>> TIMEOUT >>>
    Attempting to connect to WPA SSID: MobiLab
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] Failed connecting to MobiLab
    Attempting to connect to WPA SSID: MobiLab
    [WiFiEsp] Connected to MobiLab
    You’re connected to the network
    Attempting MQTT connection…[WiFiEsp] Connecting to 192.168.25.101
    [WiFiEsp] >>> TIMEOUT >>>
    failed, rc=-2 try again in 5 seconds
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] No tag found
    Attempting MQTT connection…[WiFiEsp] Connecting to 192.168.25.101
    [WiFiEsp] >>> TIMEOUT >>>
    failed, rc=-2 try again in 5 seconds

    Comprei o módulo aqui mesmo, poderia informar algum firmware compatível? ([WiFiEsp] Warning: Unsupported firmware )

    Grato!!

    1. Ops estava com um programa diferente. Desconsiderem a pergunta.

  39. O meu sendData não está sendo reconhecido como um comando nativo do compilador, oque faço??

    1. Olá Ronaldo!

      Parece ser um problema de biblioteca. Você está adicionando alguma ao programa?

      Abraços!

      André Rocha – Equipe MakerHero

  40. ola Adilson meu nome é Iandes por favor da pra fazer um projeto com o nextion piscando varios lds para estudo.

  41. Boa noite!
    Pessoal, tem o seguinte ERRO nas Sketches acima: devem ser substituidos os rn por \r\n
    Exemplo:
    sendData(“AT+CIPMUX=1rn”, 1000, DEBUG); //ERRADO
    sendData(“AT+CIPMUX=1/r/n”, 1000, DEBUG);//CORRETO

    Alem disso, só funcionou para mim quando a velocidade de comunicação foi alterada para 9600 nas duas Sketches

  42. Olá, Boa Noite. Sou Gustavo.

    Atualizei os campos na linha 18 da seguinte forma (dados ficticios aqui)

    sendData(“AT+CWJAP=”rede”,”senha”rn”, 2000, DEBUG);

    e dá o seguinte erro antes de carregar:

    exit status 1
    unable to find string literal operator ‘operator””rede’

    Onde estou errando?

    Gustavo Spolon Cavalini Junqueira
  43. Gostaria de saber o por que nao é usado os pinos RX e TX do arduino? pinos 0 e 1 respectivamente!

    1. Olá Murillo!

      Porque nos pinos 0 e 1 estão a comunicação com o computador.

      Abraços!

      André – Equipe MakerHero

  44. Boa noite,
    Estou com um problema. Após a execução do codigo, não aparece nada no meu “monitor serial” e os testes não funcionam. Gostaria de saber o motivo.

    Obrigado

    1. Olá Gabriel!

      Você pode colocar esse problema com mais detalhes no nosso fórum? Lá o pessoal pode te ajudar melhor nisso.

      https://www.makerhero.com/forum/

      Abraços!

      André – Equipe MakerHero

  45. Alguem conseguiu fazer rodar no Arduino MEGA… Não consigo de jeito nenhum e preciso demais fazer essa comunicação… Alguém me socorre….Rsrsr

  46. Ótimo artigo, faltou apenas o “\r\n” no código para funcionar corretamente.

     

  47. Comprei um esp8266 recente (2018/junho) aqui na FF e só consegui sucesso colocando  esp8266.begin(74880); como baudagem inicial.

  48. Fiz a montagem correta e estou colocando o código para mudar a velocidade de comunicação, no entanto não estou obtendo o msm resultado que esta descrito no site, alguém ai teve o mesmo problema e conseguiu solucionar? [email protected]

    1. Olá Clinton!

      Você pode fazer um post no nosso fórum? https://www.makerhero.com/forum/

      Por favor, coloque em detalhes tudo o que você está fazendo, fotos do circuito e programa que esse tipo de problema é mais fácil resolver por lá.

      Abraços

      André – Equipe MakerHero

  49. sendData(“AT+CWJAP=”RASPBERRY”,”ELivany1992reis”rn”, 2000, DEBUG);

    Boa noite

    Usando o codigo acima descobri um erro no mesmo como no trecho que anexei acima

    devido ter as duas aspas dupla no ssdi e na password termina dando erro na hora de compilar

    correto seria assim…

    sendData(“AT+CWJAP=’RASPBERRY’,’ELivany1992reis’rn”, 2000, DEBUG);

  50. Estou  obtendo a seguinte resposta quando rodo o programa:

    Versao de firmware
    ** Final **

    teria alguma dica sobre o que posso fazer para conseguir mudar a velocidade da comunicação?

  51. Adilson, boa noite.

    Por favor, gostaria de saber se o baud rate de comunicação pode ser diferente do baud rate do Arduino. Ouvi falar que da conflito e que ambos os dispositivos tem que trabalhar na mesma velocidade de comunicação.Obrigado.

    1. Olá Sergio!

      Para as duas placas se comunicarem elas “combinam” uma velocidade em que vão mandar os dados (baud rate).

      Se uma está esperando uma velocidade e a outra manda mais rápido ou mais devagar elas não conseguem se comunicar.

      Portanto, é necessário que ambas estejam na mesma velocidade.

      Abraços

      André – Equipe MakerHero

  52. Estou tentando o comando AT+CWLAP? pelo serial, porém apenas é retornado “no this fun”, e não a lista
    de redes wifi disponíveis.

  53. Eu criei uma pagina web fora do codigo do arduino, como faço pra me comunicar com ela usando esse modulo wifi??

  54. Oi. A linha 18 do código do webserver dá erro:

    exit status 1
    inconsistent user-defined literal suffixes ‘SSID’ and ‘SENHA’ in string literal

    Como se resolve, por favor?

    1. E um warning:

      D:\Humberto\Documents\sketch_apr26a\sketch_apr26a.ino:35:29: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

      if (esp8266.find(“+IPD,”))

  55. Olá a todos…
    Sou novato no mundo Arduino e IoT. Lí o post a acima e gostei muito, agradeço por disponibiliza-lo.
    Estava fazendo algumas alterações para ser adaptado a um projeto caseiro mas estou encontrado a seguinte mensagem de erro:

    sketch_feb23a:18: error: expected ‘;’ before ‘)’ token

    sendData(“AT+CWJAP=”Marcelo”,”xxxxxxxx”rn”, 2000, DEBUG); //inserir o nome da rede e a senha

    ^

    exit status 1
    expected ‘)’ before ‘Marcelo’

    Preciso de ajuda sobre o que fazer, pois simplesmente copiei e colei e inseri no lugar do SSID o nome da rede e onde está ‘x’ seria a minha senha.

    Fico no aguardo, obrigado!!!

    1. Boa noite,

      Estou com o mesmo problema ao utilizar o fonte disponibilizado, alguém poderia auxiliar nessa questão?

    2. Boa noite,

      Marcelo, tente inserir barras conforme código abaixo:

      sendData(“AT+CWJAP=\”LOGIN\”,\”SENHA\”\r\n”, 2000, DEBUG)

      Ainda não consegui comunicar pois estou adaptando o código ao meu projeto, mas na validação não ocorre erro.

      Alguém que conheça mais da linguagem, poderia nos auxiliar nessa questão?

  56. gostaria de um programa em que o esp pudesse pegar informações de um site
    por exemplo: fiz um site em html e estou utilizando em servidor local, gostaria de saber se tem como o esp pegar informações desse site em que eu criei
    desde já agradeço; caso possa responder no meu e-mail também agradeço

  57. excelente ! Como eu faço pra usar esse modulo juntamente com meu Mega, para atualizar a programação que está no mega, ou seja, o firmware dele, via wifi ?

  58. Nesse tutorial, o arduino envia dados para o browser. É possível enviar comandos do browser para o arduino? (Acionar uma porta digital, por exemplo)

  59. Adilson.

    Lendo os chats notei que vários tiveram o mesmo problema com o retorno da alteração de velocidade mostrando somente a primeira e a ultima mensagem.
    Tentei varias as velocidades e nada. Ou seja, não sei qual a versão do firmware da minha placa.
    De qq forma segui em frente e compilei o segundo código que tem erro na sintaxe. Alterei conforme abaixo:

    sendData(“AT+CWJAP=\”SSID\”,\”SENHA\”\r\n”, 10000, DEBUG);

    e ai passou, porém sem nenhum retorno no monitor, mesmo alterando as velocidades.

    Alguma dica??

  60. Olá
    Tem como conectar esse módulo ao celular para enviar comandos do celular e então o móculos enviar ao arduíno?

    1. Um jeito de conseguir isso seria conectar o celular na mesma rede em que o ESP8266, ai é possível enviar comandos GET para executar as ações.

  61. Olá,

    Alguém aqui já fez a ligação do módulo wireless esp8266 esp-01 para o arduíno UNO por meio do adaptador para módulo wireless? Teoricamente seria até mais fácil, pois o adaptador usa apenas 4 pinos para ligar ao arduino(GND,VCC,TX,RX). Fiz a ligação do GND e do VCC diretamente, pois o adaptador já faz a redução para 3,3v, e os pinos TX e RX para as portas digitais 2 e 3 respectivamente. Para programar utilizei a biblioteca WeeESP8266 (ITEADLIB). Testei com o programa de exemplo que vem com a biblioteca. Alguém pode me ajudar? Desde já sou grato.

  62. Utilizem \r\n (barra R barra N) no final das mensagens. Da forma como está (rn) não funciona.

  63. Bom dia. Quando conectei o ESP começou a esquentar bastante. Percebi que era por conta do CH_PD. Quando conecto esse pino da forma como está no diagrama o ESP aquece muito. Medi com multimetro e está chegando 3,04 V no pino CH_PD (pela lógica está correto certo?). No divisor de tensão está dando 3,45 V.

    Alguma dica?

  64. NO PRIMEIRO CODIGO PORQUE FICA RETORNANDO UM MONTE DE CARACTERE ESQUISITO NO MONITOR SERIAL

  65. quero um kit, o que faço para obter ?

  66. Olá, parabéns pelo tutorial…porém estou com um problema na programação, quando, vu complinar ele da erro na linha onde se poem o nome da rede e a senha.

  67. No pino 2 eu usei um resistor de 10K ao invés de 1K, isso pode danificar meu modulo? pois o mesmo só mostra Versão de firmware e **final **

  68. Tem como eu saber o valor do sinal da pontência do wifi?

  69. Bom dia, é possível selecionar a rede e colocar a senha em tempo de execução usando o arduino?

  70. Olá, adquiri junto a 8266 o ESP01 Adapter. Com isso tenho apenas 4 pinos: VCC, GND, Tx e Rx. Usando o mesmo código, conectei diretamente:
    Adapter Tx = Arduino 03
    Adapter Rx = Arduino 02
    Adapter GND = Arduino Power GND
    Adapter VCC = Arduino Power 3,3v

    A 8266 liga (led vermelho fica ativo) mas o serial monitor não mostra nenhuma resposta, apenas:

    Versao de firmware
    ** Final **

    O trecho de código “while (esp8266.available()) ” sempre retorna false. Tentei me conectar a 8266 com 115200, 50000 e 19200.

    Existe alguma possibilidade da 8266 estar com algum defeito?

    1. To tendo o mesmo problema!

  71. Sempre muito bem explicado!
    Parabéns, Adilson!

  72. Estou tentando utilizar um arduino Nano com o ESP-01, porém sem sucesso. Estou alimentando o ESP-01 ( firmware de 2016 ) por uma fonte externa de 3.3V, além de ter mudado o baud rate da placa conforme a orientação do post. Até o momento meu resultado final é:

    Versao de firmware
    ** Final **

    O curioso é que quando ligo o ESP-01 ao FTDI, acesso normalmente as funções.

    Existe alguma incompatibilidade do Nano com o ESP ?

  73. Estou usando um arduino Nano, e já tentei de tudo e não adiantou…. Utilizei fonte externa, troquei a baud rate, troquei os pinos digitais e nada deu certo.

    Se utilizo um FTDI consigo rodar os comandos, porém acoplando no arduino nada funciona. Já me certifiquei da baud rate e versao do firmware ( de 2016 ).

    Alguma dica do que fazer ?

    Resultado apos subir o sketch:

    Versao de firmware
    ** Final **

  74. Quero relatar minha experiencia, após testar varias blibliotecas e quebrar a cabeça…
    Meu problema todo em usar foi apenas a concatenacao de string…

    estava usando println na impressao
    esp8266.println(command);

    voltei pro esp8266.print e pus a quebra de linha como no exemplo, no exemplo nao tem as “\” antes de substrings e quebras de linha, se atentem a isso e funciona…
    me login funcionou assim: sendData(“AT+CWJAP=\”Davi\”,\”1234567890124\”\r\n”, 3000, DEBUG);
    Fica o relato…

  75. Olá Adilson,
    Gostaria de saber porque você ligou o RX e TX do módulo nas portas 2 e 3 do arduíno? E não nas portas 0 e 1 que estão identificadas para este fim.
    E pesquisei que poderia utilizar o CI CD4050 para fazer a conversão de 5V para 3.3V entre as portas do módulo e arduino, isso funcionaria mesmo?
    Parabéns pelo post.
    Obrigado.

    1. Olá Leandro!

      Os pinos 2 e 3 do Arduino foram utilizados como Software Serial. Assim deixamos livre a porta serial padrão do Arduino (pinos 0 e 1) para comunicar com o computador(Serial monitor) e a porta Software Serial (pinos 2 e 3) para comunicar com o ESP8266(enviando comandos AT).

      Nunca testamos com esse CI. Mas se ele faz conversão de nível deve funcionar.

      Abraço!

  76. Olá Adilson!
    excelente tutorial, gostei muito!!
    Estou com um problema, talvez tenha acontecido com mais alguém aqui também
    quando faço o primeiro passo do tutorial
    aparece no serial monitor:
    Versao de firmware
    ** Final **
    Você ou alguém por aqui saberia alguma possivel causa disto ocorrer?

    1. Também estou com mesmo problema, já fiz de tudo e nada =/

  77. Boa noite galera estou com um problema no monitor serial por algum motivo só imprime “????????????????” seguem abaixo uma imagem do monitor que estou falando quem poder me ajudar eu agradeço

    http://prntscr.com/fv0mlw

    1. João Marcos, isto esta parecendo erro de baud rate (velocidade) da porta serial ou do ESP. Você rodou o primeiro programa do tutorial? Tente repetidor o procedimento do tutorial novamente.

      1. Boa noite JAGoris

        Eu estou com 2 arduino com 2 Placas ESP 8266 -01 estou utilizando o baud rate (velocidade) 115200 porem ela não aparece nada no monitor serial tentei atualizar ela porem acontece o mesmo problema e nao deixa atualizar alguem pode me ajudar nisso estou desesperado

        Obrigado

        1. segue um printi do monitor serial para atualizar placa

          http://prntscr.com/fvgowf

    2. por favor verifique todas as conexoes pois parece que a comunicao serial esta com problema, certifique se tambem que seu modulo esp e seu arduino estao funcionando corretamente e nada esta em curto, certifique se tambem de nao encostar no esp nem no arduino enquanto estiver ligado pois a eletricidade estatica de nosso corpo pode interferir na comunicacao… espero ter ajudado

    3. Mude o final de nova linha para a opção NC LC, algo assim, acho que é isso.

  78. Bom dia Felipe! Sabe explicar porque esse esp8266 só em ligar ela já cria um AP padrão da placa? No meu caso ele cria um AP “ESP_0CE363” sem senha. Teria como fazer ele não levantar o AP?

    1. Olá Ericke,

      Recomendamos sempre consultar o manual de comandos AT. Lá você encontra todos os comandos necessários para configurar seu ESP8266.
      https://www.espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf

      Ná página 21 do manual você encontra os seguintes comandos:
      AT+CWMODE_CUR Sets the Wi-Fi mode (Station/AP/Station+AP); configuration not saved in the flash.
      AT+CWMODE_DEF Sets the default Wi-Fi mode (Station/AP/Station+AP); configuration saved in the flash

  79. Bom dia Adilson, parabéns pelo post, sabe me dizer como posso colocar o web server para trabalhar com um IP fixo neste mesmo código que utilizou?

    1. Este exemplo o IP é atribuido pelo DHPC do seu roteador. Para que ele seja fixo, Vc deve configurar o endereço do MAC deste modulo no DHPC com um IP fixo.

    2. Consegui colocar IP FIXO, não sei se ‘a melhor forma, mas funcionou…

      String SSID=”nomerede”;
      String PASSWORD=”senharede”;
      String IPFIXO=”192.168.0.10″;
      String MASCARA=”255.255.255.0″;
      String ROTEADOR=”192.168.0.1″;

      void setup()
      {
      Serial.begin(9600);
      esp8266.begin(19200);

      sendData(“AT+RSTrn”, 2000, DEBUG); // rst
      // Conecta a rede wireless
      sendData(“AT+CWJAP=”” + SSID + “”,”” + PASSWORD +””rn”,2000, DEBUG);
      delay(3000);
      sendData(“AT+CWMODE=1rn”, 1000, DEBUG);
      // Mostra o endereco IP
      sendData(“AT+CIPSTA=”” + IPFIXO + “”,”” + ROTEADOR +””,”” + MASCARA + “”rn”,2000, DEBUG);
      sendData(“AT+CIFSRrn”, 1000, DEBUG);
      // Configura para multiplas conexoes
      sendData(“AT+CIPMUX=1rn”, 1000, DEBUG);
      // Inicia o web server na porta 80
      sendData(“AT+CIPSERVER=1,80rn”, 1000, DEBUG);

      }

      1. Boa tarde,
        esse IP fixo é do que exatamente?
        Obrigada.

        1. É o IP atribuído a placa ESP8266, eu prefiro trabalhar desta forma, assim você tem mais controle de cada equipamento, sabendo qual é pelo IP, sem utilizar DHCP.

  80. Fiz todas ligações, porem, quando tirei o arduino da USB e liguei na alimentação, nao funcionou, voltei ao pc e o serial não respondia aos comandos mais, o que pode ter acontecido?

    1. Então amigo acho que o código foi apagado quando vc desligou ele do usb. Para evitar isso vc deve deixar algum pino em gnd (não lembro bem qual) ou deixar em nível alto. De uma pesquisada sobre isso porque li num post que se tal pino estiver em 5v ou 0v então o código apaga quando a placa desliga. Espero ter ajudado

  81. Bom dia!

    Estou utilizando o ESP12 para realizar a comunicação com o Arduino. Posso usar esse mesmo circuito fazendo a compatibilidade entre as portas ?

  82. Por favor estou tentando implementar um botão para acionar o rele mas não estou conseguindo

  83. Adilson, tudo bem?
    Este esquema tambem vale para o arduino mega?

    1. Olá Rafael,

      O ESP8266 funciona com qualquer placa, microcontrolador ou plataforma que tenha serial(TX e RX).
      Apenas atente para a tensão de operação do ESP8266 que é 3,3V. Se a placa funcionar com 5V, é necessário a conversão dos níveis.

      Abraço!

  84. Como faço para que ele identifique um comando, tipo se eu digitar no navegador 192.168.0.27/onrele
    para que ele ative uma porta para acionar um relé?

    1. Boa tarde David,

      Dê uma olhada nesse post aqui. Tem o que você precisa: https://www.makerhero.com/blog/automacao-residencial-com-arduino-acenda-lampadas-pela-internet.html

      Abraço!

      Adilson – Equipe MakerHero

  85. Boa noite! Alguém poderia me explicar a função do comando AT+CIPSERVER, como mostrado abaixo?

    // Inicia o web server na porta 80
    sendData(“AT+CIPSERVER=1,80rn”, 1000, DEBUG);

    1. Como indicado, este comando AT (AT+CIPSERVER=1, 80) é usado para configurar o modulo como um servidor IP, ou seja, neste caso permitir que um cliente externo conecte-se ao modulo via porta 80 (no seu exemplo).
      O numero 1 informa que o servidor deve ser aberto. Se quiser fecha-lo deve ser igual a 0 (zero).
      A sequencia rn é como se fosse dado em ENTER (r=return, n=new line). Esta sequencia é requerido pelo sistema de comandos AT).
      O numero 1000 é o tempo em milisegundos que o comando aguarda para receber o retorno do modulo (palavra DEBUG). Se não quiser receber retorno pode usar o comando sendData(“AT+CIPSERVER=1,80rn”).

  86. Bom dia, quero realizar uma comunicação entre 6 módulos esp8266 para a automação da minha casa, mas estou com dificuldade para encontrar tutorial de como fazer e controlar pelo celular. Agradeço desde já a atenção.

  87. Montei o circuito conforme o esquema. Coloquei uma fonte externa de 3.3V e conectei o GND do arduino Uno com o da fonte de 3.3V.

    Recebi a seguinte resposta do Serial:

    Versao de firmware
    AT+GMR

    AT wersion:0.60/0.0(Jan 29 2016 15:10:07)
    SDK version:1.5fe.0KAT+�RJU��ʒ��j

    OK
    ** Final **

    Quando tento usar o web server não acontece nada!

    Alguém tem alguma dica? Me parece ruido na comunicação do ESP com o UNO.

    abs

  88. Olá, não estou conseguindo utilizar o modulo, sera que alguém consegue me ajudar? Ainda não compreendi muito bem, mas ao meu ver, comprei o modulo para usar como web server pensando que ele consegue fazer o mesmo papel do modulo ethernet W5100 (com fio), porem sem fio, estou certo? Tudo bem se eu não estiver, me adapto ao modo de funcionamento do ESP8266 assim que eu conseguir entende-lo… Fiz todas as ligações exatamente como no exemplo, porem na Serial ele não me traz nada além de carácteres estranhos como se fossem lixo (já experimentei outros baud rates). Esse código a cima, quando compilado, é compilado dentro do arduino ou diretamente no modulo? Do jeito em que o ESP8266 vem da fabrica já é possível compilar e fazer funcionar esses códigos ou preciso compilar uma firmware ou fazer qualquer outra coisa antes? Queria muito fazer funcionar

  89. Olá pessoal!

    Estou começando a usar o Arduíno agora.. então estou aprendendo algumas coisas ainda.. 

    Eu gostaria de fazer um comedouro eletrônico (usando Arduíno) e para controlar esse comedouro eu gostaria de usar um aplicativo de celular. Para isso, eu teria que fazer a comunicação do Arduíno com internet.  Pesquisei sobre alguns dispositivos, e vi que tem o Módulo Wireless ESP8266 e  Wifi Shield CC3000 . Porém, como eu disse, ainda estou um pouco leiga no assunto. Gostaria de saber se tem alguém que possa me ajudar a tirar essa dúvida entre qual dos dois dispositivos escolher e qual seria melhor para a minha aplicação. Se alguém souber a diferença entre os dois e puder me explicar, eu ficaria muito grata também. Obrigada pela atenção. 

    1. Olá Renata
      Para sua aplicação você pode usar comunicação direta do seu celular para o Arduino usando Bluetooth.
      Um módulo Bluetooth HC-05 (que tem aqui mesmo no MakerHero) cria um link serial entre o celular e o Arduino.
      No celular você usaria um programa de terminal que tem de monte na Playstore, tem até programa dedicado ao Arduino onde você pode controlar cada pino.
      Na Internet tem muita informação de como ligar Bluetooth no Arduino e parear com o seu celular.
      Espero ter ajudado. Boa sorte nos seus projetos.
      Renato

  90. Boa tarde,
    estou com um projeto para me informar alguns dados de sensor, ja realizei o sistema do sensor porem ele so aparece no serial monitor gostaria de ajuda para enviar essa informação para web via Esp8266 minha dificuldade está em fazer um codigo para o mesmo. e como extra se puder me ajudar a fazer com que os dados fiquem armazenado eu ficarei muito grata.

    Fico no aguardo da sua ajuda.

    1. Boa tarde Clarice,

      Estou com a mesma dificuldade com que você, preciso receber informações de um sensor e conseguir armazenar em uma base de dados através da web, você conseguiu alguma coisa ?

  91. Ola bom dia eu queria sabe um nome de uma peça que um colega meu comprou no seu site foi um sensor de umidade do solo Higrômetro, porem eu quero fazer a documentação do projeto i ele tem uma peça antes da lamina, segue a baixo o exemplo na imagem se vç soube vç pode me responde por favor. a imagen nao vai como comentário mas deixo aqui o link do endereço https://www.makerhero.com/pd-aa99a-sensor-de-umidade-do-solo-higrometro.html.

  92. RE:Tutorial Modulo Wireless ESP8266 com Arduino | Blog MakerHero Валок Салфорд Заозёрный

  93. ola, comprei tanto o modulo esp01 quanto o adaptador agora preciso que um cliente programado em desktop receba as leituras que esta sendo feito pelo arduino mais não estou conseguindo alguem pode me ajudar?

  94. Estou com o problema que vi com muitos aconteceu, Versao de firmware e vai direto para ** Final ** sem mostrar nenhuma informação.

    Alguma solução? Já alterei os limites de baud rate, já coloquei uma fonte externa. Obs: Estou usando o mega 2560, o adaptador para o ESP8266.

    1. No Mega você não pode usar os pinos 2 e 3 com o SoftwareSerial. Utilize por exemplo o: 10, 11; RX, TX. Altere também no ESP8266.h as duas linhas que estão com a taxa de baud em 9600 para 19200 (para esse exemplo do blog), em outros projetos pode ser que seja utilizado 9600. Use o Termite para por fora alterar a taxa de 115200 para 19200, use o comando AT+UART_DEF=19200,8,1,0,0, assim quando o sistema for desligado não vai haver perda dessa informação.

  95. Ola. Gostaria de saber como enviar uma mensagem da Serial do arduino para um app do android usando o esp8622? Alguem tem um programa parecido?

  96. Prezados,

    Estou com dificuldades para montar os comando de comunicação do arduino com o esp8266-01, gostaria de saber como faço para entender mais sobre esse tipo de comando: sendData(“xxxxxrn”, 1000, DEBUG)

    1. João Paulo, o comando que voce se refere é na realidade uma função que é criada dentro do programa.
      Veja por exemplo no programa que altera a velocidade, logo abaixo do “void loop() {}” é criada a função de enviar comandos AT para o esp: “sendData (String command, const int timeout, boolean debug)”.
      Quando voce chama a função como em “sendData(“AT+RSTrn”, 2000, DEBUG) significa que:
      AT+RSTrn ira passar para a variavel da função “command” (uma string);
      2000 irá para a variavel “timeout” (uma variavel do tipo contante e inteira);
      DEBUG irá para a variavel “debug” (booleana 0 ou1);

      Dentro da função criada tem as rotinas para enviar os comandos AT para o ESP (command) aguardar o tempo de resposta (timeout) e pelo envio da palavra DEBUG (debug) informar se o comando foi bem sucedido.
      Procure ler algum livro sobre programação em “C” para se informar com mais profundidade.

  97. Bom dia,

    Já adquiri dois módulos e ambos com o mesmo problema, não há resposta dos comandos enviados para o módulo.
    Estou utilizando o Arduino Mega, vi nos comentários que em outros Arduinos há caso de colocar uma fonte extra e outro de mudar os pinos.
    Alguém conseguiu fazer funcionar na placa Arduino Mega depois de ter o problema de comunicação com o módulo?
    Atenciosamente,

    1. Sandro, sugiro fazer uma visita ao site http://randomnerdtutorials.com/tutorials/. La tem varias sugestões e tutoriais, inclusive um tutorial sobre os problemas que estes módulos apresentam.
      Para não ter problemas adquira o modelo ESP8266-12E é um pouco mais caro mas funciona perfeitamente.
      No site indicado acima, você pode fazer perguntas em português, porque o gajo é um português e mora em Portugal e o nome dele é Rui Santos.

    2. Boa tarde,

      Amigo, já tentou programar direto no ESP?
      Pois enfrentei problemas para fazer o arduino comunicar com o módulo, no meu caso esp07. Depois que programei direto no módulo, funcionou perfeitamente!
      Não sei qual o seu módulo, mas o ESP07 tem que colocar o REST, CH_PD em 3,3Vcc e o GPIO015 com um resistor para o GND, usei todos de 10K.
      Tenho um ESP01 funcionando a um bom tempo, mas o código foi carregado direto nele!!!

  98. Ola meu caro amigo, corrija me se eu estiver enganado, mas pela ligacao voce esta conectando os 5V do arduino direto no VCC do ESP ? Ele nao e so 3,3V?

    1. Boa tarde Leonardo,

      Sim, ele está conectado no pino 3.3V do Arduino.

      Abraço!

      Adilson – Equipe MakerHero

  99. Boa tarde pessoal.
    Como eu faço para enviar as leituras de um sensor acs712 para um servidor web utilizando o esp8266-1.
    Estou usando o modulo sem o arduino, e consegui fazer um teste de acender e apagar um led atraves de uma pagina web.
    Na programação qual pino devo colocar como leitura?

  100. atualmente a MakerHero está comercializando a ESP8266 ESP-05. Eu pergunto: preciso utilizar alguma biblioteca? e qual seria as alterações em relação a este post?

  101. Olá,

    Fiz tudo de acordo com o tutorial, mas infelizmente não obtive sucesso utilizando o arduino nano, na serial só printa ” Versáo do Firmeware e Final”. Já verifiquei todas as conexões, as mesmas estão todas corretas. Alguém pode me ajudar. Desde já agradeço.

    1. Bom dia! Eu tive o mesmo problema. Acabei descobrindo que minha fonte não era suficiente para o consumo do ESP8266. Adicionei uma fonte na protoboard e o problema foi resolvido. O ESP8266 consome até 300ma em alguns momentos, portanto o Arduino não consegue suprir sua necessidade.

  102. Boa tarde, eu adquiri o módulo + adaptador e estou tentando comunicar com um Arduino Pro Mini 5V, mas não estou tendo sucesso. O mesmo código e montagem funciona perfeitamente no Arduino Uno. Podem me ajudar?

    1. Pessoal! Consegui fazer comunicar!
      Foi necessário inverter a pinagem do RX TX quando usando o Arquivo Pro Mini

    2. Olá estou tentando ligar o módulo através do adaptador no arduino Mega 2560, mas não estou conseguindo. Estou seguindo os mesmos passos desse tutorial, mas sem sucesso, poderia me ajudar. Obrigado abraço

  103. Boa tarde,

    Muito bom o post.

    Teria alguma coisa parecida porém utilizando o ESP8266 para PIC ?
    Existem bibliotecas para isso ?

    Obrigado

  104. esta dando erro nesse linha,

    sendData(webpage, 1000, DEBUG);

    podem me ajudar?

    1. Qual a mensagem que parece?

  105. Olá pessoal,
    Pra quem ta tendo problema com o ESP, eu estava e pelo visto agora ele ta funcionando normalmente, as mudanças foram as seguintes:

    1-Vá em Libraries do arduino e na pasta ESP8226, abram o arquivo ESP8266.h e mudem a linha 50 para “ESP8266(SoftwareSerial &uart, uint32_t baud = 19200);” sem as aspas.

    2-Em relacão a montagem na protoboard, eu mudei os resistores do RX do esp para dois de 1K, só assim que funcionou pra mim, com os dois de 10k não tava dando muito certo e nem com um divisor de tensão para 3.3V, com 10k e 20k.

    Espero ter ajudado alguém, pois foi uma luta pra esse bixinho funcionar aqui, ele ainda fica meio instável, mas agora pelo menos já conecta no WIFI 😀

    1. OLá…na libraries do meu arduino não tem a pasta ESP8226…como faço para adicioná-la …ja troquei os resistores para 2 de 1k como vc disse mas na janela serial monitor continua a aparecer caracteres estranhos…vc pode me ajudar? desde já agradeço

    2. oi ja estou tentando fazer esse modulo funcionar a alguns meses tentei diversos jeitos ,mas ate agora sem sucesso posso conversa com vc por email ou whats? queria pedir umas dicas estou usando esse modulo no meu tcc

  106. Iai novamente pessoal.
    Seguinte depois de muitos teste (testei até com o FTDI) continua com o mesmo problema com caracteres desconhecidos e percebi que isso ocorre quando o CH_PD está no VCC se ele estiver desligado não manda nada.
    E se eu mandar um comando tipo AT ele mostra AT no monitor.
    PF ME AJUDEM

    1. Olá. Estive tentando fazer um ESP-12E rodar, e de tantos problemas, fiquei meio expertise nele.

      Bom, recomendo – primeiro – que você faça as ligações de alta utilizando um resistor (com exceção do próprio Vcc). Em segundo lugar, o CH_PD precisa mesmo ficar em alta, assim como o Reset. Por fim, o BaudRate padrão do meu ESP era 19200.

      Para testes, não precisei de uma fonte externa, mas para montar um WebServer, o ESP vai precisar de uma.

      Bom trabalho.

      Att,

      1. Tiago, Gostaria de saber que tipo de ESP8266 que está usando. Pergunto, porque eu uso já ha bastante tempo o modelo ESP826612E da DEVKIT V2 e nunca encontrei qualquer problema para programa-lo, pois utiliza a mesma IDE do Arduino porem sem o Arduino. É do tipo “stand alone” e comporta-se como um arduino. Usa os mesmos comandos que se usa para programar um arduino, porem tem bibliotecas próprias disponíveis largamente na nuvem. Deixa de sofrer e compre um destes!!! hihihi

        1. Olá, JAGoris. Estava a utilizar um ESP-12E chinês, destes baratos que vendem no AliExpress. Abs. 🙂

      2. Olá Tiago, estou com um pouco de dificuldades de rodar o Esp 12e com o arduino uno ´´Arduino uno + esp 12e“ , tu poderia me dizer qual ligações que tenho que fazer?

        Muito Obrigado!

        1. Olá, Thiago. Bom… as ligações do 12E são um pouco diferentes, pois ele tem mais pinos.

          A pinagem pra rodar o código que já está embarcado (Flash Mode) é a seguinte:

          Vcc > 3.3v (!)
          RST > 3.3v
          CH_EN > 3.3v
          GND > GND
          GPIO15 > GND
          GPIO0 > 3.3v
          GPIO2 > 3.3v
          TX (esp) → RX (Arduino)
          RX (esp) → TX (Arduino) *

          (!) É altamente IMPRESCINDÍVEL que você forneça uma boa alimentação a 3.3v ao ESP. Sugiro que consiga uma alimentação externa de 5V/1A, e use um regulador de tensão (step-down) pra 3.3V. Caso o ESP não obtenha energia o suficiente, podem ocorrer ruídos na comunicação serial, ou mesmo ele não conseguir obter IP e ficar reiniciando.

          * – O ESP funciona com 3.3V, e é intolerante a sinais de 5v. Você vai precisar dropar a saída do sinal digital do Arduino para 3.3v, pois ela é 5V. Você pode tentar com divisor de tensão, mas o ideal seria uma conversão via circuito integrado.

          Por fim, a velocidade padrão para a comunicação do ESP com o Arduino, comigo, foi 19,2kbps (baudrate de 19200).

          Feito tudo isso, abra o monitor serial e reinicie o ESP (desligando a alimentação e depois religando-a). Deve aparecer uma mensagem de boot. Aí você pode programá-lo por comandos AT. Mas é aí onde mora o problema… ainda estou com problemas em programar o ESP via comandos AT… (mas é algo lógico, e não mais de hardware).

          De todo modo… boa sorte.

          1. Olá Tiago,

            Bem ,fiz tudo ali como solicitado , mas meu retorno é de apenas ´´sujeira“ não importa a baudrate que eu coloque.

            Eu estou tentando criar um WebServer pelo arduino uno, e gostaria que o ESP 12E apenas fizesse o meio de conexão do arduino, mas estou começando a pensar que isso não é possível através desse modelo.

            Configurando ele pela IDE do arduino ´´ou seja, direto na memória dele,sem o auxilio de nenhum arduino“, ele fica 100%.

            Pra parte do TX do arduino para o RX do 12E, já usei divisor de tensão e também o 4050BE, e obtenho o mesmo resultado.

            Já não sei mais qual configuração devo usar para fazer o que preciso, tens alguma dica ?

            Muito Obrigado!

  107. Boa noite,

    Gostaria de saber como deixar o IP fixo do ESP8266… Já usei a função AT+CIPSTA_DEF e aparece sempre ERROR :/

    1. AT+CIPSTA=”192.168.25.20″,”192.168.25.1″,”255.255.255.0″rn
      onde: AT+CIPSTA=,,

  108. Pessoal boa tarde!

    Estou desenvolvendo uma aplicação na qual faz a leitura de um cartão RFID e envia os dados para um webserver utilizando o modulo esp8266-01. A leitura do cartão e o enviado de dados está funcionando normalmente , mas quando vou fazer uma segunda leitura a pagina não alimenta e fica aparecendo a seguinte informação no monitor serial (abaixo), e para fazer uma nova leitura preciso reiniciar o arduino, será que alguém pode me ajudar obter uma solução…

    desde já agradeço
    Vinicius Almeida

    OK
    UID da tag: 50 7C 1B 2B,405:GET / HTTP/1.1
    HAT+CIPSEND=0,120

    OK
    > <•…‘âU ‹
    ©WW'®³²h c¹Ñ•šòz«…‘ùDADOS DE ACESSO Cartão: 50 7C 1B 2B
    SEND OK
    AT+CIPCLOSE=0

    +IPD,1,347:GET /favicon.ico HTTP/1.1
    Host: 192.168.0.105
    Connection: keep-alive
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36
    Accept: */*
    DNT: 1
    Referer: htt://92.68..105
    Acep-Enodig: zip defate sdh
    ccet-Lnguge:en-U,enq=08,p-BRq=0.,ptq=04

    0,LOSD

    OK UID da tag: 86 A5 1A 2B,463:GET / HTTP/1.1
    Host: 192.168AT+CIPSEND=0,120
    busy p…
    DADOS DE ACESSO Cartão: 86 A5 1A 2BAT+CIPCLOSE=0
    busy p…

    1. Vinicius, pela sua descrição isto esta parecendo falha na alimentação no ESP. Confira se esta sendo alimentado com 3,3 volts e sem mau contatos, e como sugestão recomendo usar uma fonte externa para o ESP, não esquecendo de interligar os GNDs de ambas placas. Uma fonte de 3,3 Volts e 500 mA atende esta placa.

  109. Olá.

    Gostaria de saber se usando o ESP é possível executar comandos “get” via http para, por exemplo, passar algum parâmetro via web.

    Obrigado.

    1. Sim, vc pode usar redirecionamento e adicionar um valor na url.

  110. Boa noite pessoal, preciso da ajuda de vocês

    Gostaria de saber como ficaria esse experimento https://www.makerhero.com/blog/medidor-de-energia-eletrica-com-arduino.html com o ESP8266…. Estou tentando, mas até agora sem sucesso

    1. Olá cara, coincidentemente estou com a mesma ideia. Se quiser trocar informações e conhecimentos… meu email é [email protected]

  111. olá o meu na hora de configurar o servidor ele da o seguinte erro

    “qXÑzBC! ÂI!³ÿ ÐS!=Ñnä ÐS!}ÑFä Ð!HÕòIÔ!1¤(ÙÃÖaK)t+ a0Ør’÷
    Ai-Thinker Technology Co.,Ltd.

    ready
    ÿAT+CIPMUX=1

    OK
    ÿÿÿAT+CIPSERVER=1,80

    OK
    ÿ

    1. isso aparece no monitor serial e o ip nao aparece

      1. warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] da este erro tambem

        1. Em vez de esp8266.begin(19200); coloque esp8266.begin(9600);

          o problema pode ser o resistor também… no meu aparecia isso, dai coloquei 3 resistores de 1k e funcionou

          1. Incluiu 3 resistores de 1k, em paralelo ou em série?

    2. AT+RST

      OK
      “qPÑzÂC! ™±A!ÿ ÒS!=Ñnä ÐS!}ÑFä Ð!HÕòIÔ!1²(ÙÃÖ}C)t+ a0Ø aŸÉr’÷
      Ai-Thinker Technology Co.,Ltd.

      ready
      Versao de firmware
      WIFI DISCONNECT
      AT+GMR

      AT version:0.40.0.0(Aug 8 2015 14:45:58)
      SDK version:1.3.0
      Ai-Thinker Technology Co.,Ltd.
      Build:1.3.0.2 Sep 11 2015 11:48:04
      OK
      AT+CIOBAUD=19200

      OK
      ** Final **
      Alguem sabe me dizer o porque aparece wifi diconnect

  112. Onde está a lib “SoftwareSerial.h”?

    Obrigado!

    1. Caro Henrique, esta library bem como qualquer outra usada no arduino você encontra na internet, bastando digitar no brownser o nome dela. O site do arduino.cc tem quase todas. Na IDE do arduino. clique em Ajuda e lá irá encontrar um caminho direto…

  113. Boa tarde.
    Eu estava testando esse projeto, mas deu um tipo de erro que eu não entendi.
    Quando faço as ligações carrego o programa, não mostra nada no meu serial monitor.
    Não fala se a conexão foi efetuada, não mostra a versão e nem as respostas (ok e ready).
    Por favor se souber me ajuda.

      1. Ainda não consegui, o led de cominucação só fica aceso agr e no serial monitor só aparece caracter estranho.

    1. Lucas, se estiver usando a biblioteca SoftwareSerial, verifique logo no inicio do sketch (veja abaixo) são determinados os pinos que a nova serial irá usar. No exemplo, esta sendo criada uma nova serial no ESP chamada <> que ira utilizar os pinos 2 e 3 para RX e TX respectivamente.

      #include

      //RX pino 2, TX pino 3
      SoftwareSerial esp8266(2, 3);

      1. Só para complementar, a serial chamada esp8266 é para o arduino se comunicar com o modulo ESP pelos pinos 2 e 3 e a serial da linha Serial.begin(9600) abre a porta dos pinos 0 e 1 no arduino que são default para o terminal interno do arduino. Alias pode-se utilizar qualquer software terminal para isto, bastando abri-las na porta em que o arduino esta conectado.

  114. Bom dia amigo eu busquei varios exemplo baseado em comando AT e nao consegui nada ate que passei a utilizar a linguagem LUA NODEMCU, muito mais facil de progrramar. Facam o teste.

  115. Comprei 5 módulos para utilização no meu projeto, no entanto, não estou conseguindo utilizar nenhum dos módulos.
    Estes não realizam a conexão com o arduino. Já vi todos os tutorias disponíveis pelo blog de vocês e não tive nenhuma solução.
    Quando inserido o código para comunicação com o arduino disponibilizado aqui, simplesmente aparece no terminal: MÓDULO INDISPONÍVEL.
    Quando utilizado junto ao Terminate para atualização do firmware, o módulo não emite nenhuma resposta aos comandos inseridos.

    O que fazer quando não há nenhuma resposta do módulo?

  116. Adilson, tudo bem?
    Parabéns pelo post!
    Estou com duas duvidas, a primeira reparei que a atualização do Browser só funciona com o terminal aberto, eu preciso alterar algo no exemplo? Eu fiz um telnet e tem conexão na porta 80, só não achei a explicação para não atualizar no Browser.
    Tem como diminuir essa taxa de atualização?
    Estou usando o esp8266 com firmware 0.9.2.2 e tive que alterar o esp8266.begin() para 9600 funcionar, existe algum problema?
    ABs!

    1. Boa tarde Marcelo,

      Tudo bem? Eu realmente não vi esse problema (ainda). Você testou com outro browser ? Quanto à taxa de atualização, mude o content=”3″ para content=”1″, por exemplo, na linha 39 do programa.

      Sem problemas quanto à taxa de atualização. Alguns módulos funcionam com 9600, outros com 19200, 57600, etc.

      Abraço e obrigado!

      Adilson – Equipe MakerHero

  117. Olá, comprei o adptador do esp8266.
    1- Não encontro a montagem , tenho duvidas, vi aki algumas duvidas parecidas ( Sugiro que faça um post ! ) Pela quantidade de post.
    2- Gostaria de saber se existe a possibilidade , de enviar os comandos do arduino para o browser , utilizando o esp8266? E como poderia funcionar!
    3- E se existe a possibilidade de gerenciar todas as portas do arduino, utilizando o esp8266, somente como wifi. Como se possível?

  118. Olá Adilson, parabéns pelo post, fiquei com uma duvida caso eu use o adaptador (https://www.makerhero.com/pd-349a15-adaptador-para-modulo-wifi-esp8266-esp-01.html) do esp8266, a estrutura do código muda? Obrigado

    1. Comprei o adaptador e tenho a mesma dúvida!

      1. Gustavo consegui resolver aqui, ligue o adaptador da seguinte maneira:
        adaptador –> Arduino Mega
        GND –> GND
        VCC –> 5V
        TX –> RX (19)
        RX –> TX (18)

        No meu caso eu ainda fiz algumas adaptações na programação, como o arduíno mega possuí diversas conexões seriais nativa, acabei usando uma delas (https://www.arduino.cc/en/Reference/Serial).

        Na programação substituí esp8266 para Serial1. E na segunda programação que ele faz a conexão e exibe a página aumentei o delay de 3000 para 9000 na linha 19.

        Espero ter ajudado. Abraços

        1. Eai cara beleza?
          Tome cuidado, nessa configuração que vc fez há um risco de voce queimar o seu ESP, pois ele opera em nível lógico alto de 3,3V enquanto o Arduino é em 5V.
          O ideal é vc usar um conversor de nivel logico entre os dois.

          Abs

          LUIZ HENRIQUE DE OLIVEIRA CUNHA
          1. Olá Luiz,

            Como estou usando o adaptador não tem problema de queimar o esp8266, o adaptador já converte 5v para 3.3v

        2. Muito obrigado!
          Estava tendo a mesma dificuldade com o adaptador e consegui comunicar!

        3. Cara, aqui continua o mesmo problema ainda, como foi o codigo completo que colocou? Usou fonte externa ou alimentação do arduino?

        4. Poderia mandar o seu código ?

    2. Boa tarde André,

      Obrigado! Neste caso, basta ligar diretamente o adaptador no Arduino. Usando os exemplos do post, você vai ligar o RX do adaptador no pino 3 do Arduino, o TX no pino 2, o Vcc e o GND. Você não vai precisar dos resistores.

      Abraço!

      Adilson – Equipe MakerHero

      1. Olá estou tentando ligar o módulo através do adaptador no arduino Mega 2560, mas não estou conseguindo. Estou seguindo os mesmos passos desse tutorial, mas sem sucesso, poderia me ajudar. Obrigado abraço

      2. Pois então com o Adpatador a ligação esta correta e o teste roda mas não mostra nada no Serial Monitor que deveria vir via sendData(…., DEBUG), será a configuração no router D-Link? ou precisa de outro código pra usar com o adptador?

        abçs.

        Marcelo

  119. Boa tarde,

    Consegui, executar os códigos para testar a comunicação do modulo, como o do reset.
    Contudo, quando este correr este código ele realiza-se os dois primeiros passas correctamente, mas não consegue gerar nenhum IP, mesmo que alterando alterando no código o nome da minha rede e colocando a palavra pass.
    Como posso resolver esta situação? pode ter haver com o facto de estar ligado à rede do telemóvel?

    1. Estou com o mesmo problema.

      Só aparece isso

      Versao de firmware
      ** Final **

      1. Alguém tem alguma solução

    2. Estou com mesmo problema, descrito pelo Denner. Já busquei outros tutoriais também , conferi as conexões do modulo com o Arduino, e até agora sem sucesso.
      Caso, alguém tiver a solução, favor compartilhe.

    3. mesmo problema aqui

    4. Não entendi bem o problema, mas talvez seja que seu modem de internet seja DCHP, tal configuração não permite que o ESP crie um IP, sendo que ele que escolhe um para o ESP, tente entrar nas configurações do seu MODEM, digitando seu Gateway no browser e acessando o IP dos dispositivos conectados a rede.

      PS.: Vai no prompot de comando e digite ipconfig e procure pela tinha que diz seu gateway, geralmente o usuario é admin e a senha admin, busque na internet caso não dê.

  120. NO esp8266 é possível fazer código que solicite os dados para usuário da rede que o dispositivo irá conectar?

    1. Sim, é possível. Você pode permitir requisições de entrada para a porta serial.

  121. Boa tarde,

    Gostaria de saber se vocês podem me ajudar, estou tentando desenvolver um sistema de controle remoto utilizando dois ESP01, onde um é o servidor e o outro o cliente, neste sistema o controle (cliente) terá três botoes que acionaram, no servidor, nove relés.
    Seguem os códigos do que fiz até agora.

    Servidor:

    #include
    #define DEBUG true
    SoftwareSerial esp8266(2, 3);
    const int RST = 4;
    const int sentido1 = 19;
    const int sentido2 = 18;
    const int sentido3 = 17;
    const int sentido4 = 16;
    const int sentido5 = 15;
    const int sentido6 = 14;

    void setup() {
    Serial.begin(9600);
    esp8266.begin(19200);
    pinMode(RST, OUTPUT);
    pinMode(sentido1, OUTPUT);
    pinMode(sentido2, OUTPUT);
    pinMode(sentido3, OUTPUT);
    pinMode(sentido4, OUTPUT);
    pinMode(sentido5, OUTPUT);
    pinMode(sentido6, OUTPUT);
    digitalWrite(RST, LOW);
    delay(300);
    digitalWrite(RST, HIGH);
    sendData(“AT+RSTrn”, 2000, DEBUG);
    sendData(“AT+CWMODE=2rn”, 1000, DEBUG);
    sendData(“AT+CIPMUX=1rn”, 1000, DEBUG);
    sendData(“AT+CIPSERVER=1,80rn”, 1000, DEBUG);
    sendData(“AT+CIFSRrn”, 1000, DEBUG);
    sendData(“AT+CWSAP=”fravi”,”planticenter”,1,3rn”, 1000, DEBUG);
    sendData(“AT+CIPSTO=60rn”, 1000, DEBUG);
    }

    void loop() {
    if (esp8266.available()) {
    if (esp8266.find(“+IPD,”)) {
    delay(100);
    int connectionId = esp8266.read() – 48;
    esp8266.find(“pin=”);
    int pinNumber = (esp8266.read() – 48) * 10;
    pinNumber += (esp8266.read() – 48);
    //Controle do motor 1
    if (pinNumber == 99) {
    digitalWrite(sentido1, HIGH);
    delay(1550);
    digitalWrite(sentido1, LOW);
    }
    if (pinNumber == 96) {
    digitalWrite(sentido2, HIGH);
    delay(1550);
    digitalWrite(sentido2, LOW);
    }
    //Controle do motor 2
    if (pinNumber == 98) {
    digitalWrite(sentido3, HIGH);
    delay(1550);
    digitalWrite(sentido3, LOW);
    }
    if (pinNumber == 95) {
    digitalWrite(sentido4, HIGH);
    delay(1550);
    digitalWrite(sentido4, LOW);
    }
    //Controle do motor 3
    if (pinNumber == 97) {
    digitalWrite(sentido5, HIGH);
    delay(1550);
    digitalWrite(sentido5, LOW);
    }
    if (pinNumber == 94) {
    digitalWrite(sentido6, HIGH);
    delay(1550);
    digitalWrite(sentido6, LOW);
    }
    String closeCommand = “AT+CIPCLOSE=”;
    closeCommand += connectionId;
    closeCommand += “rn”;
    sendData(closeCommand, 100, DEBUG);
    }
    }
    }

    String sendData(String command, const int timeout, boolean debug) {
    String response = “”;
    esp8266.print(command);
    long int time = millis();
    while ( (time + timeout) > millis()) {
    while (esp8266.available()) {
    char c = esp8266.read();
    response += c;
    }
    }
    if (debug) {
    Serial.print(response);
    }
    return response;
    }

    Cliente:

    #include
    #define DEBUG true
    SoftwareSerial esp8266(2, 3);
    const int RST = 4;
    const int botao1 = 14;
    const int botao2 = 15;
    const int botao3 = 16;
    const int led1 = 17;
    const int led2 = 18;
    const int led3 = 19;
    int estadoLed1 = LOW;
    int estadoLed2 = LOW;
    int estadoLed3 = LOW;
    int estadoBotao1;
    int estadoBotao2;
    int estadoBotao3;
    int ultimoEstadoBotao1 = LOW;
    int ultimoEstadoBotao2 = LOW;
    int ultimoEstadoBotao3 = LOW;
    long lastDebounceTime1 = 0;
    long lastDebounceTime2 = 0;
    long lastDebounceTime3 = 0;
    long debounceDelay1 = 50;
    long debounceDelay2 = 50;
    long debounceDelay3 = 50;

    void setup() {
    Serial.begin(9600);
    esp8266.begin(19200);
    pinMode(botao1, INPUT);
    pinMode(botao2, INPUT);
    pinMode(botao3, INPUT);
    pinMode(led1, OUTPUT);
    pinMode(led2, OUTPUT);
    pinMode(led3, OUTPUT);
    digitalWrite(led1, estadoLed1);
    digitalWrite(led2, estadoLed2);
    digitalWrite(led3, estadoLed3);
    pinMode(RST, OUTPUT);
    digitalWrite(RST, LOW);
    delay(300);
    digitalWrite(RST, HIGH);
    sendData(“AT+RSTrn”, 2000, DEBUG);
    sendData(“AT+CWMODE=1rn”, 1000, DEBUG);
    sendData(“AT+CIPMUX=0rn”, 1000, DEBUG);
    sendData(“AT+CIFSRrn”, 1000, DEBUG);
    sendData(“AT+CWJAP=”fravi”,”planticenter”rn”, 4000, DEBUG);
    sendData(“AT+CIPSTATUS=?rn”, 1000, DEBUG);
    }

    void loop() {
    int leitura1 = digitalRead(botao1);
    if (leitura1 != ultimoEstadoBotao1) {
    lastDebounceTime1 = millis();
    }
    if ((millis() – lastDebounceTime1) > debounceDelay1) {
    if (leitura1 != estadoBotao1) {
    estadoBotao1 = leitura1;
    if (estadoBotao1 == HIGH) {
    estadoLed1 = !estadoLed1;
    }
    }
    }
    digitalWrite(led1, estadoLed1);
    ultimoEstadoBotao1 = leitura1;
    int leitura2 = digitalRead(botao2);
    if (leitura2 != ultimoEstadoBotao2) {
    lastDebounceTime2 = millis();
    }
    if ((millis() – lastDebounceTime2) > debounceDelay2) {
    if (leitura2 != estadoBotao2) {
    estadoBotao2 = leitura2;
    if (estadoBotao2 == HIGH) {
    estadoLed2 = !estadoLed2;
    }
    }
    }
    digitalWrite(led2, estadoLed2);
    ultimoEstadoBotao2 = leitura2;
    int leitura3 = digitalRead(botao3);
    if (leitura3 != ultimoEstadoBotao3) {
    lastDebounceTime3 = millis();
    }
    if ((millis() – lastDebounceTime3) > debounceDelay3) {
    if (leitura3 != estadoBotao3) {
    estadoBotao3 = leitura3;
    if (estadoBotao3 == HIGH) {
    estadoLed3 = !estadoLed3;
    }
    }
    }
    digitalWrite(led3, estadoLed3);
    ultimoEstadoBotao3 = leitura3;
    if (esp8266.available()) {
    if (esp8266.find(“+IPD,”)) {
    delay(100);
    if (estadoLed1 == HIGH) {
    esp8266.println(“pin=99”);
    }
    else {
    esp8266.println(“pin=96”);
    }
    if (estadoLed2 == HIGH) {
    esp8266.println(“pin=98”);
    }
    else {
    esp8266.println(“pin=95”);
    }
    if (estadoLed3 == HIGH) {
    esp8266.println(“pin=97”);
    }
    else {
    esp8266.println(“pin=94”);
    }
    sendData(“AT+CIPCLOSE=rn”, 100, DEBUG);
    }
    }
    }

    String sendData(String command, const int timeout, boolean debug) {
    String response = “”;
    esp8266.print(command);
    long int time = millis();
    while ( (time + timeout) > millis()) {
    while (esp8266.available())
    {
    char c = esp8266.read();
    response += c;
    }
    }
    if (debug) {
    Serial.print(response);
    }
    return response;
    }

    Agradeço desde já.

  122. Boa noite!

    Como ficaria o código para acender e apagar acender um led com o ESP8266 ?

    Comprei o módulo, porém estou com dificuldades em seu uso.

    Atenciosamente

  123. Excelente post! Rotinas muito criativas e bem elaboradas! Agora é só colocar em prática.

    Obrigado!

  124. Felipe tem algum tutorial no seu blog sobre o módulo mais moderno o ESP8266MOD da AI-THINKER?
    Vi em alguns sites americanos que o chamam de ESP12, mas estou com muita dificuldade de encontrar algo eficaz para liga-lo corretamente ao arduino. Tentei seguir um tutorial seu para o antigo ESP8266, mas não funciona.

  125. Bom dia,

    Você saberia me dizer como realizar a conexão wireless entre dois módulos ESP01, sendo que cada um está conectado em seu respectivo Arduino Uno? A ideia é montar um controle remoto de 3 botões em um dos conjuntos (Arduino Uno + ESP01) e acionar assim 9 relés que estão no outro conjunto.

    Obrigado.

  126. Adilson,

    Muito bom o tutorial. Me ajudou bastante.

    Poderia montar também um tutorial fazendo com que os valores do sensor “Hc-sr04” fossem acessíveis via browser (navegador) através do “ESP8266”?

    Já li aqui no blog seu tutorial sobre o “”Hc-sr04” e ficaria muito bom se fizesse um mix entre os dois tutoriais… ESP8266 e Hc-sr04.

    Obrigado.

  127. Estou com duvidas quanto a capacidade desse modulo, com ele consigo aplicar esse projeto? https://www.makerhero.com/blog/automacao-residencial-com-arduino-acenda-lampadas-pela-internet/
    Devido a pagina web ser mais robusta…

  128. Você tem montagem com o ESP8266-201?

  129. quando fui tentar conectar na minha rede, apareceu isso:
    AT+RST

    OK
    “qXÑzÂC! ™±[!ÿ ÐS!=Ñnä ÐS!}ÑFä Ð!HÕòIÔ!1¤(ÙÃÖeK)t+a0Ø aŸÉr’÷
    Ai-Thinker Technology Co.,Ltd.

    ready
    AT+CWJAP=”Ping Pong”,”Teletubies”

    WIFI DISCONNECT
    AT+CWMODE=1

    busy p…
    AT+CIFSR

    busy p…
    AT+CIPMUX=1

    busy p…
    AT+CIPSERVER=1,80

    busy p…

    ELIZA PIOLLI DE OLIVEIRA PRADO
    1. não sei se esta muito tarde mas… Altera a velocidade do terminal para 9600

  130. Boa tarde, comprei o arduino uno e ESP-O1 e os estou usando pela primeira vez. Fiz toda a prototipagem corretamente e colei o código do primeiro teste (teste da versão do firmware) na IDE do Arduino, sem alterá-lo, mas não está funcionando. No monitor serial aparece apenas as linhas:
    Versão do Firmware
    ** Final **

    O que fiz de errado?

    1. Boa tarde Matheus,

      Tente alterar a velocidade de comunicação no programa. Se ainda assim o erro continuar, eu recomendo que você faça um upgrade/regravação de firmware, usando as instruções desse post: https://www.makerhero.com/blog/upgrade-de-firmware-do-modulo-esp8266/

      Abraço.

      Adilson – Equipe MakerHero

  131. Boa noite amigo fiz o test do ping e ele redpondeu que esta tudo ok, mais continuo sem consegui conecta pela web.
    Agora to com uma duvida eu fiz o test da da porta 80 e o resultado é de que esta fechado isso impede na conecxao do esp8266?

  132. Bom dia amigo,
    Nao fiz o teste do ping não como faço para ver isso?

    1. Bom dia Isael,

      Se estiver usando Windows, abra uma janela de comando (CMD), e digite o comando PING seguido do seu endereço IP. Se o endereço IP do ESP8266 for 192.168.1.10, por exemplo, digite:

      ping 192.168.1.10

      Se a comunicação estiver ok, o comando deve responder com algo como

      Reply from 192.168.1.10: bytes=32 time=2ms TTL=64

      Se a comunicação não estiver ok, o comando responde algo como

      Reply from 192.168.1.10: Destination host unreachable.

      Neste caso, peço que reveja as informações de SSID, senha, etc.

      Abraço!

      Adilson – Equipe MakerHero

    2. Ola amigos comprei um arduino e um módulo ESP8266 , por favor mim ajude em um link ou esquema como ligar o modulo com fonte independente ao arduino.

      Ate consegui fazer a fonte de 3.3v

      No arduino tem esta tensão mais é de 50 miliamperes

      Mim ajude por favor ja caiu a medade dos meus cabelos.

      Ja queimei um uno, preciso de um esquema com fonte independente.

      Obrigado

  133. pessoal mim ajudem faco a instalação toda correta e programação mais porem quando abro o navegador chrome e digito o IP aparece a mensagem (Não é possível acessar esse site). porque isso ta acontecendo?

    1. Bom dia Isael,

      Você consegue dar um “ping” no endereço IP, para verificar se a placa está respondendo ?

      Abraço!

      Adilson – Equipe MakerHero

  134. A placa esp8266 precisa de ter uma firmware instalada ? se sim, como eu instalo ?

    1. Bom dia Ricardo,

      O ESP8266 já vem com um firmware instalado, mas você pode consultar estes posts para fazer o upgrade:

      https://www.makerhero.com/blog/upgrade-de-firmware-do-modulo-esp8266/
      https://www.arduinoecia.com.br/2016/05/firmware-nodemcu-esp8266-ESP-01.html

      Abraço!

      Adilson – Equipe MakerHero

  135. com essa placa posso mandar quantos comandos eu quiser desde de quantas i/o tem no arduino posso colocar mais comando ?

  136. Cara, rodei teu tutorial no ESP8266 12 e ele funcionou bem, minha dúvida é a seguinte: eu tô mandando uma string pra porta 80 e visualizo ela no Chrome tranquilamente, mas quando eu uso outra porta e faço um cliente TCP/IP em LabVIEW, as requisições são simplesmente ignoradas pelo ESP. O Led acende quando eu tento iniciar a requisição e no Timeout, mas não envia dado algum. Tu tem como me ajudar a resolver? Valeu!

    1. Boa noite, o que acontece é que o Chrome e qualquer browser ele se conecta porta 80 por default, mas se você quiser que o Browser acesse outra porta você tem de especificar para ele com :porta logo após o informar o servidor.
      Exemplo : http://192.168.0.1:8080

  137. O link da imagem que mostra a ligação parece estar fora do ar, mando abrir a página e ele não carrega a imagem.

    1. Boa tarde Bruno,

      O link para esta imagem está desabilitado. Para ver o circuito, clique na imagem e arraste para uma nova aba no seu navegador.

      Abraço!

      Adilson – Equipe MakerHero

  138. Boa noite! Estou tentando usar o conversor USB CH340 para programar o ESP8266 e estou obtendo o seguinte erro:

    warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed

    As ligações que fiz foram:

    ESP UART
    RX -> TX
    TX -> RX
    VCC -> VCC
    GND -> GND
    Coloquei o Reset com um resistor de 1k no Vcc e utilizo apenas para dar o reset quando o módulo usb induz a reiniciar o esp.

    Se puder me ajudar eu ficarei muito grato, parabéns pelo site!
    Desde já obrigado.

    1. Bom dia Humberto,

      Você fez alguma conexão no pino CH_PD ? Conectamos ele no Vcc com um resistor de 1K.

      Abraço e obrigado!

      Adilson – Equipe MakerHero

    2. Humberto, você conseguiu solucionar este problema? estou com o mesmo. Pode me ajudar??

  139. comprei uno e um driver de reles e wifi shield ESP8266 , detalhes não sei programa mim ajude

  140. Bom dia!
    Posso utilizar o ESP8266 NodeMCU em vez do ESP8266 que você utilizou?
    Teria que mudar algo na programação do arduino?
    Teria que programar algo no ESP8266 NodeMCU?
    Muito Obrigado e parabéns pelo blog!

  141. Eu consigo mudar a variável pela página da internet? exemplo mudar o pino 8 para ligado ou desligado

    1. Olá, acho que a biblioteca arest (www.arest.io) te ajuda.

  142. Olá! Consegui fazer funcionar certinho com o arduino nano. Como eu faço para editar o HTML? consegui alterar cor, tamanho do texto etc.. preciso subir uma imagem e o scr não está dando. Outra coisa, muitas vezes ele fica dando busy quando vai conectar, existe alguma forma de mudar isso?

    1. Bom dia Flávia,

      Você pode colocar os comandos HTML diretamente no programa, adicionando mais linhas como essa:

      webpage += “insira o HTML aqui”;

      coloque o comando que você quer entre aspas, conforme o exemplo acima. Quanto ao busy, isso também aconteceu nos nossos testes. Tente usar uma fonte de alimentação externa para alimentar o ESP8266 e verifique se a conexão fica mais estável.

      Abraço!

      Adilson – Equipe MakerHero

      1. Olá! Eu estou fazendo dessa forma mesmo webpage+= ; mas a pagina fica apenas carregando e da erro. Ai eu comento a linha da imagem e carrega normalmente.

  143. Adilson,
    Qual a versão da IDE do Arduino deve ser usada

    1. Boa tarde José,

      Esse post já tem algum tempo, mas os procedimentos funcionam com versões recentes da IDE como 1.6.7 e 1.6.8

      Abraço!

      Adilson – Equipe MakerHero

  144. Esse modulo precisa de endereço de mac?

    1. Bom dia Alexandre,

      Precisa sim.

      Abraço

      Adilson – Equipe MakerHero

  145. Oi, pessoal, to com uma dúvida, tem como eu criar botões na pagina do webServer dele?
    Tipo, atribuir funções aos botoes, e quando clicar nos botões da pagina ele fazer alguma coisa…
    Tem algum código de exemplo?
    Obrigado, gosto muito deste blog, sempre tem coisas legais e intuitivas!

    1. Boa tarde Mateus,

      Nesse post nós criamos algo parecido com o que você precisa, mas com o NodeMCU: https://www.makerhero.com/blog/esp8266-nodemcu-como-programar/

      Você pode adaptar as funções e código para o ESP8266 ESP-01

      Abraço!

      Adilson – Equipe MakerHero

    2. Amigo, eu consegui alterar o código desta pagina e enviar comandos para o ESP como você quer. Eu ainda estou desenvolvendo o código e buscando melhorias por que estou tendo problemas de velocidade na comunicação do arduino com o ESP. Vou deixar o link do meu GIT com o código.
      Nesse código eu coloquei um sensor de temperatura e um LDR. Qualquer duvida me manda um e-mail.

  146. Pessoal, poderiam me ajudar?

    Estou me aventurando neste mundo agora.
    Recentemente fiz uma bela de uma compra aqui no site, e agora estou tentando começar a mexer com a comunicação do meu Arduino Mega 2560 com wifi (esp8266).

    Bom, realizei a conectorização apresentada neste tutorial, com exceção dos botoes, mas quando eu faço o upload do sketch do teste de comunicação, o MONITOR só me apresenta…

    Versao de firmware
    ** Final **

    , mais nada.
    reparo que quando faço o upload, o led de comunicação do esp pisca, mais depois quando envio um comando qualquer, o meu arduino pisca o RX, mas não acontece nada com o ESP, e não responde nada no monitor.

    Alguém poderia me ajudar?

    1. Boa noite amigo,
      aconteceu a mesma coisa comigo, mudei a velocidade de comunicação da porta ( linha 14 e linha 25 “1º exemplo”) para 9600 e funcionou. Pode ser a por causa da versão do firmware.
      Espero ter ajudado.
      Abraço!

  147. Boa noite pessoal!
    Passei o dia quebrando a cabeça com essa “plaquinha”, enfim consegui fazer funcionar no Uno =D!
    Primeiramente, tive que ajustar o circuito da seguinte forma:
    VCC – alimentado externamente ao arduino com uma fonte 5v + regulador de tensão 3.3v
    GND – ligado a fonte externa + gnd do arduino
    TX – ligado ao pin 2 do arduino
    RX – ligado ao pin 3 do arduino através do divisor de tensão ( utilizei resistores 1K e 2K )
    CH_PD – ligado ao pin 4 do arduino através de outro divisor de tensão ( resistores 1K e 2K )

    Adaptei o código da forma abaixo, assim posso enviar os comandos AT para o ESP8266 e testar.
    Esse link tem uma lista dos comandos que pode utilizar: https://cdn.sparkfun.com/assets/learn_tutorials/4/0/3/4A-ESP8266__AT_Instruction_Set__EN_v0.30.pdf

    No serial monitor, caso não esteja, mude a opção “No line ending” para “both NL & CR” e a opção do baud para 19200, então:
    Digite SP2 para comunicação com o ESP8266 pela port 115200
    Depois AT+UART=19200,8,1,0,0 para alterar o baud para 19200
    Digite SP1 para alterar a comunicação pela port 19200
    Digite AT para confirmar se está OK

    #include

    /*
    RX pino 2
    TX pino 3
    */
    SoftwareSerial esp8266(2, 3);

    #define DEBUG true
    #define CH_PD 4

    void setup()
    {
    pinMode(CH_PD,OUTPUT);
    digitalWrite(CH_PD,HIGH);

    Serial.begin(19200);
    }

    void loop() {
    if (Serial.available()) {
    String s = Serial.readString();
    /*
    alternando a port com ESP8266
    qdo enviar SP1 pelo serial monitor alterna a comunicação para 19200
    qdo enviar SP2 pelo serial monitor alterna a comunicação para 115200
    */
    if(s == “SP1rn”){
    Serial.println(“setport 19200”);
    esp8266.begin(19200);
    }else if(s == “SP2rn”){
    Serial.println(“setport 115200”);
    esp8266.begin(115200);
    }else{
    sendData(s, 1000, DEBUG);
    }
    }
    }

    String sendData(String command, const int timeout, boolean debug)
    {
    Serial.println(“Enviando :” + command);

    String response = “”;
    esp8266.print(command);
    long int time = millis();
    while ( (time + timeout) > millis())
    {
    while (esp8266.available())
    {
    char c = esp8266.read();
    response += c;
    }
    }
    if (debug)
    {
    Serial.print(response);
    }
    return response;
    }

    Espero que isso ajude quem passou algumas horas quebrando a cabeça sem sucesso.

    1. Teria como montar um diagrama e compartilhar com outras pessoas como foi feita as ligações? Estou procurando qual módulo wi-fi comprar e preciso ter tudo dimensionado e projetado antes de comprar e acabar queimando tudo!

  148. bom dia amigos, primeiramente gostaria de agardecer pelo post, me ajudou bastante, e segundo gostaria de deixar algumas informaçoes, porem peço que tomem cuidado antes de fazer oq for decrito aqui.

    1 contrariando oque muitos postaram, nao precisa de uma fonte externa para o esp8266, utilizei ele normalmente na saida 3,3v do arduino, mais saliento que meu projeto nao consome muito, caso seu projeto necessita de muito processamento oriento a utilizar fonte externa, outra coisa, tbm utilizei meu modulo esp8266 na saida 5v do arduino e ele nao queimou, entao caso seja apenas para algum tipo de teste pode utilizar a saida 5v do arduino com um resistor na faixa de 22ohm ou um cooler junto caso nao tenha o resistor pois na saida 5v ele aquece mais doq o normal sem o resistor porem sem queima-lo, mais para o projeto final utilizem uma fonte da mesma tensao nominal do modulo pois como eu falei foram apenas testes.

    2 nao precisam de uma placa FTDI para atualizar a firmware, consegui atualizar a minha que era AT version:0.21.0.0
    SDK version:0.9.5 e atualizei para

    AT version:0.30.0.0
    SDK version:1.2.0

    utilizei a segunda parte deste post apenas acrescenando a linha AT+CIUPDATE apos a conexao com a rede wifi , ficando assim o comando :
    para esse comando utilizei a baund de 115200 porem apos atualizaçao ele so funcionara com 19200

    sendData(“AT+RSTrn”, 2000, DEBUG); // rst
    // Conecta a rede wireless
    sendData(“AT+CWJAP=”SSID”,”SENHA”rn”, 2000, DEBUG);
    delay(3000);
    sendData(“AT+CIUPDATE”, 2000 DEBUG);
    sendData(“AT+CWMODE=1rn”, 1000, DEBUG);

    rodei esse esquema 2 vezes e pronto ,atualizado, lembrando que a rede wifi tem q ter acesso a internet para atualizar

    explicando porq nao precisa da FTDI:
    os problemas relatados no post, principalmente sobre nao aparecer os caracteres corretamente se da apenas pela comunicacao serial instavel, porem esp8266 conecta normalmente na rede wifi, sendo assim jogando o comando acima ele conecta normalmente na rede e atualiza, mesmo nao mostrando no monitor serial as informaçoes corretas, apos atualizar apenas troque a baund para 19200, pois nessa velocidade o esp8266 fica mais estavel com a nova firmware.

    espero que essas informaçoes os ajudem a resolver seus problemas assim como resolveu o meu.

  149. boa tarde, gostaria de uma ajuda, fiz a ligaçao corretamente e no serial mostra todas as informaçoes corretas porem o ip nao aparece, o campo apos “IP:” fica em branco, aguem sabe me dizer porque isso ocorre?

  150. Olá,
    estou tendo um problema no serial monitor
    na etapa de alterar o baudrate do esp8266.
    aparece somente caracteres estranhos.
    Isso pode ser pq não atualizei o firmware ou problema no esp8266?

  151. Boa noite, gostaria de sua ajuda para obter essa programação para o Arduino DUE. Grato desde ja.

  152. Pelo esquema de ligação do tutorial eu não consegui. Então encontrei esse esquema de ligação: http://cdn.instructables.com/FC5/FW5J/IGHOIQAH/FC5FW5JIGHOIQAH.LARGE.jpg
    As únicas mudanças que fiz foram remover os resistores e ligar o RX (fio verde) diretamente no pino digital 3. Também liguei o TX (fio azul) no pino digital 2. Utilizei um arduino UNO. Funcionou bem com os sketches apresentados nesse tutorial.
    Não consegui fazer funcionar utilizando fontes externas. Tentei duas pilhas com o positivo passando por um diodo IN4007 e o negativo junto com o GND do arduino. O módulo não responde. Se ligar as pilhas direto no módulo o LED azul fica ligado direto e também não acontece a conexão com o módulo ESP8266.
    Obrigado pelo tutorial equipe FelipeFlop.

    1. Ricardo;
      Eu também não consegui e estou desistindo
      Mas vc acendeu uma luz no fim do tunel.
      Mas a questão é TEM QUE DESSOLDAR O CHIP DO ARDUINO?
      Ou tem outra alternativa.
      Grande abraço

    2. Não, eu fiz funcionar com o Atmega 328 no lugar. Não consegui obter o mesmo sucesso com o Arduino mega. O microcontrolador atmega 328 pode ser removido dos arduinos uno, pois não é soldado. Acho que não é por acaso que muitos manuais usam reguladores de tensão e interfaces de comunicação entre o Arduino Uno e o ESP8266. Veja esse exemplo em português com uma interface FTDI 232: https://github.com/douglasresende/starting_arduino_uno/tree/master/esp8266/test_01. Acredito que utilizando essas placas extras as chances de funcionar são muito maiores.

      1. Muito obrigada! Dias quebrando a cabeça e vc me ajudou pra caramba! Valeuzão! rs

        1. Obrigado Stella! 🙂

          Abraço.

          Adilson – Equipe MakerHero

  153. Tem alguma chance de ter algum tutorial falando sobre o Esp8266 ESP12 com arduino? Abraço!

    1. Bom dia Renato,

      Em breve estaremos comercializando esse sensor, e provavelmente vamos lançar um post não só sobre ele, mas também sobre outros módulos da linha ESP, como o ESP-201 e o ESP-07.

      Abraço!

      Adilson – Equipe MakerHero

      1. Alguma atualização quanto a utilização destas novas placas wi-fi com o arduino? Principalmente o mega?

        1. Boa tarde Douglas,

          Já temos 5 posts sobre ESP8266 aqui no Blog, e a princípio você pode replicar esses testes usando Arduino Mega.

          Abraço.

          Adilson – Equipe MakerHero

  154. Pessoal,
    Estou fazendo um projeto com o ESP8266, porém queria utilizá-lo para transferir/enviar um arquivo do cartão SD, conectado ao arduino por meio do módulo de cartão SD vendido na MakerHero, para o meu computador via wifi. Alguém poderia me dizer se isso é possível ou não?
    Desde já, agradeço.

  155. Gostaria de parabenizar o vosso trabalho. Os tutoriais estão muito bons. Esse, em particular, foi o meu preferido. Funcionou do início ao fim com apenas algumas adaptações para o meu projeto.
    Muito obrigado!

    1. Bom dia Eduardo,

      Muito obrigado, ficamos felizes em ajudar. 🙂

      Abraço!

      Adilson – Equipe MakerHero

  156. Prezados, estou querendo utilizar esse sistema para fazer uma triangulação e obter as coordenadas de uma objeto, é possível com esse módulo, alguém já fez algo semelhante e poderia me ajudar?

  157. Bom dia!

    Preciso de um help? Gostaria de usar esse projeto, mas para a ligar reles !
    Já tem algum tutorial?

    Obrigado!

  158. O esp8266 ( como mulher) é dificil mas quando conseguimos ……….
    Enfim: não tenho conseguido nada e pergunto:
    Como elimino os resistores e uso o conversor 5 para 3,3 (já tenho).

    1. Boa tarde José,

      Para utilização do conversor de nível, verifique este tutorial: http://www.arduinoecia.com.br/2015/11/conversor-de-nivel-logico-33-5v-Arduino.html

      Abraço!

      Adilson – Equipe MakerHero

  159. Olá, estou desenvolvento um projeto, onde vou ter um robô feito com arduino e um programa em nuvem… Minha idéia é manter o processador do arduino apenas para fazer a movimentação do robô, interpretar sensores e realizar a comunicação via wireless com a nuvem. Pretendo deixa toda a “inteligencia” do robô ser processada na nuvem e enviando os comandos para o arduino. Para realizar a comunação entre o robô e a nuvem, pretendo usar uma comunicação Wifi, só que estou na dúvida qual seria a melhor opção, o Shield WiFi CC3000 ou se o Módulo WiFi – ESP8266.

    Pesquisando em tutoriais vi que os dois podem realizar as funções de enviar e receber comando via Wifi, porém queria saber qual a mais recomentada e se poderia da informações sobre alcance de sinal e velocidade de comunicação…

    Desde já, grato.

    1. Eu to com a mesma ideia de fazer um robô controlado via wifi

  160. Boa tarde,
    o LED AZUL do meu ESP8266 comprado no site MakerHero FICA SEMPRE ACESO, sempre junto com o vermelho. Sendo assim, não consigo me comunicar com ele.
    Tô usando um arduino UNO, segui esse tutorial exatamente igual, já segui vários outros, tentei tudo quanto é BAUD rate, ligando os GPios e RST no vcc, deixando flutuando, trocando RX com TX, sempre testando no serial monitor e nada. O máximo que consegui de resposta foi um pouco de lixo. Estou usando uma fonte externa, dessas pra protoboard que tem a opção de 3.3V. Comprei tudo no site filipflop, tô aprendendo bastante, mas esse módulo eu não consegui fazer funcionar de jeito nenhum, já gastei muitas horas com pesquisas, vídeos e tutoriais. Se alguém puder dar uma sugestão do que pode ser ou enfrentou um problema parecido, por favor, dê uma luz!! *-* Ah, já tentei também atualizar o firmware com o esp8266_flasher e aconexão com o módulo sempre falha.

    1. Oi, Mariana, tudo bem?
      Já tentou ligar o ESP8266 direto numa pilha (tipo colocar pilhas em série e fornecer uma fonte de aproximadamente 3.3V e cuidado para não exceder estes 3.3V, se não você vai queimar seu módulo que nem eu queimei o meu primeiro -.- )?

      Sério, o que me deixa pasmado nesses tutoriais de internet é essa negligência (só complica a vida de quem não conhece direito o ESP, eu mesmo aprendi depois de muitas horas perdidas, pois decidi ver teoricamente o que poderia estar havendo a nível de sistema digital e de circuitos elétricos, cogitei até que poderia haver interferências eletromagnéticas no circuito, deixando tudo instável), só comentando de maneira bem superficial as consequências de se alimentar o bichinho no arduino.

      Sério, eu li no datasheet e, aparentemente, até para se comunicar com o arduino o espzinho tem dificuldade se não foi alimentado com uma pilha por exemplo. A atualização do firmware é desnecessária em muitos casos, por isso o pessoal nem comenta isso direito, é mais para quem quer programar em LUA direto no ESP.

      Tenta lá, depois vê se deu certo. Devo lembrar que o fato de você ter “apertado” o reset do espzinho, talvez você tenha que instalar um firmware agora (que é mó rolê e eu sugiro que faça que nem um tutorial que tem no youtube) =[

      1. Outra coisa, só de você ligar o ESP e colocar 3.3V no chip enable (CH_PD), já aparece um wifi cujo nome eh algo do tipo “ESP_98529F” ou “AI_THINKER + algum número”.
        Quando eu estava alimentando ele só com o arduíno, as vezes aparecia uma rede “AI_THINKER + algum número” no wifi do meu computador, assim como a de outros vizinhos, mas dava um tempinho e logo sumia.
        Aparecia como uma rede insegura (sinalzinho de alerta amarelo do lado do sinal de wifi)

        O LED Azul fica acedo quando o pino RX do ESP recebe um high, provavelmente se ele só ficava aceso, ele estava recebendo só um high do arduino.
        Tanto é que quando o ESP começa a se comunicar em binário com o arduino ou outro carinha eletrônico, ele fica pistando (“HIGH LOW HIGH HIGH LOW …”) por exemplo.

      2. Esqueci de dizer que, quando você liga o ESP (3V3 no Vin e GND no GND hehe) e joga 3.3V no chip enable (CH_PD) (veja bem, só bastam 3 conexões) já aparece o WiFi (ou a rede, interprete como quiser) do ESP8266 no conexões WiFi do seu celular ou computador. O Nome será algo do tipo “ESP + algum número”, segundo alguns relatos, ou “AI_THINKER + algum número”, que foi o que eu vi.
        Aparece como uma rede insegura (pois não tem senha nem nada).

        Quando eu fazia isto com o ESP8266 ligado no arduino, as vezes, aparecia o “AI_THINKER + algum número”, por alguns segundos, mas logo caía.

        O LED Azul significa que o RX do ESP8266 está em HIGH. Quando o ESP se comunica em binário com o arduíno ou com qualquer outro carinha eletrônico, este LED fica “piscando de maneira meio aleatória”. Isto, em nível digital, é nada mais nada menos que uma sequências de HIGH e de LOW, tipo : “0001101010101011101…” que significa alguma espécie de comando a ser executado, alguma informação recebida, etc.

    2. Esqueci de dizer que, quando você liga o ESP (3V3 no Vin e GND no GND hehe) e joga 3.3V no chip enable (CH_PD) (veja bem, só bastam 3 conexões) já aparece o WiFi (ou a rede, interprete como quiser) do ESP8266 no conexões WiFi do seu celular ou computador. O Nome será algo do tipo “ESP + algum número”, segundo alguns relatos, ou “AI_THINKER + algum número”, que foi o que eu vi.
      Aparece como uma rede insegura (pois não tem senha nem nada).

      Quando eu fazia isto com o ESP8266 ligado no arduino, as vezes, aparecia o “AI_THINKER + algum número”, por alguns segundos, mas logo caía.

      O LED Azul significa que o RX do ESP8266 está em HIGH. Quando o ESP se comunica em binário com o arduíno ou com qualquer outro carinha eletrônico, este LED fica “piscando de maneira meio aleatória”. Isto, em nível digital, é nada mais nada menos que uma sequências de HIGH e de LOW, tipo : “0001101010101011101…” que significa alguma espécie de comando a ser executado, alguma informação recebida, etc.

    3. OBS: retificando o que eu falei. Se você colocou numa fonte externa de protoboard cuja a alimentação está sendo feita via tomada de casa por uma fonte cuja entrada é 100/240 VAC e cuja saída é 9~12VDC, então o ESPzinho pelo menos irá aparecer como rede caso esteja em HIGH o pino chip enable.

      Esqueci de dizer que, quando você liga o ESP (3V3 no Vin e GND no GND hehe) e joga 3.3V no chip enable (CH_PD) (veja bem, só bastam 3 conexões) já aparece o WiFi (ou a rede, interprete como quiser) do ESP8266 no conexões WiFi do seu celular ou computador. O Nome será algo do tipo “ESP + algum número”, segundo alguns relatos, ou “AI_THINKER + algum número”, que foi o que eu vi.
      Aparece como uma rede insegura (pois não tem senha nem nada).

      Quando eu fazia isto com o ESP8266 ligado no arduino, as vezes, aparecia o “AI_THINKER + algum número”, por alguns segundos, mas logo caía.

      O LED Azul significa que o RX do ESP8266 está em HIGH. Quando o ESP se comunica em binário com o arduíno ou com qualquer outro carinha eletrônico, este LED fica “piscando de maneira meio aleatória”. Isto, em nível digital, é nada mais nada menos que uma sequências de HIGH e de LOW, tipo : “0001101010101011101…” que significa alguma espécie de comando a ser executado, alguma informação recebida, etc.

  161. Oi.
    Primeiro, parabéns aos que conseguiram fazer as comunicações funcionarem.
    Segundo, eu não consigo sair da primeira fase, esta é a mensagem:
    ” Versao de firmware
    ** Final ** ”

    O Led azul somente fica mais brilhoso no momento em que abro o Monitor Serial. Depois, a intensidade do brilho diminui e ele constante (sinônimo de que não está processando) e depois imprimisse ** Final **.

    Circuito:
    -> Idêntico ao esquema mostrado, só difere no fato de não se ter o circuitinho dos push buttons (completamente desnecessários à primeira etapa).
    -> O nível lógico TX (arduino) para RX (ESP8266) segue a regra de 3: 5 (volts) / 3.28 (volts), segundo meu divisor de tensão.

    Supondo que o algoritmo e o circuito estejam certos, creio que a única variável que estaria com problemas seria o baud rate, entretanto, eu já coloquei todas as possíveis taxas de baud e eles (arduino e esp8266) não se comunicam de fato.

    Não sei mais o que pode estar dando errado, o circuito já foi revisado e refeito 3 vezes de duas maneiras diferentes de encaixe.

    Se alguém tiver algum palpite, por favor, comente e me fomente alguma ideia.

    Abraços

    1. Obs: há fonte externa e eu já verifiquei os ruídos do circuito, não sendo suficientemente prejudiciais segundo minha intuição.

    2. Já experimentou deixar o monitor serial em 9600? Pra mim funciona assim, apesar eu não conseguir enviar os comandos AT. Mas o Arduíno consegue e toda a comunicação acontece normalmente. Outra dica é interligar os gnd’s do Arduíno e do Esp8266.

      1. Pode ter certeza, eu já testei praticamente todas as possíveis combinações de bauds (só algumas combinações muito pouco prováveis eu não tentei).

        Aparentemente não há comunicação alguma de fato, o ESP8266 simplesmente está ligado.

        A fonte externa está plugada diretamente no arduino, consequentemente o GND é o mesmo para ambos.

        Creio que o problema tem haver com o firmware, mas as informações sobre isso na internet são nimiamente truncadas, então, estou verificando se realmente terei de apelar para essas informações.

        Obrigado pela resposta e abraço!

        1. Ao ver o vídeo de uns ESP8266 funcionando junto do arduíno, pude perceber que há alguma coisa errada com o meu, pois o LED azul do meu nunca apaga, sempre fica acesa, ao passo que o led azul deveria acender apenas se recebesse um comando.

          Obs: achei umas fontes que ensinam tudo sobre o esp8266, só falta eu aprender tudo agora hahaha

          1. Amigo, este problema de luz azul direto acesa eu também tive e se não me engano era o Arduíno deixando o TX ou RX em high. Já tentou mandar a programação para o Arduíno com o ESP desconectado?

    3. Amigo, estou com um aqui na bancada agora e vou te passar como está o meu ESP neste momento:
      Trecho inicial do meu código:
      void setup()
      {
      Serial.begin(9600);
      esp8266.begin(19200);
      //…
      sendData(“AT+CIPSERVER=1,8099rn”, 1000, DEBUG);
      }

      Só não me lembro quais os valores eu mandei no primeiro código para ajustar a velocidade.

      Pinos:
      3 do Arduíno no pino 3 do CD4050 e 2 do CD 4050 no RX do ESP
      2 do Arduíno direto no TX do ESP
      CH_PD do ESP com resistor em série de 1K no +3,3
      CD 4050 Alimentado pelos 3,3 do Arduíno.

      Ao abrir o Monitor serial em 9600, automaticamente Esp manda as informações e o Arduíno começa a conversar com ele.

      1. Olá, estou acompanhando vocês e tbm estou com problemas com o meu esp!
        Estou com o msm problema do nosso amigo Caio e como ele tbm montei o circuito da msm maneira q está nest post, porém aparece a msg:
        ” Versao de firmware
        ** Final ** ”
        E não consigo fazer a comunicação, e acompanhando vcs surgiu a duvida: o q é e p/ q serve esse CD4050?
        Desde já agradeço.
        Abraço

        1. Cara, isto indica falta de comunicação entre o ESP8266 e o Arduino e inúmeros podem ser os motivos.

          Se você está montando o circuito igual o indicado pelo esquema do tutorial. Sugiro que coloque o ESP8266 direto numa fonte externa, por exemplo, em uma pilha de 3.3V. Ela vai fornecer a amperagem necessária para o ESP conseguir se comunicar com o Arduino de maneira formidável, sem instabilidades que prejudicam completamente a troca de informações entre eles.

          Vale ressalvar que tanto o ESP8266 quanto o Arduino precisaram de um mesmo GND. Como fazer isto? Simples joga o GND do Arduíno no polo NEGATIVO da pilha. Tome um certo cuidado ao fazer isso (não deixe um pino solto bater no polo positivo, por exemplo, você queima teu arduino se a pilha estiver carregada – ddp máxima da pilha – e você acidentalmente colocar um GND do arduino no polo positivo da pilha, estando outro GND no polo negativo). A pilha é um potencial flutuante cuja a ddp tende a ser fixa para um determinado período de tempo (obviamente o decrescimento dela segue as equações de Nernst, i.e, exponencial decrescente, semelhante ao de um capacitor cuja constante de tempo seja relativamente elevada).

          Na dúvida, olha o que eu respondi para a Mariana.

          Eu acho que com isto, pelo menos, ver o sinal do ESP no seu reconhecedor de redes wifi você vai ver. Isto é um bom sinal e indica que ele está funcionando plenamente caso está rede fique constante. A partir daí eu creio que dará tudo certo para ti.
          Abraços!

  162. Excelente!!! Achei que nada funcionava com este ESP-01 até eu transferir estes códigos. Estou usando uma fonte 3,3v à parte e um CD4050 para converter o sinal de TX do Arduino. Tudo funcionando redondo. Desafio agora é fazer ao contrário: mudar o estado das saídas através do browser.
    Parabéns ao autor.

  163. Olá, Excelente trabalho com o post, muito bom mesmo, e bastante didático!!! Estou tentando reproduzir o post e estou tendo problema no segundo código disponibilizado: Basicamente, este código só executa o reset do esp8266, não sendo executado nenhum dos comandos em seguida! No monitor Serial aparece:

    AT+RST
    AT+RST

    OK
    WIFI DISCONNECT
    bBÖ†øRcjþ2…c�FÊÉ¥SNÂI�ë”B„n”jˆBĘýþZÿV
    Ai-Thinker Technology Co. Ltd.

    invalid
    WIFI CONNECTED
    WIFI GOT IP
    AT+CWMODE=1
    AT+CIFSR
    AT+CIPMUX=1
    AT+CIPSERVER=1,80

    Obs.: Coloquei um eco no monitor serial para tentar verificar onde o problema ocorria 🙂

    Note que não há resposta depois dos comandos de CWMODE em diante

    Qualquer ajuda será muito bem-vinda!!

    1. Boa tarde Victor,

      Obrigado. Tente alimentar o ESP8266 com uma fonte externa. Alimentando pelo Arduino, fica bem instável a conexão.

      Abraço

      Adilson – Equipe MakerHero

      1. Olá! Já estou alimentando por fonte externa e tomando todos os cuidados possíveis.
        Note que usando o sketch bare minimum e ligando ele no arduino consigo fazer todo o processo manualmente pela Serial… Meu problema está quando passo pra este sketch e só a partir do segundo comando.
        Amanhã vou tentar modificar o sketch para não usar a SoftwareSerial e somente a serial comum pra tentar reduzir as possibilidades (tenho a impressão que o problema está no softwareserial).
        Se tiver alguma ideia deixa aí que farei o teste 😉

  164. Olá a todos.

    Como eu posso fazer para criar duas paginas web dentro do ESP9266, onde a primeira exibi um HELO WORLd e quando eu clico em uma link vai para aoutra pagina com o status do botão ?

  165. Olá pessoal,

    Estou realizando uns testes aqui e o meu ESP-01 está funcionando ok nas portas 2 e 3 (8 e 9… e etc) do UNO porém não consigo comunicar usando as portas 0 e 1 que são o RX e o TX, alguém poderia me explicar o motivo?

    Grato,
    Fabio

    1. Fábio,

      As portas 0 e 1 são da interface serial do ATMega328p – o que não é uma softserial 🙂

      De qualquer forma, ao conectar o UNO via USB, essas portas serão usadas para comunicação com o computador, o que provavelmente irá confundir o hardware se tentar usá-las para testar o módulo wifi.

      Se for usá-las para comunicar-se com o módulo, deve alterar o código para não usar SoftSerial e sim a Serial (já que os pinos 0 e 1 são uma serial física).

      1. Anselmo Adams, valeu pela dica! Perdi horas e horas tentando fazer o módulo funcionar, é exatamente o que tu comentou….troquei os pinos e funcionou!

        Abração

  166. Oi queria saber se consigo colocar botões no modulo, tipo uns 30 botões, e quando eu apertasse algum destes botões, enviaria a informação para o Arduíno?
    Para fazer um controle nem por ir ou RF.. Mais por WiFi, entende?

    1. Sim, basta configurar para enviar via serial, e Arduíno fazer o acionamento

  167. Olá pessoal, consigo fazer a comunicação com o esp8266 através do wifi do celular direto?Sem uso do roteador?

    1. Sim, basta configurar ele como AP.

  168. Boa tarde Adilson!
    Minha dúvida é o seguinte:
    Na minha casa eu tenho uma rede wifi do meu provedor de internet. Quero ligar o módulo ESP8266 no meu arduino, e quero que o módulo se conecte com a minha rede wifi para que eu possa enviar comandos do meu celular que estará conectado a rede wifi de minha casa para ativar os comandos que eu programar no arduino.
    Ou seja… CELULAR – WIFI DA CASA – ESP8266 – ARDUÍNO.

    Isso é possível? Se sim, pode me dar algumas instruções?
    Att, Zarley Almeida.

    1. É possível sim. Até onde eu sei só existe uma maneira de fazer isso deste jeito que você quer. Criar um site para guardar uma variável e o ESP acessar este site de tempos em tempos para verificar esta variável. Depois você terá que criar um sisteminha em PHP ou qualquer outra tecnologia para, através do celular, modificar esta variável. No lado do arduino, para o ESP ler esta variável, você fará isso com os comandos AT. https://room-15.github.io/blog/2015/03/26/esp8266-at-command-reference/ . Conecte o ESP com a rede de sua casa: AT+CWLAP = nome, senha ; conecte o ESP com o site que se encontra a variável: AT+CIPSTART; e depois você pega essa variável com o AT+CIPSEND=GET variavel.txt HTTP/1.1rnHost: seuSite.com.brrnrn ; Então de minuto em minuto, ou o tempo que você quiser, você roda novamente este comando AT+CIPSEND para ver se a variável sofreu modificações.

      Esse é o único jeito que conheço, e se você achar outra maneira de fazer, por favor me fale que também me interessa.

      Valeu

    2. Para esse seu caso, o Blynk cai como uma luva: http://www.blynk.cc/
      Simples, rápido e funcional.

  169. Quando vamos verificar a versão de firmware ele só retorna =

    Versao de firmware
    ** Final **

    O que pode ser?

    1. Boa tarde Rui,

      A velocidade de comunicação está correta ?

      Adilson – Equipe MakerHero

      1. Olá, meu problema está sendo igual ao do Rui Valim Junior, e a velocidade está correta!
        O que poderá ocorrido?

    2. Comigo está acontecendo o mesmo, você conseguiu?Pode me dar alguma dica?

      1. Aconteceu isto comigo também, pode ser problema de velocidade (baud rate), ou o mais provável é a alimentação.

        Utilizei uma fonte externa (carregador de celular), e um regulador de tensão de 5 para 3,3v, para evitar ruido (caracteres aleatórios na serial) coloquei um capacitor eletrolítico de 1000uF por 16v na alimentação, liguei o GND do arduino com o GND do esp e o da fonte e na segunda parte do código retirei o comando de reset (AT+RST), pois o esp volta o BAUD RATE para 115200 quando é reiniciado, o resto é como está no tutorial.

        Qualquer dúvida posta que vamos tentar lhe ajudar.

        P.S: Atualmente uso meu esp-01 em conjunto com um módulo relé para ligar e desligar a lampada do meu quarto através do android (Sem uso do arduino), mas precisei atualizar a firmware para nodemcu.

        1. Você poderia me enviar o esquema de ligação que você fez?
          meu e-mail: [email protected]
          Desde já agradeço.

  170. Posso fazer toda a montagem desse sensacional post usando meu ESP 8266 esp 12 ligando somente
    os terminais equivalentes? No meu aparece RXD, TXD, VCC que devem ser RX, TX, e 3,3V. GND existe.
    Mas CH-PD não existe. Você saberia qual o equivalente?

    Rodolfo (jose rodolfo durante
  171. Informação é a base de tudo.
    eu fiz um trabalho com BLUETOOTH e tive problemas com a comunicação serial, a solução foi “melhorar” a alimentação do módulo, como reguladores de 3,3v são difíceis no interior, eu usei um LM317 para conseguir esta tensão, e um capacitor de alto valor bem próximo dos pinos de alimentação, creio que o ESP8266 deve ter o mesmo comportamento.

  172. entao eu liguei o CHIP ENABLE (CH_PD) com um resistor de 1k no vcc ,usei uma fonte de 3.0 volts por fora e fiz uma ligaçao de terra com fonte e arduino , a velocidade do monitor serial deixei em 9600.
    agora nao entendi isso q vc faloou (quando usava o GPIO_0 em GND) no caso eu nao liguei em lugar nenhum fiz o divisor de tensao com 2 resistor de 10k conforme seu post. e o tx do esp8266 liguei no pino 2 do arduino e o rx no pino 3 …. as ligaçoes estao igual, teria alguma sugestao do que posso fazer ???? e o firmware dele nao sei qual q é que esta instalado , dsd ja agradeço pela ajuda … mto obrigadooo

    1. O GPIO_0 em GND é para atualização de firmware, por que ele modifica o boot quando o esp é energizado, se NÃO for atualizar o firmware deixe ele em vcc (se não for ligado em nada ele fica “flutuando”, as vezes pode atrapalhar na comunicação).
      Essa fonte de 3v fornece até quando de corrente? o led vermelho e azul acende no esp?
      pode ser problema de conexão dos fios jumper mesmo, revise se a ligação está correta.

      1. refiz toda ligaçao e acrescentei o O GPIO_0 ligado no vcc com um resistor de 1k no vcc testei com multimetro e ele apresenta 3 volts sem estar ligado no vcc .
        minha fonte é ate 2 amper .
        o led vermelho esta aceso sim q informa se esta ligado o azul q é de transmissao pisca so qndo ligo a fonte.
        oque apareceu dessa vez foi àààà Versao de firmware
        àà àà à ** Final **

        revisei tudo de novo a ligaçao e permanece a pane eu nao coloquei os botoes ainda nao e o programa a q estou usando é // Programa: Versao firmware modulo ESP8266 e
        // mudanca de baud rate

        1. mas dessa vez retornou “lixo”, o que indica que houve comunicação, mas também houve ruido, tive esse problema também, resolvi colocando um capacitor de 1000uF por 16v na linha de alimentação da fonte.

          1. é acho que nao vou conseguir comunicar o arduino com essa placa nao :/ coloquei o capacitor e nada tbm agora so da a mensagem sem aqueles AaA . Versao de firmware
            ** Final **
            sera que eu preciso mexer na versao dele ? pois nao sei ql versao q é .
            teria alguma dica pra saber ql versao q é ???
            ou alguma outra coisa q eu possa fazer pq ta foda ja pesquisei em mtos lugares mais nada de conseguir …

  173. boa tarde estava olhando essa postagem e tenho um esp8266 ai segui conforme o site só que qndo abro o serial monitor so aparece escrito Versao de firmware e dps de algum tempo *final* , pq nao aparece como aqui no site ???

    1. Boa tarde Anderson, comigo acontecia isso quando o esp não estava com o CHIP ENABLE (CH_PD) em vcc (que é 3,3v), ou quando usava o GPIO_0 em GND, resumindo, o arduino não esta conseguindo estabelecer nenhum tipo de retorno, verifique também a velocidade do monitor serial, 115200 ou 9600.

  174. Olá!
    Não posso conectar este modulo diretamente aos 5V do arduino, porém existe saída 3,3V no arduino UNO, pode ser usada diretamente sem divisor de tensão, certo?

    Abraço

    1. Olá Túlio, na verdade não é muito indicado que faça isso, pois o arduino fornece no máximo 40-50mA, e o esp em alguns casos precisa de 300mA. Use uma fonte externa. Eu uso um carregador de celular que fornece até 600mA conectado a um regulador de tensão de 3,3v 1A.

      1. Entendi, vou me aprofundar a respeito.
        Quais casos por exemplo ele utiliza uma corrente desta?
        Pois estou fazendo experiencias basicas, nao sei como um modulo wifi utilizaria tanta corrente.

        1. Nesse link tem uma tabela com os consumos em cada caso.

          http://www.embarcados.com.br/modulo-esp8266

      2. Ah, se pudesse me dar uma luz com o esquema com a fonte externa!

        Obrigado pela atençao!

      3. Realmente, em relação as saídas digitais, o Atmega 328 soporta no máximo essa faixa de corrente em cada IO. Mas acho que o colega acima se referia ao ponto de 3.3V que vem disponível no Arduino, o que pode perfeitamente ser usada para alimentar um harware externo como esse módulo WIFI (claro, respeitando os 500mA se estiver usando o cabo USB como fonte, ou a especificação de corrente máxima de uma fonte DC externa).

        Abraço

        1. Para deixar bem claro, a saida de 3,3V na placa do arduino fornece somente uma corrente MAXIMA de 50 mA, portanto se for usar mais do que isto, e´obrigatorio o uso de fonte externa.

          1. Fui analisar o circuito do Arduino Uno Rev 3, para entender melhor como funciona a parte de alimentação da placa. A saída de 3.3V do Arduino é referente ao regulador de tensão LP2985, que fornece até 150mA, conectado na saída do regulador de 5V NCP1175, o qual fornece até 1A (e nesse caso restrito a uma fonte externa de 12V). Todos esses dados podem ser obtidos no datasheet de cada componente. A entrada USB fornece (pela especificação do protocolo 2.0) até 500mA, e ela também pode alimentar o regulador de 3.3V (através do FET FDN304, que atua para selecionar a entrada USB como fonte quando o comparador LM358 detecta ausência de fonte externa). Resumindo, a saída de 3.3V fornece até 150mA, que é alimentada pelo regulador de 5V (ou pela entrada USB de 500mA), sendo que este regulador de 5V é alimentado por uma fonte DC externa (através do plug ou pela entrada Vin no soquete) e fornece até 1A para toda a placa.

            Além disso, as condições impostas para definir a corrente máxima no datasheet do ESP8266 são de “pior” caso (no qual o chip consome até 295mA): 90% de duty cycle, transmissão contínua e potência máxima de saída a 1Mbps (e imagino que a maioria aqui não está projetando algo que utilize essa alta taxa de dados). Enfim, se os amigos que compraram esse módulo estão tendo dificuldades para alimentá-lo através do ponto de 3.3V do Arduino, NÃO é porque este fornece no máximo 50mA, tendo em vista os dados fornecidos pelo fabricante do LP2985, que informa capacidade de até 150mA deste regulador de tensão. O mais provável é que o módulo ESP8266 esteja, em determinados momentos, exigindo corrente acima de 150mA, o que extrapola o limite do regulador LP2985, ocasionando mal funcionamento do sistema. Nesse caso, é necessário usar uma fonte externa de 3.3V com capacidade maior de corrente, alimentando o módulo diretamente.

            Por fim, sei que o artigo e alguns amigos aqui estão informando esta corrente de 50mA, porque é o que consta no site do Arduino. MAS tenho duas possíveis explicações para o site estar (equivocadamente) usando valor:

            1. “Margem” de segurança: os reguladores da placa não possuem dissipadores de calor, o que prejudica o funcionamento dos componentes, tendo em vista que as características de funcionamento variam bastante em temperaturas elevadas (que resulta de correntes próximas do limites de operação). Para mim é um motivoinconsistente, pois 50mA não é sequer 50% da capacidade que o regulador LP2985 suporta (que é de 150mA).
            2. Arduino Duemilanove (ainda tenho essa “relíquea”): para mim é motivo mais provável por colocarem 50mA como corrente máxima. Neste projeto não havia regulador de 3.3V na placa, apenas um de 5V (que era o MC33269). Fica a pergunta, quem fornecia o ponto de 3.3V? A resposta: o CI FT232RL. Este conversor USB-Serial possui uma saída de 3.3V, que era utilizado como ponto de alimentação. Olhando o datasheet do FT232RL, encontramos o valor máximo de corrente que ele pode fornecer: 50mA! Parece coincidência, mas prefiro achar que foi apenas um pequeno equívoco que cometeram no site do Arduino, ao manterem a especificação do antigo projeto de 2009, esquecendo de atualizar para o novo modelo que possui um regulador de 3.3V com maior capacidade de corrente.

            Além de tudo que mencionei (se toda minha explicação não foi convincente), basta eu dizer que eu tenho um módulo bluetooth Promi-ESD02 que opera em 3.3V/75mA, e funciona perfeitamente usando o ponto de 3.3V da placa, o que contraria o site do Arduino e o artigo desta página quanto a máxima corrente, que definitivamente NÃO é 50mA.

            Abraços!

  175. Olá amigo MakerHero, amigo eu gostaria de comprar este módulo ESP8266, porem ainda estou com um pé atrás se ele vai ser capaz de realizar oque eu preciso, que seria o seguinte:
    Estou utilizando um EasyVR 2.0 para a automação de uma residencia, eu fiz um app no android para
    mandar os audios via wifi (pelo roteador) pois bem, sabem me dizer se o ESP8266 é capaz de realizar este
    trabalho?

    Obrigado

  176. Boa Tarde,

    Estou tendo algum problema semelhante com o dos amigos que postaram acima.
    Trata-se do seguinte erro ao abrir o Serial Monitor:

    AT+RST

    OK
    “qXÑzÂC!É1±ÿ)ÓCCa*ó “I!a5 )‘I™Ca5 Jr0IN ‘K!ÑCÊ !“÷þ•r_H(¥µThinker Technology Co. Ltd.

    ready
    AT+CWJAP=”ZEUS”,”NEX25101978″

    AT+CWMODE=1

    busy p…
    AT+CIFSR

    busy p…
    AT+CIPMUX=1

    busy p…
    AT+CIPSERVER=1,80

    busy p…

    1. Olá, tive alguns problemas também, NÃO UTILIZE A SAIDA 3,3V DO ARDUINO, POIS O ESP CONSOME MAIS CORRENTE DO QUE O REGULADOR DO ARDUINO PODE FORNECER. Utilizei uma fonte externa (carregador de celular), e um regulador de tensão de 5 para 3,3v, para evitar ruido (caracteres aleatórios na serial) coloquei um capacitor eletrolítico de 1000uF por 16v na alimentação, liguei o GND do arduino com o GND do esp e o da fonte e na segunda parte do código retirei o comando de reset (AT+RST), pois o esp volta o BAUD RATE para 115200 quando é reiniciado, o resto é como está no tutorial.

      1. e também tive esse problema do “busy p…”, integrei os dois códigos de forma que pudesse fazer o upload de uma única vez (por que ele volta o baud rate para 115200 quando é reiniciado), quando acontece esse problema do “busy p…” eu reinicio o esp e ele funciona.

  177. Olá equipe MakerHero, recentemente comprei um módulo ESP8266 de voces, porém assim como muitos estou tendo problemas com os comandos AT , é possivel que seja um problema de firmware , ou as placas que vocês vendem ai ja veem com o firmware atualizado ? Acredito que possa ser um problema com a velocidade da porta serial , tem alguma recomendação ?

    1. Boa tarde Luiz,

      Que tipo de problema você está tendo ? Os módulos vendidos já vem com o firmware atualizado.

      Abraço

      Adilson – Equipe MakerHero

      1. No meu caso nao esta reconhecendo os comandos AT

  178. Boa tarde, gostaria de saber se o módulo esp8266 possibilita conexão através de DNS (domain name system), ou apenas com endereço de ip?
    Grato.

    1. Bom dia Guilherme,

      Aceita sim, só vai depender da sua configuração de rede.

      Abraço

      Adilson – Equipe MakerHero

  179. Olá, uma duvida com relação a comunicação SPI, como é realizada? Você já possui algum tutorial sobre?

    Grato

  180. Olá!
    Parabéns pelos serviços, muito bons e eficientes!
    Recebi os ESP8266 ontem. Vi que muita gente está com dificuldade para por para funcionar. Avancei um pouco – consegui verificar que o ESP está funcionando.
    Para isso conectei o ESP ao módulo FTDI e enviei/recebi informação usando o monitor serial da IDE. Baseei-me em algumas orientações e fiz algumas melhorias.

    Ligações:
    1-) colocar o jumper do FTDI para 3.3V (IMPORTANTE!!!)
    2-) Tx do FTDI com Tx do ESP
    3-) Rx do FTDI com Rx do ESP
    4-) CH_PD do ESP com pull up (4k7) para Vcc do ESP
    5-) GND do FTDI no GND do ESP
    6-) *Vcc (5V) do FTDI num regulador de tensão 3.3V, saída do regulador no Vcc do ESP

    * quando liguei o ESP direto no 3.3V do FTDI e conectei o FTDI na USB ficava conectando e desconectando. Interpretei que o ESP puxava mais corrente que o regulador do FTDI podia fornecer, então o conjunto desligava inteiro, religava e desligava, em um loop. Por isso montei o regulador de tensão, que resolveu o problema.

    Configurações:
    1-) Abrir o monitor serial do Arduino IDE;
    2-) Ajustar baud rate para 115200;
    3-) Ajustar “line ending” para “both NL & CR”

    Texto apresentado no monitor serial (meus comandos estão marcados com >>

    Ai-Thinker Technology Co. Ltd.
    ready

    >>ATat

    ERROR

    >>AT

    OK

    >>AT+RST

    OK
    ets Jan 8 2013,rst cause:4, boot mode:(3,7)
    wdt reset
    load 0x40100000, len 816, room 16
    tail 0
    chksum 0x8d
    load 0x3ffe8000, len 788, room 8
    tail 12
    chksum 0xcf
    ho 0 tail 12 room 4
    load 0x3ffe8314, len 288, room 12
    tail 4
    chksum 0xcf
    csum 0xcf
    2nd boot version : 1.2
    SPI Speed : 40MHz
    SPI Mode : QIO
    SPI Flash Size : 4Mbit
    jump to run user1
    rŽÑ
    Ai-Thinker Technology Co. Ltd.
    ready

    >>AT+GMR

    AT version:0.21.0.0
    SDK version:0.9.5
    OK

    >> AT+CWJAP=””,””

    ERROR

    >> AT+CWJAP=”,”

    ERROR

    >> AT+CWJAP=””,””

    ERROR

    >> AT+CWJAP?

    No AP
    OK

    >>AT+CWLAP

    ERROR

    1. Mais…
      O ESP veio configurado como Access Point (dá para ver com o comando AT+CWMODE? que retorna 2, que significa AP) link para comandos AT do ESP: http://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0CCoQFjABahUKEwjyy7un9fLHAhUJkQ0KHaeEAho&url=http%3A%2F%2Fwww.pridopia.co.uk%2Fpi-doc%2FESP8266ATCommandsSet.pdf&usg=AFQjCNFhQKwZr74NA5KWmJzb05HG_8pSfA

      Então usei meu celular para procurar os APs próximos e lá estava AI-THINKER_A473F5.
      Abs,

      1. Olá Fábio, vc consegui mudar o nome do AP?

        1. Olá, Rafael,
          Não testei os comandos AT abaixo pois pretendo desenvolver para o ESP usando NodeMCU.
          Quando o ESP está configurado para AP, o comando AT para consultar o nome do AP é
          AT+CWSAP?
          Segundo a mesma referência, para setar o nome:
          AT+CWSAP=ssid,pwd,ch,ecn

          A referência é https://room-15.github.io/blog/2015/03/26/esp8266-at-command-reference/

          Abs.

          1. Blz Fábio consegui mudar através deste comando, valew cara.

    2. Bom dia Fábio,

      Legal, realmente o ESP8266 se mostrou instável nos testes. Acho que uma coisa que pode ajudar na comunicação com o arduino é utilizar um módulo de conversor de nível lógico 3.3V-5V, ao invés do divisor de tensão com resistores: https://www.makerhero.com/pd-14770b-conversor-de-nivel-logico-3-3-5v-bidirecional.html

      Abraço!

      Adilson – Equipe MakerHero

  181. Bom dia,

    Parabéns, excelente post, gostaria de saber se com este módulo é possivel criar um app em android para enviar comandos ao ARDUINO de ascender LEDS, RELES, Servos etc. ?

    Abraço.

    Mabson Vinicius

    1. Bom dia,

      Obrigado. Não temos nenhum exemplo de controle do ESP8266 utilizando Android, mas é possível criar um app para isso.

      Abraço

      Adilson – Equipe MakerHero

  182. Rapaz é extraordinário esse site, parabéns!!!
    eu como todo principiante estou com algumas duvidas mas hj só vou perguntar uma blza rs..

    qual a diferença entre esse projeto e o do (COMO COMUNICAR COM O ARDUINO ETHERNET SHIELD W5100)??? ambos estão no site…
    pra simplificar minha duvida vou dizer o que estou querendo, ja tenho o arduino UNO e preciso agora me comunicar usando meu celular android, sendo q ja tenho o shield bluetooth v1.3 mas não serve pois só funciona com versões do bluettoth 2.0 e meu celular e a maioria hj em dia é 4.0 certo?! estressei com esses bluettoth, tem q ter um pra cada tipo de celular rs.

    então qual seria a melhor solução o wireless ou o ethernet?
    “esse wireless poderá ser conectado de uma rede por exemplo criada a partir do roteador wifi do meu celular q usa dados móveis ou apenas do ip da rede local???”
    seja qual for a melhor opção no seu ponto de vista vou comprar aki, pois o preço é justo e tbem vou comprar o rtc DS3231 para programar tarefas se tiver disponível e ai virá as próximas perguntas blza. rs.

    forte abraço e sucesso!
    aguardo seu retorno…

    1. Bom dia,

      A utilização da solução via wireless ou ethernet vai depender do seu projeto. O W5100 é um shield simples de usar, e utiliza a biblioteca nativa da IDE do Arduino. O ESP8266 vai exigir um pouco mais de esforço na parte de programação, e a tendência é que o programa fique um pouco mais pesado, já que algumas funções de rede são programadas na própria biblioteca.

      Abraço e obrigado!

      Adilson – Equipe MakerHero

      1. ok, acho q entendi..!
        vou ficar com o W5100 então pra facilitar rs..

        pelo q percebi não tem muito segredo com toda a explicação mas qquer duvida te procuro Adilson.

        qto ao DS3231 vi uma postagem aki msmo dizendo q ele seria mais estável q as versões anteriores, é vdd???

        bom, vou esperar chegar o W5100 pra concluir a primeira fase do meu projeto e depois vou adquirir o DS3231 e nesse vou precisar de ajuda blza rs.

        muito obrigado pela ajuda amigo! forte Abraço e sucesso!!!

        1. Bom dia Amaral,

          Realmente o DS3231 é mais estável do que o DS1307. Pelo que eu pesquisei, ele é menos sensível às oscilações de temperatura, que fazem com que os outros modelos atrasem alguns segundos.

          Abraço!

          Adilson – Equipe MakerHero

          1. Perfeito, já comprei 🙂
            Obrigado mesmo!

  183. Adilson,

    Se eu ligar uma fonte 12v 1A no jack do arduino vai suprir a necessidade de 300mA do módulo? Ou devo ligar a fonte direto no módulo?

    Obrigado

    1. Boa tarde Thiago,

      Alimente direto o módulo.

      Abraço

      Adilson – Equipe MakerHero

      1. Diretamente no módulo com uma fonte 12v 1A?

        1. Boa tarde Thiago,

          Não, o máximo suportado pelo ESP8266 é 3.3V, você pode aplicar essa tensão diretamente no módulo.

          Abraço

          Adilson – Equipe MakerHero

  184. Alguém por acaso sabe se esse módulo consegue se conectar a uma rede Ethernet já existente, com servidor próprio?

    João Guilherme Reiser de Melo
  185. Gostaria de saber mais sobre esses modulos

  186. Olá,
    Gostaria de saber se tem como comunicar dois arduinos com este modulo.
    Se sim onde encontro material ?

  187. Olá Filipe, queria parabenizar pelo post, mais estou com um problema. Comprei o módulo em sua loja e segui seu tutorial a risca porém não obtive resultados positivos.
    Fazendo o upload do primeiro código aparece isto no serial monitor:

    ets Jan 8 2013,rst c`use:4, boov mode:(3,7)

    wdt reset
    load 0x40000000, len 816, room 16
    tail 0
    chksum 0x8d
    load 0x3ffe8000, l8tail 12
    u 8aco2 dSMusl�Versao de firmware

    ets Jan 8 2013,rst cX]®Y’ ½½Ñ�j½‘•éBšbºJj

    wdt reset
    lo
    ets Jan 8 3013,rst cause:4, boot mode:(3,7)

    wdt reset

    load 0x40100000, len 817, room 16
    tail 0
    chksum 0x8d
    load 0x3fge8000, lrtail 13

    t02 I 4 sl�**Final**

    Não retornando a versão de Firmaware nem nada parecido como o seu tutorial, mas como apareceu o **Final** continuei o tutorial e fiz o upload do código seguinte obtendo :

    “qXÑzÂC!É1±ÿ)ÓCCa *ó “
    I!a5 )“I™Ca5 Jr0IN ‘K!ÑCÊ !‘ ÷þ•r_H(¥µThinker Technology Co. Ltd.

    ready
    qXÑzÂC!Ë1³ÿ)ÓCCa*ó “I!c5 )“K™Ca7 Jr0KH ‘K!ÑCÊ”qXÑzÂC!É1±ÿ)ÓCCa *ó “
    I!a5 )“I™Ca5 Jr0IN ‘K!ÑCÊ !‘ ÷þ•r_H(¥µThinker Technology Co. Ltd.

    ready

    Não cosegui fazer nada com este módulo. O quê eu faço ?

    1. Boa tarde Luiz,

      Isso parece algum problema na configuração da velocidade da serial, por favor tente outras velocidade (9600, 19200, etc).

      Abraço

      Adilson – Equipe MakerHero

    2. Tenho o mesmo problema do Luiz, ja testei várias velocidades de comunicação e o erro persiste.

  188. Ola Adilson atravez deste modulo wireless e posivel encaminhar as posiçoes do giroscopio para o labview e matlab. Utilizando o arduino Leonardo?

    grato
    Jonas

    1. Boa tarde Jonas,

      Ainda não fiz esse tipo de comunicação, mas pelo que pesquisei é possível sim.

      Abraço

      Adilson – Equipe MakerHero

  189. Para duvidas deste componente, sugiro que deem uma olhada em http://RandomNerdTutorials.com/esp8266-web-server
    e tambem no livro feito pelo autor.

  190. Alguém tem algum exemplo de código para acionar as portas do UNO através desse Módulo?
    Já tentei de muitas formas mais até agora sem sucesso.

  191. Boa tarde, tenho uma duvida sobre esse módulo. quero fazer um sistema com relé, sensor de toque e uma comunicação. pensei nesse módulo, mas gostaria de saber se posso fazer isso utilizando apenas ele ou se preciso usar o arduino junto. Valeu.

    1. Boa tarde Marcus,

      Você pode fazer isso só com o sensor, já que ele possui portas de comunicação (GPIO), mas você terá que construir algum circuito auxiliar.

      Abraço

      Adilson – Equipe MakerHero

  192. Infelizmente não consegui fazer funcionar o módulo ESP, não da resposta nenhuma no monitor serial, porém acende o led azul indicando que está recebendo algum dado, segui tudo que está neste tutorial bem como no site arduino e cia. Tem mais algum teste pra fazer ou meu módulo veio com defeito?

    Atenciosamente,

    Ricardo Cardoso Felipe

  193. Olá, belo tutorial estão de parabéns, porém me deparei com o problema citado pelo Gabriel que ocorre n primeiro programa quando se testa a versão do firmware. Apareceu para mim o seguinte:
    —————————————
    à àà Versao de firmware
    à à à à ** Final **
    —————————————
    Acredito que seja a versão do firmware que é diferente.
    Procurei na internet e vi alguns tutoriais sobre a atualização, mas todos utilizam placa FTDI. A pergunta então é como atualizar o firmware? Posso atualizar o firmware do 8266 sem a ter uma placa FTDI a disposição ou terei que comprar uma?

    Obrigado. 🙂

    1. Boa tarde Rafael,

      Ainda não temos um post falando sobre o upgrade de firmware dessa placa. Por favor dê uma olhada neste link: https://www.ukhas.net/wiki/esp8266_firmware_update

      Abraço

      Adilson – Equipe MakerHero

  194. Estou tendo problemas com esta programação:
    O numero do IP não aparece, e aparece esta informação no lugar:

    ready
    AT+CWJAP=”REDE_Helder”,”123456″
    AT+CWMODE=1
    busy p…
    AT+CIFSR
    busy p…
    AT+CIPSERVER=1,80
    busy p…

    Tenho que fazer alguma configuração no meu Roteador?

    1. Boa tarde Helder,

      Acredito que não, pois essa informação também apareceu algumas vezes nos nossos testes. No caso, o módulo não conseguia se conectar seguidas vezes ao roteador (por exemplo, quando reiniciamos o Arduino no meio da comunicação).

      Tente desligar o Arduino por alguns segundos e depois tentar novamente.

      Abraço.

      Adilson – Equipe MakerHero

      1. Infelizmente continua na mesma, vc teria um outro programa para testar este modulo?
        Grato
        Helder

        1. Bom dia Helder,

          Tente este post, por favor: https://www.arduinoecia.com.br/2015/03/arduino-modulo-wireless-esp8266.html

          Abraço

          Adilson – Equipe MakerHero

  195. não funcionou, perguntei para o grupo do arduino brasil e estavam tendo problemas com esse tipo de módulo.

    1. Seguir esse tutorial e não tive problemas. Fiz apenas alguns ajustes pois uso um mega.

      1. Quais foram os ajustes que você fez para usar no arduino Mega?

  196. Alguem tem as ligações e programa do Wifi ESP8266MOD(12) ?
    Grato

    1. Mario neste link http://blog.squix.ch/2015_03_01_archive.html tem algumas pinagens. O que muda é o número de IOs, o exemplo exposto aqui funcionará da mesma naneira…

  197. Prezados,
    Acredito que estou tendo dificuldades de fazer funcionar o sistema abordado neste artigo, pois a alimentação do notebook não está sendo suficiente para o arduino+wireless.. Como faço para ligar a fonte externa no módulo wireless, conforme comentado no artigo?

    1. Boa tarde Breno,

      Utilize os pinos GND e 3.3V do módulo. Não esqueça que 3.3V é a tensão máxima suportada.

      Abraço.

      Adilson – Equipe MakerHero

      1. Alimentação do meu esp foi via fonte de 3.3V do meu arduino mega 2560. Sem problemas.

  198. Boa noite

    adorei o tutorial! Tenho apenas duas dúvidas referente a esse produto:

    -Como esse módulo se comportaria com outros iguais se conectando na mesma rede? Geraria algum tipo de conflito ou algum tipo de sobrecarga na comunicação? Ou várias unidades podem funcionar paralelas sem acarretar problema ou perda de velocidade?
    -A taxa de transferência dele é mesmo de 19200, identica a comunicação bluetooth ? Pergunto pois tenho uma aplicação que utiliza transmissão bluettooth porem gostaria de mudar pra rede wifi para possibilitar varias conexões simultaneas. Meu unico medo é que a minha atual aplicação necessita de respostas ’em tempo real’ (ou próximo disso). Queria saber se é possível com algum tipo de aplicação chegar nesse cenário;

    Obrigado

    1. Boa tarde Igor,

      Pelo tipo de ligação do módulo (comunicação serial), é possível utilizar mais de um ao mesmo tempo no Arduino, mas não temos informações sobre conflitos e/ou sobrecarga.

      Quanto à taxa de transferência, ela é configurável, e aqui conseguimos utilizar em 19200 e 115200.

      Abraço

      Adilson – Equipe MakerHero

  199. É possível conectar esse módulo wireless em uma rede no roteador?

    1. Bom dia Fábio,

      Sim, esse programa de exemplo já faz uma conexão via wireless com o roteador.

      Abraço.

      Adilson – Equipe MakerHero

  200. Olá Filipe, queria parabenizar ´pelo post, mais estou com um problema, preciso urgentemente fazer comunicação entre arduino mega + esp8266, porém estou tentando usar seu codigo e não aparece nem a versão para mim, aparece apenas :
    Versão de firmawe
    ** Final **

    1. Também estou tendo o mesmo problema, alguém poderia esclarecer?

      1. Tb Estou c o mesmo problemas. Alguem da uma ajuda aew pliz?

    2. Tive este problema também, e resolvi da seaguinte forma:
      – Alimentei o módulo com fonte independente de 3.3 V, ligando o terra ao arduino
      – Ainda assim, não consegui comunicação do arduino com o modulo pois ele não reconhecia baud rate de 115200. Mudei a baud rate para 19200 utilizando um terminal do PC ligado ao modulo, no meu caso, com o picocom

    3. Estou com o mesmo problema!

      1. Idem ao Paulo Fernando, fico na mesma, alguém conseguiu resolver, ou sabe o que é?

    4. Também estou com o mesmo problema e não consigo resolver! Se alguém conseguir dá um retorno ae! [email protected], obrigado.

      1. Desconfio que softwareserial é instável a 115200. Talvez a solução do Rodrigo S (acima, 14.ago) funcione. Mas se vc tem um mega, pode usar uma serial para comunicar com o pc e outra para ligar com o esp8266. Tente http://www.instructables.com/id/noobs-guide-to-ESP8266-with-Arduino-Mega-2560-or-U/ (por sua própria conta e risco 😉
        abs!

      2. descobri que meu módulo wifi tem a versão de firmware 0.2! Provavelmente seja isso; estou comprando uma placa FTDI para poder atualizá-lo, pois não consegui fazê-lo somente com o arduino.

      3. Gente, estava tendo problema de comunicação entre o Arduino Uno e o ESP8266EX. Eu conseguia utilizar o módulo diretamente na serial com comandos AT, mas pelo Arduino Uno era impossível. Ele não respeitava os comando AT e as respostas vinham com caracteres estranhos.
        Para resolver esse problema precisei alterar a velocidade de resposta do ESP8266; no entanto, não basta alterar a velocidade no código do Arduino. Tem de alterar no próprio ESP8266.
        Para fazer isso, tive de conectar diretamente na serial do ESP8266 (pelo Arduino Uno ou por um módulo Serial Uart TTL usando a velocidade padrão de 115200). Tem de conseguir executar comandos AT. Se executar AT e devolver um OK, está perfeito. Nesse caso, basta executar o comando: AT+UART_DEF=9600,8,1,0,0. Esse comando fará o módulo alterar sua velocidade para 9600 e armazenar a informação em flesh. Depois disso, resta apenas alterar a velocidade utilizada pelo SoftwareSerial para 9600. A velocidade do Serial padrão do Arduino, usado para debug, pode permanecer em 115200. Lembre de voltar a velocidade do Serial Monitor para 115200 novamente, caso utilize-o para testar a nova velocidade do módulo.
        Esse problema se deve ao limite de velocidade de comunicação das portas seriais virtuais do Arduino Uno. Elas não conseguem alcançar 115200, velocidade default do módulo.
        O meu chipset é o ESP8266EX (o mais comum vendido no ML).
        Gente, observem que o datasheet do Arduino Uno fala que a saída 3v3 permite no máximo 50mA e o datasheet do módulo ESP8266EX exige 80mA. Sugiro uma fonte auxiliar para 3v3.
        De forma alguma liguem no 5V do Arduino Uno. Se tiverem dúvidas, leiam o que diz o datasheet do módulo: tensão de alimentação entre 2,5 e 3,6V.
        Queimei assim meu primeiro módulo comprado no ML… 27,00 a menos… mais o frete…

        1. Amigo, pode me explicar melhor como faço isso? Como conectar direto?

    5. O nivel de sinal com o divisor de tensão do exemplo não funcionou com a minha placa esp também. Precisei aumentar o resistor que liga a entrada Rx do esp com o GND do circuito de 10k (conforme o exemplo daqui) para 22k.

  201. Pessoal, a página não está carregando as imagens (ERRO 404).

    obrigado

    1. Boa tarde Andreas,

      Está normal, sem erros.

      Abraço.

      Adilson – Equipe MakerHero

  202. /*
       SensorNode --> Canal ThingSpeak via Ethernet
    
       Autor: Pedro Cândido do Nascimento Filho
       Email: [email protected]
       Criado em Junho de 2015
    
       O client ThingSpeak eh projetado para que o Arduino, através da
       placa Ethernet possa atualizar um canal de gráficos com dados
       analógicos, lidos através do API ThingSpeak usando HTTP POST.
       O Arduino usa DHCP e DNS para uma simples configuração de rede.
       O código também utiliza um recurso de computação autonômica, que
       é uma função que reseta o Arduino caso a comunicação seja interrompida,
       implementeando o preceito de Auto-Cura. Este procedimento garante
       que o Arduino pode ser recuperar caso depois de desligado de forma
       intencional e não intencional.
       O monitor serial permite acompanhar todo o processo.
      */
    
    //BIBLIOTECAS USADAS NO CODIGO
    #include  //BIBLIOTECA DE PROTOCOLOS DE REDE E INTERNET
    #include  //BIBLIOTECA DE COMUNICAÇÃO COM O SHIELD ETHERNET
    #include "DHT.h" //BIBLIOTECA DO SENSOR DE TEMPERATURA E HUMIDADE
    
    
    //CONFIGURACOES DO SENSOR DE HUMIDADE E PRESSAO
    #define DHTPIN A2 // pino que estamos conectando o sensor DHT-11
    #define DHTTYPE DHT11 // definindo o modelo do sensor como DHT 11
    DHT dht(DHTPIN, DHTTYPE);
    
    //CONFIGURACOES DA REDE
    byte mac[] = {0x56, 0x48, 0x6B, 0x21, 0x57, 0x76 }; // Endereço MAC gerado manualmente (56-48-6B-21-57-76)
    
    //CONFIGURACOES DO THINGSPEAK
    char thingSpeakAddress[] = "api.thingspeak.com";
    String writeAPIKey = "MBCS6S5IHPOF84FW"; //API KEY DO CANAL UTILIZADO
    const int updateThingSpeakInterval = 16 * 1000;      // Time interval in milliseconds to update ThingSpeak (number of seconds * 1000 = interval)
    char thingspeak_data[128]; //variável que guarda os dados que serão enviados
    
    //CONFIGURACOES DE VARIAVEIS
    long lastConnectionTime = 0;
    boolean lastConnected = false;
    int failedCounter = 0;
    int LedVerde = 2;
    int LedVerm = 3;
    
    
    //INICIALIZAÇÃO DO CLIENTE ETHERNET
    EthernetClient client;
    
    //FUNÇÃO DE CONFIGURAÇÕES
    void setup()
    {
      Serial.begin(9600); //INICIO DA PORTA SERIAL
      Serial.println("SENSOR DHT-11: ON-LINE!"); //MSG DE FUNCIONAMENTO DO SENSOR
      dht.begin();//INICIO DO SENSOR
      startEthernet(); //INICIO DA FUNCAO ETHERNET
      pinMode(LedVerde, OUTPUT);
      pinMode(LedVerm, OUTPUT);
    }
    
    //FUNCAO DE RECURSIVIDADE
    void loop()
    {
         
      char dht_temp[6];//cria variavel do tipo char que vai armazenar valores de temperatura do dht
      char dht_umid[6];//cria variavel do tipo char que vai armazenar valores de umidade do dht
      float h = dht.readHumidity();//faz leitura de umidade e armazena na variavel h do tipo float
      float t = dht.readTemperature();//faz leitura de temperatura e armazena na variavel t do tipo float
    
      if (isnan(t) || isnan(h)) {//verifica se existiu leitura de temperatura e umidade
        Serial.println("Falha ao ler sensor DHT");//exibe mensagem em caso de erro na leitura
      } else {
        dtostrf(h, 1, 2, dht_umid); //copiando float umidade para char dht_umid
        dtostrf(t, 1, 2, dht_temp); //copiando float temperatura para char dht_temp
      }
    
      //salva na variavel char thingspeak_data variaveis que serão enviadas para o servidor thingspeak no formato field1=xx(valor umidade)&field2=xx(valor temperatura)
      sprintf(thingspeak_data, "field1=%s&field2=%s", dht_umid, dht_temp);
    
      //IMPRIME ATUALIZACAO NO MONITOR SERIAL
      if (client.available())
      {
        char c = client.read();
        Serial.print(c);
      }
    
    
      //DESCONECTAR DO THINGSPEAK
      if (!client.connected() && lastConnected)
      {
        Serial.println("...desconectdo");
        Serial.println();
        client.stop();
      }
    
      // ATUALIZACAO DO THINGSPEAK
      if (!client.connected() && (millis() - lastConnectionTime > updateThingSpeakInterval))
      {
        updateThingSpeak(thingspeak_data); // envia variavel thingspeak_data para a função updateThingSpeak
        Serial.println(thingspeak_data);// exibe via serial os dados enviados de temperatura e umidade
       
      }
    
      // CHECA SE O ARDUINO PRECISA SER RESETADO >>> FUNCAO AUTONÔMICA
      if (failedCounter > 3 ) {
        startEthernet();
      }
    
      lastConnected = client.connected();
    }
    
    //FUNCAO DO CABECALHO HTTP POST DO THINGSPEAK
    void updateThingSpeak(String tsData)
    {
      if (client.connect(thingSpeakAddress, 80))
      {
        client.print("POST /update HTTP/1.1n");
        client.print("Host: api.thingspeak.comn");
        client.print("Connection: closen");
        client.print("X-THINGSPEAKAPIKEY: " + writeAPIKey + "n");
        client.print("Content-Type: application/x-www-form-urlencodedn");
        client.print("Content-Length: ");
        client.print(tsData.length());
        client.print("nn");
        client.print(tsData);
        lastConnectionTime = millis();
        if (client.connected())
        {
          Serial.println("Connecting to ThingSpeak...");
          Serial.println();
          failedCounter = 0;
          digitalWrite(2,HIGH);
          delay(5000);
          digitalWrite(2,LOW);
        }
        else
        {
          failedCounter++;
          Serial.println("Connection to ThingSpeak failed (" + String(failedCounter, DEC) + ")");
          Serial.println();
          
        }
      }
      else
      {
        failedCounter++;
        Serial.println("Falha de conexao ao ThingSpeak(" + String(failedCounter, DEC) + ")");
        Serial.println();
        lastConnectionTime = millis();
         digitalWrite(3,HIGH);
          delay(5000);
          digitalWrite(3,LOW);
      }
    }
    
    //FUNCAO DE CONEXAO ETHERNET
    void startEthernet()
    {
      client.stop();
      Serial.println("Conectando o Arduino a rede...");
      Serial.println();
      delay(1000);
    
      // CONEXAO USANDO DHCP
      if (Ethernet.begin(mac) == 0)
      {
        digitalWrite (2,LOW);
        Serial.println("Falha do DHCP, reinicie o Arduino para tentar novamente");
      }
      else
      {
        Serial.println("Arduino conectado a rede usando DHCP");
        Serial.println();
      }
      delay(1000);
    }
    
    
    
    
    
    
    
  203. Boa noite,

    Primeiro, gostaria de parabenizá-lo pelo post tão bem explicado.
    No meu caso, meu ESP8266 deve estar com um firmware diferente do seu usado.
    Poderia, por favor, nos ensinar um modo para atualizar para funcionar junto com o arduino?

    Muito obrigado!

    1. Bom dia Alexandre,

      Obrigado. Ainda não temos um post específico para atualização de firmware. Qual a versão do seu módulo ?

      Abraço.

      Adilson – Equipe MakerHero

  204. Parabéns, mais um post excelente!

    1. Obrigado Carlos !

      Abraço.

      Adilson – Equipe MakerHero

      1. Olá, por favor qual versão do firmware vc está usando, eu estou enfrentando instabilidade do modulo…tem momentos que ele para de comunicar e fica busy…….

        vc enfrentou isso?

Trackbacks and Pingbacks

  1. […] de Maio de 2018 autor ESP8266, Wireless  23 de junho de 2015  Adilson […]