Tutorial Módulo Wireless ESP8266 com Arduino 449

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

449 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.

    1. Caique,

      Sugiro você levar sua ideia de projetos para nosso fórum! Muito melhor de prestar ajuda por lá 😉

      Abraços!
      Diogo – Equipe MakerHero

  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.

    1. Olá Julio!

      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

  34. Muito bom, espero ler mais como este!

    1. Olá Renato!

      Obrigado pelo reconhecimento!! Sugiro você também dar uma olhada no nosso fórum. Lá você pode tirar algumas dúvidas e postar seus projetos. Colaborar e aproveitar a comunidade:

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

      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

    1. Olá Hugo!

      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

  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_D