23 março 2015

Conecte o Arduino na rede wireless 802.11 com o módulo ESP8266

O módulo wireless ESP8266 permite que você conecte o seu Arduino às redes wi-fi (wireless) padrão 802.11 b/g/n, que são as redes mais comuns utilizadas para acessar a internet. Funciona tanto como um AP (Access Point, ou ponto de acesso), como no modo STA (Station), enviando e recebendo dados.

conectando arduino na rede wireless com modulo ESP8266

Esse módulo é muito parecido fisicamente com alguns módulos NRF24L01, mas, diferente desses, não temos o cristal de 16 Mhz na placa, mas temos leds indicadores de funcionamento e comunicação.

Características e pinagem do módulo ESP8266

No datasheet do chip ESP8266 você encontra todas as informações sobre o CI, e abaixo destaco as mais importantes :
  • Suporte à redes  802.11 B/G/N
  • Alcance aproximado: 91 metros, dependendo do ambiente
  • Tensão de operação : 3.3 VDC
  • Comunicação serial (pinos TX, RX)
  • Possibilidade de upgrade do firmware
  • 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
  • Operando nos modos TCP/UDP, permite até 5 conexões simultâneas

Quem já trabalhou com o módulo Bluetooth HC-05 ou HC-06 não terá dificuldade em utilizar o ESP8266, já que ele também se comunica via serial com o Arduino, e pode ter a sua configuração alterada por meio de comandos AT.

Abaixo, a disposição dos pinos do módulo :
ESP8266 Pinout and details
Este módulo trabalha com nível de sinal de 3.3V, assim devemos utilizar um divisor de tensão no pino RX (recepção/serial).

Conexão do ESP8266 ao Arduino Uno

Os pinos RX e TX do Arduino Uno são, respectivamente, os pinos digitais 0 e 1. Como esses pinos são utilizados também para comunicação com o computador, vamos "criar" uma serial nos pinos 2 e 3 por meio da biblioteca SoftwareSerial. Assim, podemos acompanhar os resultados da conexão do módulo ESP8266 no serial monitor. 

Utilize um resistor de 10K para ligar o pino CH_PD (Chip Enable) ao pino 3.3V da alimentação do módulo.


Circuito Arduino e módulo ESP8266
No circuito acima montei o divisor de tensão com resistores de 220 e 330 ohms, reduzindo a tensão no pino RX para aproximadamente 3V. Utilize a calculadora de divisor de tensão para calcular a tensão de saída de acordo com os resistores que você estiver usando.

Outra observação importante tem relação com a alimentação do módulo, de 3.3V. Nos testes eu usei o pino 3.3V do Arduino, mas o módulo em algumas situações necessita de até 300mA de corrente, bem acima dos 50mA que o Arduino pode fornecer. Assim, para evitar sobrecarga, utilize uma fonte de alimentação externa para o módulo.

Programa  e download biblioteca ESP8266

Para o funcionamento do módulo juntamente com a biblioteca SoftwareSerial, precisamos fazer uma pequena alteração na biblioteca ESP8266. Primeiramente, faça o download da ESP8266 clicando aqui. Em seguida descompacte o arquivo e coloque a pasta da biblioteca dentro da pasta LIBRARIES da IDE do Arduino.

Dentro dessa pasta, procure pelo arquivo ESP8266.h :

Biblioteca ESP8266

Abra esse arquivo utilizando o editor de textos de sua preferência e procure pela linha contendo o seguinte valor:

//#define ESP8266_USE_SOFTWARE_SERIAL

Retire as barras duplas do começo da linha para que o uso da SoftwareSerial seja habilitado. A linha ficará assim:

#define ESP8266_USE_SOFTWARE_SERIAL

Salve o arquivo ESP8266.h. Agora carregue o seguinte programa no Arduino :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Programa : Teste modulo wireless ESP8266
// Autor : Arduino e Cia

// Carrega as bibliotecas ESP8266 e SoftwareSerial
#include "ESP8266.h"
#include "SoftwareSerial.h"
    
// Cria uma serial nas portas 2 (RX) e 3 (TX)
SoftwareSerial minhaSerial(2 , 3); 

// Define que o modulo ira utilizar a serial minhaSerial
ESP8266 wifi(minhaSerial);

// Configuracao ID e senha da rede Wireless
#define SSID        "NOME_DA_REDE"
#define PASSWORD    "SENHA_DA_REDE"


void setup()
{
    Serial.begin(9600);
}

void loop(void)
{
    Serial.print("Inicializando modulo\r\n");
    Serial.print("Versao do firmware: ");
    Serial.println(wifi.getVersion().c_str());
    // Define modo de operacao como STA (station)
    if (wifi.setOprToStation()) {
        Serial.print("Modo STA ok\r\n");
    } else {
        Serial.print("Erro ao definir modo STA !r\n");
    }
    
    // Conexao a rede especificada em SSID
    if (wifi.joinAP(SSID, PASSWORD)) {
        Serial.print("Conectado com sucesso a rede wireless\r\n");
        Serial.print("IP: ");       
        Serial.println(wifi.getLocalIP().c_str());
    } else {
        Serial.print("Erro ao conectar rede wireless !!!\r\n");
    }
    
    Serial.print("*** Fim ***\r\n");
    while(1){}
}

Esse arquivo conecta o módulo à rede wi-fi especificada em SSID (troque o NOME_DA_REDE e SENHA_DA_REDE pelas informações da sua rede wireless), e mostra no serial monitor o endereço IP que foi obtido :

ESP8266 - Serial Monitor

Na pasta de exemplos da biblioteca, você tem outros programas para utilizar o módulo como Webserver, conexões TCP/UDP, buscar informações de páginas web, etc.

98 comentários:

  1. Fiz todo o processo e dá este erro ao carregar a sketch

    ArduinoEPS8266.ino:5:21: fatal error: ESP8266.h: No such file or directory
    compilation terminated.
    Erro compilando.

    ResponderExcluir
    Respostas
    1. Boa tarde,

      Me parece que a sua IDE não reconheceu a biblioteca. Tente renomear a pasta para um nome mais curto, por exemplo ESP8266_LIB.

      Abraço !

      Excluir
    2. É mais simples que isso. Quando você inclui nova pasta na biblioteca do Arduino manualmente, você deve fechar e abrir o programa novamente para que ele reconheça

      Excluir
  2. Olá a todos.
    Tenho algumas destas plaquinhas, e estou com dificuldades em receber uma string contendo os dados das listas de AP. Os dados são frequentemente recebidos "truncados", o que fica impossível tratar corretamente os dados recebidos. Descobri que se eu usar a HardwareSerial, os dados são recebidos de uma forma bem menos truncada. Usei para testes um arduino nano e até um arduino UNO. Se usar o software serial, a taxa de erro chega a ser absurda. Segue o código que gera a lista de APs disponíveis:


    // Funcao que gera uma string que contem os APs detectados....
    String BUFFER_ESP;
    while((BUFFER_ESP.substring(BUFFER_ESP.length()-2)!="OK")){
    BUFFER_ESP += (char)Serial.read();
    delay(1);
    }

    A resposta que recebo é a seguinte (exemplo):

    AT+CWLAP

    +CWaCWLP:(2
    +CWLAP:(3,GVT-5AA3",-9,"aa:bb:cc:ddee:ff",1)
    +WLAP:(4,"CampaoDeTudo",-8,"ab:hh:xy:yx:e9:32",1)
    +WLAP:(4T79A8",-87,"ppkk:yz:83:79:8",

    A primeira linha da resposta, ele não recebe quase nenhuma informação
    Na segunda, a primeira aspas do SSID não é recebida.
    No terceiro, o nome do SSID é truncado, e no último, faltam dados.

    Gostaria da opinião de vocês, pois estou a semanas me debatendo neste código. Agradeço qualquer ajuda.

    ResponderExcluir
    Respostas
    1. Bom dia,

      Pela sua descrição, o seu problema tem a ver com o tamanho do buffer do hardware da serial.

      Tente abrir esse arquivo :

      \arduino\hardware\arduino\avr\cores\arduino\HardwareSerial.h

      E procure por essa linha :

      #define SERIAL_BUFFER_SIZE 64

      Tente alterar esse número para um valor maior, como 256 ou 512, e faça os testes novamente.

      Abraço !

      Excluir
  3. Boa tarde,
    fiz como no exemplo acima, porém esta dando as duas mensagens de erro. Como posso resolver?

    ResponderExcluir
    Respostas
    1. Boa tarde Rafael,

      Quais mensagens estão aparecendo ? Aparece na hora de compilar ?

      Abraço.

      Excluir
  4. Boa noite, esta ocorrendo a seguinte mensagem "Erro ao definir modo STA", alguém tem ideia do que possa ser?

    ResponderExcluir
    Respostas
    1. Boa tarde Pedro,

      Essa mensagem aparece em que momento ? Na própria IDE ?

      Excluir
  5. Voce teria algum material sobre a criação de um webserver para ativação de um led pela web ?
    aqui esta acontecendo o mesmo erro do Erro ao definir modo STA o que pode ser ?

    ResponderExcluir
  6. Boa tarde,

    Ainda não tenho, mas pretendo criar um post sobre isso. Quando ao erro STA, ainda não entendi onde ele aparece, é na IDE ?

    Abraço.

    ResponderExcluir
  7. Também estou com erro STA. O Erro aparece no Serial Monitor do Arduino: Inicializando modulo
    Versao do firmware:
    Erro ao definir modo STA !r
    Erro ao conectar rede wireless !!!
    *** Fim ***

    ResponderExcluir
    Respostas
    1. Boa tarde,

      Você está usando o mesmo módulo que eu usei no post ? Refiz o procedimento e esse erro de STA não apareceu.

      Abraço.

      Excluir
  8. Mesmo com alimentação individual, aparece o erro "Erro ao definir modo STA". Este erro aparece no Serial Monitor do Arduino. Estou testando com Arduino UNO e também MEGA.
    Inicializando modulo
    Versao do firmware: ******Aqui aparece uns caracteres estranhos, mesmo mudando a velocidade da porta ********
    Erro ao definir modo STA !r
    Erro ao conectar rede wireless !!!
    *** Fim ***

    ResponderExcluir
    Respostas
    1. Aqui também, dá o mesmo erro.

      Excluir
    2. Comigo acontece o mesmo. Já revisei tudo e não ha erro de instalação nem configuração. Monitorei todas as voltagens e estão corretas.

      Excluir
    3. mesmo erro... tem algum outro arquivo para testar?

      Excluir
    4. Testei o módulo sem o chip Atmega na placa Arduíno, usando só a interface serial e um prog. terminal e acessei o módulo Wifi (via comandos AT) sem problemas. O problema só acontece com o Atmega.

      Excluir
  9. Continuo com o mesmo erro. Sem solução até o momento. Já tentei no UNO, no Mega, no Nano e no Pro Mini. Mas continuarei tentando...

    ResponderExcluir
  10. Boa tarde,

    Estou com esse erro
    no matching function for call to 'ESP8266::ESP8266(SoftwareSerial&). Alguém pode me ajuda?

    ResponderExcluir
    Respostas
    1. Boa tarde Rodrigo,

      Você fez a alteração na biblioteca, para utilizar a SoftwareSerial ?

      Abraço.

      Excluir
    2. tambem estou com esse erro aparece tudo invalido nao aparece a versão do firware e erro sta tudo isso na serial parece que o arduino "responde " certo mais o esp8266 nao entende direito
      vi alguns tutoriais na internet e o povo muda o firware dele sera que esse erro tem haver porque nao fiz isso ?e como nao tenho a placa para fazer pode usar o arduino mesmo igual quando se grava um pro mini ? alguem ajuda aeee pelo amor de Deus ja to ficando louco

      Excluir
    3. No meu está dando o mesmo erro você conseguiu fazer funcionar? Se sim pode me ajudar?

      Excluir
  11. Boa noite,

    sim segui todos os passos mais pelo que parece a biblioteca não está instalada, quando tento instalar ele dar a seguinte mensagem ---"Biblioteca inválida encontrada em C:\Program Files (x86)\Arduino\libraries\WiFi: 'arch' folder is no longer supported! See http://goo.gl/gfFJzU for more information" --- Sabe o que pode ser?

    ResponderExcluir
    Respostas
    1. Oi Rodrigo,

      Não sei exatamente, mas é algum erro na instalação da biblioteca, ou arquivo truncado, ou ainda biblioteca incompleta.

      Tente fazer a instalação da IDE desde o início, se possível com outra versão de IDE.

      Abraço !

      Excluir
  12. Boa noite.
    Montei meu circuito exatamente como você, com exerção de que no lugar de resistores de 220 e 330 ohms, usei 3 resistores de 1k cada, assim obtive uma tensão de 3.3V. Assim meu modulo funcionou por uns 30 minutos, consegui conetar, tudo belezinha.

    Mas depois não conectou mais no wifi. Percebi que o led azul não liga mais. Você acha que pode ter avariado meu modulo?

    ResponderExcluir
    Respostas
    1. Boa noite Emerson,

      Pode ser que tenha danificado, mas aparentemente você fez tudo certo.

      Abraço !

      Excluir
    2. Seu divisor de tensão fornece uma dízima periódica, fazendo o esp operar sobre uma tensão pouco mais de 1% maior do que o limite aceitável. Talvez tenha sido isso embora eu ache pouco provável.

      Excluir
  13. Teria como distinguir qual o melhor? esp8266 ou nrf24l01? Qual seria a diferença entre eles? Qual o mais indicado?

    Abraço

    ResponderExcluir
    Respostas
    1. Boa noite,

      São placas com características diferentes. o ESP8266 se conecta à rede wifi comum, no roteador da sua casa, por exemplo. Já o NRF24L01 tem um protocolo específico, que se comunica apenas com outros módulos NRF24L01.

      De qualquer forma, são dois módulos muito bons, e a escolha vai depender da sua aplicação.

      Abraço !

      Excluir
  14. Boa noite. Também não estou conseguindo fazer funcionar o ESP8266. Aparece a mensagem "Erro ao definir modo STA". O interessante é que o ponto de acesso dele aparece na lista de pontos de acesso no wifi do notebook. O que está parecendo é que ele não está permitindo alterar o modo de operação dele. Alguma sugestão de testes para identificar o problema ou mesmo qual é o problema?

    ResponderExcluir
  15. Vejo que é um erro comum ,mas alguem encontrou uma solução? estou com esse problema

    Inicializando modulo
    Versao do firmware:
    Erro ao definir modo STA !r
    Erro ao conectar rede wireless !!!
    *** Fim ***

    ResponderExcluir
    Respostas
    1. altera a velocidade para minhaSerial.begin(19200);

      Resolveu me o problema

      Excluir
  16. Olá está aparecendo para mim, " Erro ao definir modo STA " no monitor serial, isso porque pelo visto ele não está conseguindo ler o firmware. Vi na internet algumas técnicas para atualizar o firmware, porém necessita de uma placa ftdi para comunicação (coisa que não tenho). Será que é necessário atualizar o firmware?

    ResponderExcluir
  17. Pessoal, consegui fazer o ESP responder aos comandos AT usando esse exemplo: https://www.youtube.com/watch?v=XdGFzLANsd4
    A diferença é que não é utilizado o divisor de tensão entre o pino TX do arduino e o RX do ESP, como está no exemplo aqui do Arduino e Cia. Porém, a alimentação do ESP é feita com os 3,3 V. No meu teste, usei a tensão disponível no pino Vin do arduino passando por um rebaixador de tensão 5-3,3V (usando um AMS1117). Após conectar todo o circuito, abri o monitor serial, e ao digitar os comandos AT e enviar, o ESP respondeu corretamente, dando OK ao final de cada comando. Assim, consegui fazer ele conectar à minha rede local wireless. Agora só falta fazer ele funcionar recebendo os comandos AT via código e fazer ele interpretar os comandos via página html. Ainda não tive tempo de fazer esse teste.
    OBS.: outro detalhe importante: ele somente respondeu corretamente os comandos AT via monitor serial com a opção "nenhum final de linha" selecionada e a taxa de 9600. Nas demais, deu erro.

    ResponderExcluir
  18. Boa noite, tive o mesmo problema "Erro ao definir modo STA", e após algumas pesquisas atualizei o firmware para "v0.9.5.2 AT Firmware.bin" e o problema foi resolvido, consegui conectar. Para atualizar utilizei um Conversor USB-TTL - RX e TX de microcontroladores - FTDI. Segui o tutorial deste link http://iot-playground.com/2-uncategorised/35-esp8266-firmware-update . Espero ter ajudado!

    ResponderExcluir
  19. Boa Noite,

    Fiz todos os procedimentos conforme o tutorial, porém o no monitor está sendo apresentado a seguinte mensagem >

    Inicializando modulo
    Versao do firmware:
    Erro ao definir modo STA !r
    Erro ao conectar rede wireless !!!
    *** Fim ***

    Alguem pode me ajudar ??

    P.s estou utilizando o arduino mega.

    ResponderExcluir
    Respostas
    1. minhaSerial.begin(19200);

      Resolveu me o problema , andei dois dias com o mesmo problema

      Excluir
    2. que a inicialização não é permitido

      Excluir
  20. Galera ao enviar o comando AT para o modulo, está sendo apresentado no monitor vários codigos, ao invés de ser apresentado o OK.

    ResponderExcluir
  21. Também estava com o problema do "Erro ao definir modo STA". Descobri que o problema estava no ESP8266.h com velocidade em 9600. Troquei para 19200 e funcionou. Procure por "baud =" (linha 50).

    ResponderExcluir
    Respostas
    1. Troquei a velocidade do meu arquivo e resolveu meu problema.

      Excluir
  22. Boa noite, consegui fazer meu ESP8266 conectar na rede sem erro, mas gostaria de saber como fazer ele subir uma página web, saberia me ajudar?

    ResponderExcluir
    Respostas
    1. Igor, compartilhe a mágica que você faz para conseguir, eu estou tendo o mesmo problema citado por vários aqui.
      Inicializando modulo
      Versao do firmware:
      Erro ao definir modo STA !r
      Erro ao conectar rede wireless !!!
      *** Fim ***

      Excluir
  23. Ola tudo bem
    Eu estou com um problema com o modulo esp8266 eu configurei o modulo com server IP + Port 2000
    Todo esta funcionando bem eu consigo enviar dados e receder só ele fica desligando a conexão Socket com o terminal em 2 em 2 minuto eu preciso apertar o botão para ser conectar novamente Alguém saber o Problema
    Obrigado

    ResponderExcluir
  24. Pessoal, estou montando um relógio que, além de atualizar as horas pela internet, também mostra a previsão do tempo. Estou usando um UNO e o ESP8266. Consegui vencer vários problemas tais como comunicação entre as placas e tamanho do buffer da serial. O problema agora é receber dados XML na serial para tratá-lo. No formato JSON até consegui acessando o site OpenWeatherMap, mas o mais interessante é o serviço do CPTEC/INPE, que retorna no padrão XML. O link é http://servicos.cptec.inpe.br/XML/cidade/3464/previsao.xml. Se voces testaremo no browser vai retornar a previsao do tempo para 4 dias (cidade de Niteroi-RJ), mas não consigo os mesmos dados na serial do Arduino. Alguém tem um luz ?

    ResponderExcluir
    Respostas
    1. Da uma olhada no tamanho do xml às vezes ele é mto grande

      Excluir
  25. Galera, não consigo fazer a comunicação com o ESP8266, aparentemente ele liga o led azul, mas não responde a nenhum comando. Simplesmente trava... Liguei ele com uma fonte externa de 5V passando por um regulador de tensão AMS117 e saindo 3.3V. O TX do Arduino passei por um divisor de tensão caindo o nível de tensão da saida do arduino para o RX do ESP8266. Mas ele trava aki:

    ----Inicializando modulo
    ----Versao do firmware:

    Depois nao aparece mais nada.
    Alguma idéia ?

    ResponderExcluir
  26. estou tendo problemas de incompatibilidade com as bibliotecas:adafruit ESP 8266 master e iteadlib wee esp 8266

    meu projeto trabalha com acelerometro q vai detectar uma queda e enviar uma informação via wifi.
    alguem poderia ajudar?

    ResponderExcluir
    Respostas
    1. Vc conseguiu alguma coisa ?
      estou com um projeto parecido

      Excluir
  27. Como é possível ligar o ESP8266 para que ele funcione alimentado pelo Arduino, sendo que o Arduino não tem corrente suficiente nas portas para que o ESP8266 consiga atuar de forma correta?
    Este tutorial foi realmente testado????

    ResponderExcluir
    Respostas
    1. Boa noite Nobre,

      Foi testado sim. Não só esse como todos os outros posts desse blog.

      Às vezes eu ultrapasso os limites do Arduino, como nesse post do ESP8266, mas como estou num ambiente de testes, não tem muito problema: ligo, testo por alguns minutos, escrevo.

      Não é um projeto para ficar ligado "direto". Nesse caso, recomendo o uso de alimentação externa, como eu comento no post.

      Abraço!

      Excluir
  28. Bom dia. Depois de 2 semanas lutando contra o ESP8266, consegui meu primeiro retorno OK.
    Alimentei o arduino UNO via USB pra manter o debug via monitor serial e alimentei o ESP com uma fonte externa (de pc mesmo, fio laranja 3,3v). Liguei o GND da fonte externa no GND do Arduino UNO e o 3,3v da fonte externa no 3,3v do arduino. Pelo que me parece, o arduino é fraco pra alimenta-lo e se usar uma fonte externa, devem estar interligadas.

    ResponderExcluir
    Respostas
    1. Você precisa apenas unificar os GND não os 3.3 V q isso é perigoso

      Excluir
    2. Pode me ajudar também estou a mais de 2 semanas lutando, e ainda nada, estou usando esse modulo:

      http://www.institutodigital.com.br/pd-28d5ec-modulo-wirelles-esp8266-esp-12-shield-solda-terminais.html?ct=&p=8&s=1

      Excluir
  29. Cara, meu display acende mas não aprece nenhuma mensagem. Não tenho nenhum potenciômetro colocado na placa. É possível fazer funcionar sem ele?

    ResponderExcluir
    Respostas
    1. Bom dia,

      Você vai precisar de algum ajuste de contraste. Se não tiver um potenciômetro, tente utilizar um resistor no lugar.

      Abraço!

      Excluir
  30. Alguien soluciono este problema necesito ayuda para conectarme me marca error

    Inicializando modulo
    Versao do firmware:
    Erro ao definir modo STA !r
    Erro ao conectar rede wireless !!!
    *** Fim ***

    ResponderExcluir
  31. Oi Galera, curti muito o post, o melhor que achei e mais simples do assunto.
    Gostaria de saber se existe algum exemplo ou se vocês me recomendam algum lugar para aprender a usar isso juntamente com o Android!!....

    Muito Obrigado

    ResponderExcluir
  32. No meu aparece o erro:

    no matching for call to ‘ESP8266(SoftwareSerial&)’

    na hora que mando verificar.

    ResponderExcluir
  33. Tenho o mesmo erro de todos "Erro ao definir modo STA", fiz um if: if(minhaSerial.available()) e ele retorna false. Alguem sabe resolver?

    ResponderExcluir
  34. Cara, estava com o mesmo problema "Erro ao definir modo STA".
    Alguém acima disse que realizou o update da firmware e resolveu, então comecei a tentar também (o problemae que não tenho o FTDI então usei o arduino uno r3 mesmo). fucei de tudo quanto é jeito no ESP e resolvi ! agora só ão sei dizer ao certo qual o passo que matou o problema.
    No final mesmo após mudar diversas vezes a firmware (deixei a firmware final da ai-thinker-0.9.5.2-9600) que tem o Baud em 9600. ainda estava com problemas.
    então testei a comunicação do arduino com o ESP usando o cod abaixo (que é apenas um by pass entre as duas seriais)

    #include "SoftwareSerial.h"
    // Cria uma serial nas portas 2 (RX) e 3 (TX)
    SoftwareSerial minhaSerial(2 , 3);
    void setup()
    {
    Serial.begin(9600);
    minhaSerial.begin(9600);
    }
    void loop()
    {
    while (minhaSerial.available()) {
    Serial.write(minhaSerial.read());
    }
    while (Serial.available()) {
    minhaSerial.write(Serial.read());
    }
    }

    Assim abri a serial e envie o Comando AT (lembrar de deixar o envio de NL & CR e configurar o BAUD)
    Não recebi o OK. entao , liguei o RX do ESP direto no pino 3 do arduino.
    e ai comecei a receber dados. (acho que era mal contato, ou o meu divisor de tensão feito com dois resistores de 10K - (2,5v) não era suficiente.
    realizei novamente o upload do cod. acima e bum! funcionou.
    abaixo tela:

    Inicializando modulo
    Versao do firmware: AT version:0.21.0.0
    SDK version:0.9.5
    Modo STA ok
    Conectado com sucesso a rede wireless
    IP: +CIFSR:STAIP,"192.168.25.9"
    +CIFSR:STAMAC,"18:fe:34:e4:cf:d1"
    *** Fim ***


    Se fosse novamente eu iniciaria testando a comunicação, pq atualizar a FW deu trabalho.

    ResponderExcluir
  35. Para quem quer atualizar a Firmware do ESP segue site para tutorial.

    http://www.allaboutcircuits.com/projects/update-the-firmware-in-your-esp8266-wi-fi-module/


    Aqui é o local onde conseguir a FW para Baud 9600.

    http://wiki.aprbrother.com/wiki/Firmware_For_ESP8266

    Também usei arquivos deste site (porem não recomendo os procedimentos deste, seguir o primeiro link é mais simples).

    https://developer.mbed.org/users/sschocke/code/WiFiLamp/wiki/Updating-ESP8266-Firmware.

    Como disse eu realizei o procedimento diversas vezes, coloque a firmware 1.5 do primeiro tuto (que permite mesch), Matei e ressuscitei o ESP (quando troquei o Baud para 9600, não conseguia comunicar pela serial , mas o programa ESP_DOWNLOAD_TOOL_V2.4- salvou a vez! não sei como ele continuou a comunicar 115200 )
    Por fim eu usei os arquivos do segundo link tutorial (arquivos esp_flasher) so trocando o arquivo (boot_v1.1.bin) pelo arquivo (ai-thinker-0.9.5.2-9600).
    Verificar os tutorial para detalhes de endereço de memoria, etc...

    Espero ter ajudado.

    ResponderExcluir
  36. ola tive um problema, o meu nem aparece a versão do firmware! alguem me ajuda ?

    ResponderExcluir
  37. tive um problema, não recebo resposta do esp, no monitor serial não sai de versão de firmeware e não mostra a versão. Alguem me ajuda!

    ResponderExcluir
  38. Não consigo obter retorno do ESP-01 com este tutorial. Só consigo obter resposta quando faço upload do BareMinimum e ligo os terminais de comunicação do ESP-01 nos terimais 0 e 1 do arduino. Ao ligar o shield, recebo informações referentes a versão:
    ets Jan 8 2013,rst cause:1, boot mode:(3,6)

    load 0x40100000, len 1396, room 16
    tail 4
    chksum 0x89
    load 0x3ffe8000, len 776, room 4
    tail 4
    chksum 0xe8
    load 0x3ffe8308, len 540, room 4
    tail 8
    chksum 0xc0
    csum 0xc0

    2nd boot version : 1.4(b1)
    SPI Speed : 40MHz
    SPI Mode : DIO
    SPI Flash Size & Map: 8Mbit(512KB+512KB)
    jump to run user1 @ 1000


    SDK í
    ^¦ˆI*PŽ Y‹YKÐøƒ ŒÖ


    Mas não consigo sai disto.
    Daria para trocar o firmware somente com o Arduino, ou preciso obrigatoriamente do cabo FTDI?

    ResponderExcluir
  39. Trocentas pessoas com o mesmo erro e o cara do blog nem faz questão de responder.
    Comecei a fazer o tutorial agora pouco e constatei que, segundo o algoritmo postado, esse erro pode representar inúmeras coisas, as mais bobas vão desde a um erro na senha ou no nome da rede, a coisas, aparentemente, muito mais complexas.
    Eu fiz umas medições no circuito ilustrado no blog e constatei que o ESP8266 gera um ruído bem grande no circuito no protoboard (é até natural isto dado ao fato dele ter uma antena). Percebi que este ruído gera uma lentidão no processamento do Arduino, fazendo-me suspeitar de que isto acarrete um problema na comunicação e, consequentemente, gerando o erro que todo mundo está vendo no monitor serial.
    Se eu conseguir fazer o circuito funcionar, eu relato o procedimento que usei.

    ResponderExcluir
    Respostas
    1. Boa noite,

      Apenas não tive tempo de testar esse módulo adequadamente pois, como você mesmo disse, o erro pode representar inúmeras coisas. Tem também o fato de que muitos módulos vieram com uma configuração de baud rate diferente, então estou pensando em montar algum tutorial sobre como (re)programar isso, o que facilitaria bastante,eu acho.

      Para não dar uma resposta "genérica", preferi deixar a discussão aberta e permitir que usuários com mais experiência no assunto pudessem publicar suas experiências, como você fez. :)

      Abraço e obrigado!

      Excluir
  40. A ddp de 3.3V do arduino diminue consideravelmente, creio que não seja ruído promovido pela anteninha do ESP8266, deve ser o fato de o arduíno não dar conta da corrente exigida pelo ESP8266.
    Quando pluguei uma fonte externa de 12V no arduino, este ficou com o valor da tensão 3.3V mais estável.
    Logo o erro:

    "Inicializando modulo
    Versao do firmware:
    Erro ao definir modo STA !r
    Erro ao conectar rede wireless !!!
    *** Fim ***"
    Que ocorre na maioria dos casos dos comentários daqui pode estar no algoritmo, na parte referente aos baud rate. É o que acho

    ResponderExcluir
  41. Gelera, consegui! No meu projeto subiu sem erro! No inicio ele apresentou o erro que esta acontecendo em todos ao definir em modo STA.Mas ele retornou com o ip da minha rede!
    Inicializando modulo
    Versao do firmware: 0018000902
    Erro ao definir modo STA !r
    Conectado com sucesso a rede wireless
    IP: 192.168.0.145
    *** Fim ***


    Logo em seguida,logo em seguida fui no meu roteador wireless, verifiquei se eles estava conectado. Peguei o mac address do ESP8266 e pedi para o meu roteador entregar outro ip para aquele mac! Resetei o arduino e tive essa resposta na serial :

    Inicializando modulo
    Versao do firmware: 0018000902
    Modo STA ok
    Conectado com sucesso a rede wireless
    IP: 192.168.0.145
    *** Fim ***

    ResponderExcluir
  42. Agora, para a galera que conseguiu .
    Voces conseguiram subir o webserver usando a biblioteca?Vlw

    ResponderExcluir
  43. A ligação serve para o ESP e Arduino Pro Mini? Obrigado.

    ResponderExcluir
  44. O erro poderia ser causado pela demora do DHCP do roteador em atribuir um endereço IP ao ESP8266?

    ResponderExcluir
  45. linha 12 está dando erro o que eu faço ?

    ResponderExcluir
  46. Olá No meu estou testando mais a linha 12 está dando como errado o que faço ?
    linha 12: ESP8266 wifi(minhaSerial); entre em contato comigo por favor whatsapp (17) 98195-4690 ou gmail igormatheus521@gmail.com

    ResponderExcluir
  47. Alguem me ajuda sou novato :


    Arduino: 1.6.8 (Windows 7), Placa:"Arduino/Genuino Uno"

    teste3:12: error: no matching function for call to 'ESP8266::ESP8266(SoftwareSerial&)'

    ESP8266 wifi(minhaSerial);

    ^

    C:\Users\pro\Documents\Arduino\teste3\teste3.ino:12:25: note: candidates are:

    In file included from C:\Users\pro\Documents\Arduino\teste3\teste3.ino:5:0:

    C:\Users\pro\Documents\Arduino\libraries\ITEADLIB_Arduino_WeeESP8266-master/ESP8266.h:60:5: note: ESP8266::ESP8266(HardwareSerial&, uint32_t)

    ESP8266(HardwareSerial &uart, uint32_t baud = 9600);

    ^

    C:\Users\pro\Documents\Arduino\libraries\ITEADLIB_Arduino_WeeESP8266-master/ESP8266.h:60:5: note: no known conversion for argument 1 from 'SoftwareSerial' to 'HardwareSerial&'

    C:\Users\pro\Documents\Arduino\libraries\ITEADLIB_Arduino_WeeESP8266-master/ESP8266.h:38:7: note: constexpr ESP8266::ESP8266(const ESP8266&)

    class ESP8266 {

    ^

    C:\Users\pro\Documents\Arduino\libraries\ITEADLIB_Arduino_WeeESP8266-master/ESP8266.h:38:7: note: no known conversion for argument 1 from 'SoftwareSerial' to 'const ESP8266&'

    C:\Users\pro\Documents\Arduino\libraries\ITEADLIB_Arduino_WeeESP8266-master/ESP8266.h:38:7: note: constexpr ESP8266::ESP8266(ESP8266&&)

    C:\Users\pro\Documents\Arduino\libraries\ITEADLIB_Arduino_WeeESP8266-master/ESP8266.h:38:7: note: no known conversion for argument 1 from 'SoftwareSerial' to 'ESP8266&&'

    Foram encontradas múltiplas bibliotecas para "ESP8266.h"
    Usado: C:\Users\pro\Documents\Arduino\libraries\ITEADLIB_Arduino_WeeESP8266-master
    Não usado: C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_WeeESP8266-master
    exit status 1
    no matching function for call to 'ESP8266::ESP8266(SoftwareSerial&)'

    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.

    ResponderExcluir
  48. Ola galera para solucionar esse erro Sta vai na biblioteca
    ESP8266.h troque o "baud ="9600 para 19200 porem so o SOFTWARE_SERIAL e não o HardwareSerial ok

    ResponderExcluir
  49. Na parte "SoftwareSerial minhaSerial(3 , 2);"
    No local "minhaSerial" coloco o nome da minha porta serial?

    ResponderExcluir
    Respostas
    1. Oi Franklin,

      Não, isso é só o nome da porta. pode deixar como está.

      Abraço!

      Excluir
  50. Pessoal eu estava com o mesmo problema, resolvi com esse tutorial http://blog.filipeflop.com/wireless/esp8266-arduino-tutorial.html, usei o codigo de lá. Abraços.

    ResponderExcluir
    Respostas
    1. Boa tarde Neykson!

      Vou deixar passar esse comentário porque o post do blog FILIPEFLOP fui eu que fiz ! :-P

      Abraço e obrigado!

      Adilson

      Excluir
  51. Olá, está ocorrendo o seguinte erro, o que poderia ser?
    Obrigado desde já.
    Inicializando modulo
    Versao do firmware:
    Erro ao definir modo STA !r
    Erro ao conectar rede wireless !!!
    *** Fim ***

    ResponderExcluir
  52. Não usado: C:\Program Files (x86)\Arduino\libraries\ESP8266
    exit status 1
    no matching function for call to 'ESP8266::ESP8266(SoftwareSerial&)'

    o meu deu esse erro

    ResponderExcluir
    Respostas
    1. Boa noite Leonardo,

      Tem alguma pasta "intrusa" aí na sua pasta de bibliotecas. Alguma biblioteca com o nome errado ou algo parecido.

      Abraço!

      Excluir
  53. 'wifi' was not declared in this scope.

    Como resolver esse erro?
    Uma vez que no começo do código está declarado:

    // Cria uma serial nas portas 2 (RX) e 3 (TX)
    SoftwareSerial minhaSerial(2 , 3);

    // Define que o modulo ira utilizar a serial minhaSerial
    ESP8266 wifi(minhaSerial);

    ResponderExcluir
    Respostas
    1. conseguiu resolver? estou com o mesmo problema.

      Excluir
  54. Estou pensando em automatizar minha cortina.
    Com esse módulo eu consigo configurar uma página html ou um app para abrir e fecha-la pelo meu smartphone?
    Obrigado!

    ResponderExcluir
    Respostas
    1. Oi Henrique,

      Consegue sim. O trabalho maior vai ser criar o aplicativo pra isso, mas é perfeitamente possível.

      Abraço!

      Excluir
    2. Mas usar uma pagina html seria mais fácil, não? Por exemplo pegar uma página usada num exemplo da Ethernet Shield, será que funciona?

      Excluir
  55. Olá, acho que o meu está com algum problema de contato, pois as luzes não ficam fixas por muito tempo, digo, antes nem conseguia que a luz azul acendece, aí tirei o jumper do CH_PD e coloquei de novo e ele começou a funcionar. Mas tem horas que ele fica mais fraco, e tenho que dar uma mexida nos fios para voltar a luz. Estou tendo o mesmo erro de "Erro ao definir modo STA" mas vou tentar atualizar o arquivo para 19200 como alguns estão dizendo ou tentar atualizar o firmware (o que fiz uma vez no passado mas não consegui, pois sou novato em arduino).

    ResponderExcluir
  56. Olá blz pura tenho um ESP 05 será que essa ligação da certo com ele? me falaram que ele precisa de um conversor serial e não tenho!!

    ResponderExcluir
    Respostas
    1. Boa noite,

      Você pode usar um Arduino Uno sim, praticamente da mesma maneira que fiz nesse post.

      Abraço!

      Excluir
  57. Preciso desenvolver um projeto de comunicação entre Arduino Mega ou UNO juntamente com ESP8266 controlada pelo TOUCHOSC. (como experiêcia poderia ser um projeto para: apagar e acender um led através de um Push Botton e também acender e apagar gradualmente um led através de um botão deslizante (Fade) do TouchOSC). Lamentavelmente, após exaustiva procura na NET nada encontrei
    sobre o assunto que atendesse minhas expectativas. Vocês poderiam me ajudar?

    ResponderExcluir
    Respostas
    1. Boa noite Valmor,

      Acho que posso te ajudar, entre em contato utilizando o formulário de contato no lado direito da página, por favor.

      Abraço!

      Excluir