Tutorial Módulo Wireless ESP8266 com Arduino 319

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.

Módulo Wireless 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):

Módulo ESP8266 - Pinos

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):

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.

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:

Circuito montado

Gostou? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no final do artigo) e visite nossa loja FILIPEFLOP!

Posts Relacionados

Deixe uma resposta

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

319 Comentários

  1. Parabéns, mais um post excelente!

    1. Obrigado Carlos !

      Abraço.

      Adilson – Equipe FILIPEFLOP

      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?

  2. 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 FILIPEFLOP

  3. [code]
    /*
    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);
    }

    [/code]

  4. 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 FILIPEFLOP

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

  6. É 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 FILIPEFLOP

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

  8. 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 FILIPEFLOP

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

  9. 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…

  10. 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?

        Ricardo Cardoso Felipe
  11. 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 FILIPEFLOP

      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: http://www.arduinoecia.com.br/2015/03/arduino-modulo-wireless-esp8266.html

          Abraço

          Adilson – Equipe FILIPEFLOP

  12. 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. 🙂

    Rafael dos Santos Gomes
    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 FILIPEFLOP

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

    Ricardo Cardoso Felipe
  14. 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 FILIPEFLOP

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

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

  17. 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 FILIPEFLOP

  18. 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 FILIPEFLOP

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

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

  20. Gostaria de saber mais sobre esses modulos

  21. 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
  22. 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 FILIPEFLOP

      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 FILIPEFLOP

  23. 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 FILIPEFLOP

      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 FILIPEFLOP

          1. Perfeito, já comprei 🙂
            Obrigado mesmo!

  24. 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 FILIPEFLOP

  25. 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 nas orientações de http://rancidbacon.com/files/kiwicon8/ESP8266_WiFi_Module_Quick_Start_Guide_v_1.0.4.pdf 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.filipeflop.com/pd-14770b-conversor-de-nivel-logico-3-3-5v-bidirecional.html

      Abraço!

      Adilson – Equipe FILIPEFLOP

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

    Grato

    Lucas Dal Ponte Feliciano
  27. 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 FILIPEFLOP

  28. Olá equipe filipeflop, 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 FILIPEFLOP

      1. No meu caso nao esta reconhecendo os comandos AT

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

  30. Olá amigo filipeflop, 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

  31. 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!

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

  33. 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 …

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

    Lenilson Amaral Barreto
  35. 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
  36. 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 FILIPEFLOP

      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.

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

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

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

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

  41. 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 ?

  42. 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!!

    Victor de O. Rodrigues
    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 FILIPEFLOP

      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 😉

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

  44. 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!

  45. Boa tarde,
    o LED AZUL do meu ESP8266 comprado no site filipeflop 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.

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

  47. 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 FILIPEFLOP

  48. Bom dia!

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

    Obrigado!

  49. 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?

  50. 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 FILIPEFLOP

  51. 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 FILIPEFLOP, para o meu computador via wifi. Alguém poderia me dizer se isso é possível ou não?
    Desde já, agradeço.

    1. conseguiu?

  52. 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 FILIPEFLOP

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

        Douglas Menegon Cordeiro
        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 FILIPEFLOP

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

        Stella Azevedo Marques
        1. Obrigado Stella! 🙂

          Abraço.

          Adilson – Equipe FILIPEFLOP

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

  55. 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?

  56. 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?

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

  58. 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!

      Douglas Menegon Cordeiro
  59. 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!

  60. 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: http://blog.filipeflop.com/wireless/esp8266-nodemcu-como-programar.html

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

      Abraço!

      Adilson – Equipe FILIPEFLOP

    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.

      https://github.com/bmxeu16/Servidor-web-arduino-bootstrap/blob/master/Conandos%20para%20ESP8266

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

    1. Bom dia Alexandre,

      Precisa sim.

      Abraço

      Adilson – Equipe FILIPEFLOP

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

    José Eduardo M.Rodrigues
    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 FILIPEFLOP

  63. 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 FILIPEFLOP

      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.

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

  65. 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!

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

  67. 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 FILIPEFLOP

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

  68. 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 FILIPEFLOP

    2. Resolvido!

  69. 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!

    Vinícius Jean Ferreira
    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

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

    hugo leonardo barbosa
  71. 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:

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

      Abraço!

      Adilson – Equipe FILIPEFLOP

  72. 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 FILIPEFLOP

  73. 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 FILIPEFLOP

    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

  74. 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?

  75. 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: http://blog.filipeflop.com/wireless/upgrade-de-firmware-do-modulo-esp8266.html

      Abraço.

      Adilson – Equipe FILIPEFLOP

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

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

    jjose rodolfo durante
  78. Estou com duvidas quanto a capacidade desse modulo, com ele consigo aplicar esse projeto? http://blog.filipeflop.com/arduino/automacao-residencial-com-arduino-acenda-lampadas-pela-internet.html
    Devido a pagina web ser mais robusta…

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

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

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

    Edilson Maia Favero
  82. Excelente post! Rotinas muito criativas e bem elaboradas! Agora é só colocar em prática.

    Obrigado!

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

  84. 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á.

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

  86. 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ê.

  87. Olá Adilson, parabéns pelo post, fiquei com uma duvida caso eu use o adaptador (https://www.filipeflop.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 FILIPEFLOP

      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

  88. 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?

    TUANE LISBOA SILVA PAIXÃO
  89. 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 FILIPEFLOP

  90. 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?

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

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

  93. 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…

  94. 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
    ÿ

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

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

        Leonardo Baptistella
        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

      David garajan rohwedder
  95. Boa noite pessoal, preciso da ajuda de vocês

    Gostaria de saber como ficaria esse experimento http://blog.filipeflop.com/arduino/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]

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

  97. 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…

    Vinicius da Silva Almeida
    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.

  98. 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=,,

  99. 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!

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

  101. esta dando erro nesse linha,

    sendData(webpage, 1000, DEBUG);

    podem me ajudar?

    1. Qual a mensagem que parece?

  102. Boa tarde,

    Muito bom o post.

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

    Obrigado

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

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

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

  106. 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?

  107. 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?

    Leonardo Brozinga Viglino
    1. Boa tarde Leonardo,

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

      Abraço!

      Adilson – Equipe FILIPEFLOP

  108. 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!!!

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

  110. 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?

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

  112. 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?

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

  114. 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.filipeflop.com/pd-aa99a-sensor-de-umidade-do-solo-higrometro.html.

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

    Clarice Gonçalves Barreto
    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 ?

  116. 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 filipeflop) 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

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

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

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

  120. 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”).

  121. 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: http://blog.filipeflop.com/arduino/automacao-residencial-com-arduino-acenda-lampadas-pela-internet.html

      Abraço!

      Adilson – Equipe FILIPEFLOP

  122. 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!

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

  124. 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 ?

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

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

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

      Giovanni Bauermeister
  128. 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

  129. 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 =/

  130. 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. mm

      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!

      Giovanni Bauermeister
  131. 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…

  132. 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 **

  133. 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 ?

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

  135. 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!

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

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

  138. 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 **