Bom dia pessoal,

Tive um problema que alguns colegas relataram aqui com o meu ESP, o problema é que o modulo depois de um tempo perdia a conexão Wi Fi e deixava de enviar informação, percebi que bastava reiniciar a fonte e novamente voltava a normalidade, o que me levou a conclusão que o mesmo deveria entrar em modo de hibernação, já que fonte e demais coisas estavam normais, e não perdia nada da programação.

Lendo a folha de dados que já compartilhei aqui com todos no meu Google Drive, recorri a parte do retângulo que tem o titulo ESP8266 CORE.

Nesta parte, se explica como fazer o ESP hibernar, bem como acordar, modo este muito útil em aplicações onde se requer economia de energia.

Percebi que colocando o pino 16 via um resistor de 470 ohms no GND, o ESP hiberna, e ao retirar, ele acorda, sem perder nenhum dado, também vi a explicação de que o pino 16 (Wakeup) é responsável por mater o ESP acordado se estiver no estado LOW, e ainda vi que o pino GPIO 0, que apenas colocamos no GND para entrar no modo programação, e depois o deixamos flutuando, segundo o fabricante tem dois modos, GND programação e Vcc Run, o que significaria que se não esta em programação devera estar HIGH, e não flutuar.

Como minha intenção não é que ele hiberne, e sim que nunca o faça, decidi o seguinte:

Coloquei o pino 16 Wakeup através de uma R de 470 ligado no GND, o pino esta em LOW, e liguei o GPIO 0 no Vcc Run, desta forma o ESP não dormiu mais até o presente.

Eu creio que fz todo sentido olhando a folha do fabricante, e estou fazendo meus testes e tratarei de atualizar aqui caso volte a ter o problema mesmo com esta configuração, se alguém quiser fazer o mesmo faça por sua conta e risco, já que estou baseando tudo em meu conhecimento e minha responsabilidade, embora não vejo inconveniente algum.

Embora o documento esta compartilhado aqui na pagina corresponde a documentação segue o link para baixar do meu Google Drive.

https://drive.google.com/file/d/0B71RPmv45vX6UWR6eHNJMU1hWXc/view?u...

Abs.

Exibições: 3911

Respostas a este tópico

exatamente, Carlos, por causa da rolagem da tela, fica difícil fazer uma avaliação criteriosa nestes testes de longa duração.

Eu fiz uma página em PHP + javascript pra poder acompanhar melhor meus testes. Uso um javascript chamado DyGraphs, caso alguém se interesse:

segue uma tela dos meus testes:

Muito bom ! Quando eu tiver capacidade técnica tentarei fazer algo do tipo, para que o teste fique mais confiável.

Abrax...

Bom dia !

7:13, quase 12 horas depois de iniciado o teste paralelo com dois ESP8266-01, ambos continuam funcionando.

Um deles está totalmente isolado, e o outro está conectado na placa FTDI. Esse último continua respondendo aos comandos AT, normalmente.

Abrax...

Vlw!

Abs.

Boa noite.

Já se vão 26 horas e os dois módulos continuam firmes no teste. Em duas oportunidades eu presenciei a perda de 4 pacotes, uma vez em cada módulo. Podem ter havido mais perdas, já que não passei as últimas 26 horas olhando para a tela :)

Abrax...

Boa noite,

Estou praticamente a 48 horas sem nenhuma ocorrência de perda de conexão, apenas duas por falta de energia no bairro de alguns minutos em duas oportunidades, e o modulo voltou a funcionar nas duas vezes sem necessidade de nenhuma intervenção minha.

Amanha, segunda feira, vou preparar um relatório com fotos e video, onde tratarei de expor minha experiência com o modulo neste dois dias.

Estou usando sempre a mesma aplicação, envio de dados ao site de IOT, tenho o pino RST ligado via R 330 ohms no positivo, caso precise reiniciar basta tocar a união da  R e o pino RST, com o GND, o pino 16 esta ligado no GND, e pino GPIO 0 esta ligado no Vcc, amanha darei detalhes.

Abs.

Bom dia.
Muito bom. Se puder colocar um esquema das ligações físicas, será ótimo.
Abrax...

Ok!

Abs.

Pessoal bom dia.

Fiz um video dos meus testes com esp, desculpem pela qualidade mas meu celular ta com problema na câmera. Vou deixar aqui o código que estou compilando no esp pela arduino IDE. O exemplo é webserver da própria biblioteca, as partes sublinhadas é o que estou adicionando par tentar fazer o esp reiniciar a cada tanto tempo.

https://www.youtube.com/watch?v=sd-JhhpD3Oc&feature=youtu.be

#include <ESP8266WiFi.h>

const char* ssid = "Wifi_Dirso";
const char* password = "dirso1983";

// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);

long tempo_inicial = 0;
long intervalo = 60000; // 10 minutos

void setup() {
Serial.begin(115200);
delay(10);

// prepare GPIO2
pinMode(2, OUTPUT);
digitalWrite(2, 0);

// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");

// Start the server
server.begin();
Serial.println("Server started");

// Print the IP address
Serial.println(WiFi.localIP());
}

void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}

// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}

// Read the first line of the request
String req = client.readStringUntil('\r');
Serial.println(req);
client.flush();

// Match the request
int val;
if (req.indexOf("/gpio/0") != -1)
val = 0;
else if (req.indexOf("/gpio/1") != -1)
val = 1;
else {
Serial.println("invalid request");
client.stop();
return;
}

// Set GPIO2 according to the request
digitalWrite(2, val);

client.flush();

// Prepare the response
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO ";
s += (val)?"Ligado":"Desligado";
s += "</html>\n";

// Send the response to the client
client.print(s);
delay(1);
Serial.println("Client disonnected");

unsigned long tempo_agora = millis();
if(tempo_agora - tempo_inicial >= intervalo)
{
tempo_inicial = tempo_agora;
const char RST[] = "AT+RST";
Serial.print("Reiniciar");
}
}

Adilson,

Muito bom seu video e sua explicação, não se preocupe a qualidade serviu para mostrar o que precisava, e o código esta postado, então... sem problemas.

Eu acho que o código deveria ser não dar um reset a cada x tempo, mas sim através de um if, ou seja se acontecer tal coisa, (perder conexão) levar pino RST para nível LOW, mas confesso que não dediquei nenhum tempo a isso porque estou tratando de obter a informação para ajudar como todos estamos fazendo, daqui a pouco posto.

Abs.

Eu acho que esta conexão seria a normal para o ESP-01, o modulo parou de responder depois que retirou o TX RX? digo porque aconteceu comigo algumas vezes.

Abs.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço