Como Programar o ESP8266 em DEEP-SLEEP para Economizar Bateria
Olá a Todos!!!
No Post de hoje, iremos falar sobre uma função na programação do ESP8266, que faz com que ele entre em Deep-Sleep - Modo de Suspensão ou Sono Profundo, trazendo o benefício de economizar energia, para quem utiliza o ESP8266 com baterias ou pilhas, pois como sabemos, os ESPs não são tão econômicos assim se compararmos com os Arduínos. Se você usa um módulo ESP-12E alimentada por pilhas ou baterias, depois que utilizamos por um período de tempo, irás perceber que as baterias não duram muito tempo. Como a maioria dos módulos ESP8266, não é possível alterar o hardware para economizar energia, mas, é possível utilizando funções específicas no códigos para esse fim. Se utilizar-mos as funções de suspensão com o ESP8266, ele consumirá menos energia e as suas baterias dependendo do modo de escolha, durarão por muito mais tempo.
Tipos de Suspensões: Sleep Modes
O chip da série ESP8266 oferece 3 modos de suspensão configuráveis. Modem-sleep, Light-sleep, Deep-sleep. Que fornecemos alguns soluções de economia de energia relacionadas a esses modos de suspensão. Os usuários podem escolher e configurar os modos conforme necessário. Todos eles têm propósitos diferentes e devem ser usados em diferentes aplicações, para mais informação, você pode estar visitando nosso Post que fala sobre os 3 Modos de Suspensões do ESP8266 clicando no link abaixo:
Como funcionam os Modos: Modem-sleep - Light-sleep - Deep-sleep - No ESP8266
Modo Deep-sleep Características
Ao contrário dos outros dois modos, com o Modo Deep-Sleep o sistema não pode entrar em repouso profundo automaticamente. Os usuários podem chamar a função de interface system_deep_sleep para ativar imediatamente o Deep-sleep.
Neste modo, o chip desligará a conectividade Wi-Fi e a conexão de dados; somente o módulo RTC que é a função utilizada para o ESP contar o tempo que ficará funcionando, o pino RST está sempre HIGH enquanto o ESP8266 estiver funcionando. No entanto, quando o pino RST recebe um sinal LOW, ele reinicia o microcontrolador.
Se você definir um timer no Modo Deep-Sleep, quando o timer terminar, o GPIO 16 enviará um sinal LOW. Isso significa que, quando o GPIO 16 for conectado ao pino RST, ele ativará o ESP8266 toda vez que o Timer terminar.
Se você definir um timer no Modo Deep-Sleep, quando o timer terminar, o GPIO 16 enviará um sinal LOW. Isso significa que, quando o GPIO 16 for conectado ao pino RST, ele ativará o ESP8266 toda vez que o Timer terminar.
Exemplo de uso simples com o Modo Deep-Sleep:
- O ESP8266 conecta-se a sua rede WI-FI
- Realiza uma ação (lê um sensor, publica uma mensagem MQTT, etc)
- Dorme por um número definido em microssegundos (µs).
- E esse processo se repete continuamente
- O ESP8266 conecta-se a sua rede WI-FI
- Realiza uma ação (lê um sensor, publica uma mensagem MQTT, etc)
- Dorme por um número definido em microssegundos (µs).
- E esse processo se repete continuamente
Ativando o Modo Deep-sleep por Tempo
Para que o Modo Deep-Sleep seja ativado conectamos o pino RST ao pino GPIO16 que na maioria dos módulos é identificado pelo pino D0.
OBS.: É necessário desconectar o jumper da GPIO16 (D0) ao pino RST para podermos fazer o upload do código no módulo, e só conecta-lo depois de ter executado o Upload na Sketch para que funcione corretamente.
OBS.: É necessário desconectar o jumper da GPIO16 (D0) ao pino RST para podermos fazer o upload do código no módulo, e só conecta-lo depois de ter executado o Upload na Sketch para que funcione corretamente.
Fig. 2 - Como Programar o ESP8266 no Modo DEEP-SLEEP para Economizar Bateria |
Configurar o Modo Deep-sleep
Os usuários podem configurar o modo de trabalho do código durante o wake-up do Modo Deep-Sleep através da Código abaixo para ajustar o consumo médio de energia durante a execução de longa duração. Nestes exemplos, vamos utilizar a IDE do Arduíno, e o código está disposto logo abaixo.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//=============================================================================================//
// Edited and Adapted by: Engineer Jemerson Marques, On: 19.07.2019 - FVM Learning website // // Available at: https://www.fvml.com.br and on Youtube channel // // https://www.youtube.com/c/FVMLearning - I hope you have fun - Good luck!!! // //---------------------------------------------------------------------------------------------//
const int SleepTimeSeconds = 20; // Time to sleep (in seconds)
void setup() { Serial.begin(115200); Serial.setTimeout(2000); // Wait for serial to initialize. while(!Serial) { } // Deep sleep mode for 30 seconds, the ESP8266 wakes up by itself when GPIO 16 (D0 in NodeMCU board) is connected to the RESET pin Serial.println("I'm awake, but I'm going into deep sleep mode for 20 seconds"); ESP.deepSleep(SleepTimeSeconds * 1000000); } void loop() { }
//----------------------------- www.fvml.com.br ----------------------------
|
ARQUIVOS PARA BAIXAR:
Você também pode baixar o arquivo .ino e o diagrama esquemático no link abaixo:
Link Direto: Arquivos para baixar
Link Direto: Arquivos para baixar
E por hoje é só, espero que tenham gostado!!!
Qualquer dúvida, digita nos comentários que logos estaremos respondendo.
Se inscreva no nosso Blog!!! Click aqui - FVM Learning!!!
Forte abraço.
Deus vos Abençoe
Shalom
Nenhum comentário:
Postar um comentário