Boa noite a todos!!

Estou com uma dorzinha de cabeça para aprender a utilizar esse módulo esp8266, eu até consigo mandar dados do navegador firefox pro arduino, e fazer os dados retornarem para o navegador, e serem exibidos, mas tudo trava após isto, rsrs. Sei que estou fazendo alguma coisa errada, vou postar o código aqui, por favor não riam, rsrs. Será que alguém poderá me ajudar? Estou usando o Mega 2560. Acho que o setup esta certinho...

#include <ESP8266.h>
ESP8266 wifi(Serial2);
String rede = "Anderson";
String senha = "espiritismo";

void setup(){
  Serial2.begin(115200);
  Serial.begin(57600);
  Serial.println(wifi.restart());
  Serial.println(wifi.getVersion().c_str());
  if (wifi.setOprToStation()){
      Serial.print("Modo Station OK \r\n");
  }else{                                  
      Serial.println("Erro");}
  if (wifi.joinAP(rede,senha)){
      Serial.println("Login efetuado com sucesso");
  } else {
  Serial.println("Erro de senha ou rede");}  
 
  Serial.println(wifi.getLocalIP());
 
  if (wifi.enableMUX()){
      Serial.println("Múltiplas conexões ativadas");
  }else{
      Serial.println("Erro ao habilitar Múltiplas conexões");}
    
  if(wifi.startTCPServer(80)){
      Serial.println("Servidor iniciado");
  }else{
      Serial.println("Servidos não iniciado");}
 
   if (wifi.setTCPServerTimeout(10)) {
       Serial.print("set tcp server timout 10 seconds\r\n");
   } else {
       Serial.print("set tcp server timout err\r\n");
 }
}

void loop(){

uint8_t buffer[128] = {0};

uint8_t mux_id;
uint32_t len = wifi.recv(&mux_id, buffer, sizeof(buffer), 100);
if (len > 0) {
  Serial.print("Status:[");
  Serial.print(wifi.getIPStatus().c_str());
  Serial.println("]");
  Serial.print("Received from :");
  Serial.print(mux_id);
  Serial.print("[");
  for(uint32_t i = 0; i < len; i++) {
    Serial.print((char)buffer[i]);
    }
    Serial.print("]\r\n");
    if(wifi.send(mux_id, buffer2, len)) {
      Serial.print("send back ok\r\n");
      } else {
        Serial.print("send back err\r\n");
        }

       if (wifi.releaseTCP(mux_id)) {
          Serial.print("release tcp ");
          Serial.print(mux_id);
          Serial.println(" ok");
          } else {
            Serial.print("release tcp");
            Serial.print(mux_id);
            Serial.println(" err");
          }
          Serial.print("Status:[");
          Serial.print(wifi.getIPStatus().c_str());
          Serial.println("]");
        }
}

Já tentei fazer várias modificações, ele passa pelo bloco "releseTCP" sem problemas, mas não executa a penúltimal linha "getIPStatus" e trava tudo.  Quando eu digito o endereço IP do módulo no navegador, o Serial Monitor da IDE mostra tudo que o navegador manda. Quando executa o "wifi.send" o navegador recebe todo o "buffer", e trava!

Muito obrigado gente.

Se for necessário eu me explico melhor.

Anderson Britto

Exibições: 1411

Responder esta

Respostas a este tópico

Ufaaaa!!! Consegui resolver, o que acontece é que a versão do firmware 0.9.2 está bugada, após receber dados, ao fechar a conexão, o modulo trava feio, só reiniciando tudo de novo. Fiz o upgrade para o firmware 1.0.1 e o defeito foi resolvido. Retirei a eeprom do moludo e gravei usando um gravador de eprom. Fica a dica, corram do firmware 0.9.2!!!

Anderson, estudando o ESP8266 percebi que o HW do moduluzinho é potente !

Mas o firmware tem muito que evoluir. E esta em processo rápido de evolução. 

O meu ESP8266 já foi atualizado para essa versão ESP8266_NONOS_SDK_V1.4.0

Pode ver  o tutorial : 

http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

Já lançaram mais um novo SDK !

http://bbs.espressif.com/viewtopic.php?f=46&t=1442

ESP8266_NONOS_SDK_V1.5.0

Boa noite José Gustavo!!

Estes módulos são ótimos. Só tive esta dorzinha de cabeça, mas já passou rsrsr. Fiquei uns 3 dias pra descobrir o defeito. Aqui estou usando-o em conjunto com o Arduino para um projeto de automação. Ainda estou no início, e como tenho somente umas 2 horas por dia pretendo terminá-lo em uns 8 meses. O projeto é grande... Com certeza dores de cabeça virão, rsrs. Mas com paciência e persistência a gente chega lá.!!! Não tenho muita experiência com este módulo, mas sou casado com Eletrônica a 25 anos, rsrs, então, qualquer dúvida e só falar!! Boa noite.

Qual roteador utilizou para testes e configuração?

Anderson, vc utilizou uma rede DHCP?

Oi Renato, utilizei o roteador do velox mesmo. DHCP. Acabou que abandonei o projeto a um ano atrás porque não tive mais tempo para trabalhar nele, mas pretendo retomá-lo em setembro, aí vou ter que lembrar tudo de novo!

Minha rede não é da velox e creio que isso deve ser a causa de não conseguir a conexão, obrigado!

Anderson, qual foi a pinagem qeu você usou no seu Arduino MEGA? Teve que usar buffer ou resistor?

Eu usei esta imagem, com os resistores, mas utilizei um MEGA e não o UNO. Outra coisa, o módulo tem que ser alimentado com uma fonte de 3,3V mais potente, na imagem utiliza-se a fonte do arduino, só que ela é fraca e quando o modulo é acionado pode gerar problemas no arduino.

Legal, estou usando o MEGA tbm, e essa comunicação entre o ESP8266 e o browser, como você enviou e recebeu os comandos? Fez um webserver?

Para testar eu usei um browser mesmo, depois criei um programa para celular, utilizando o AppInventor, cada botão mandava um comando, uma string, que ao ser recebida pelo arduino era comparada com outra para ativar ou não uma saída. Para o passo a passo da programação eu me lembro que vasculhei a internet, mas encontrei exemplos bons aqui e no site http://blog.filipeflop.com. Boa noite.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço