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
Tags:
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?
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.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por