Music

ads header

sexta-feira, 3 de julho de 2026

Tudo sobre Deep Sleep no ESP32

0

O Deep Sleep é um dos recursos mais importantes do ESP32 quando o assunto é economia de bateria. Neste guia, você vai entender como ele funciona, quando usar, quais são os tipos de wake-up e como aplicar isso em projetos reais de IoT.

🎓 ArcadeMakerBR Academy

ESP32 Essentials • Aula 06
Nível: 🟢 Iniciante
Tempo de leitura: 18 a 25 minutos
Projeto sugerido: sensor IoT alimentado por bateria


O que você vai aprender

  • O que é Deep Sleep no ESP32.
  • Por que ele é tão importante para projetos com bateria.
  • Diferença entre modo ativo, light sleep e deep sleep.
  • Como acordar o ESP32 por tempo, GPIO e touch.
  • Como usar RTC Memory para guardar pequenos dados.
  • Erros comuns que fazem o consumo continuar alto.
  • Um exemplo prático em Arduino IDE.

Índice

  1. Por que falar de Deep Sleep?
  2. O que é Deep Sleep?
  3. Modos de energia do ESP32
  4. Formas de acordar o ESP32
  5. RTC Memory
  6. Código exemplo
  7. Projetos onde vale a pena usar
  8. Erros comuns
  9. FAQ

Por que falar de Deep Sleep?

Imagine que você montou um sensor com ESP32 para medir temperatura, umidade ou nível de água. Ele fica em um local distante, talvez no jardim, numa caixa impressa em 3D ou perto de uma janela. Você coloca uma bateria 18650, liga tudo e fica feliz porque o projeto funcionou.

Mas depois de algumas horas, ou no dia seguinte, a bateria acaba.

Esse é um dos choques mais comuns para quem começa com ESP32. O módulo é poderoso, tem Wi-Fi, Bluetooth, vários pinos e muita capacidade, mas se ele ficar ligado o tempo todo, o consumo pode ser alto demais para pequenos projetos alimentados por bateria.

É aqui que entra o Deep Sleep.

Com Deep Sleep, o ESP32 passa a maior parte do tempo “dormindo”. Ele acorda apenas quando precisa fazer uma tarefa, como ler um sensor, enviar dados por Wi-Fi, gravar uma informação ou verificar um botão. Depois disso, volta a dormir.

Dica do Maker: em muitos projetos IoT, o segredo não é fazer o ESP32 trabalhar mais rápido. É fazer ele trabalhar menos tempo.

O que é Deep Sleep no ESP32?

Deep Sleep é um modo de baixo consumo onde o ESP32 desliga grande parte dos seus blocos internos para economizar energia. O processador principal para de executar o programa, o Wi-Fi é desligado, o Bluetooth é desligado e apenas algumas partes específicas continuam funcionando.

Essas partes que podem continuar ativas pertencem ao domínio RTC, responsável por algumas funções de baixo consumo. É por isso que o ESP32 consegue acordar depois de um tempo, por um pino, por touch ou por outros eventos configurados.

Na prática, quando o ESP32 entra em Deep Sleep, ele quase “desliga”. Quando acorda, o programa começa novamente do início, como se tivesse acabado de reiniciar. Essa é uma diferença importante.

Deep Sleep não é pausa

Um erro comum é imaginar que o ESP32 entra em Deep Sleep e depois continua exatamente da linha seguinte do código. Não é assim.

Quando ele acorda, o código roda novamente desde o setup(). Por isso, se você precisa lembrar alguma informação entre um sono e outro, deve usar RTC Memory, memória flash, EEPROM emulada, NVS ou outro método.

Modos de energia do ESP32

O ESP32 tem diferentes formas de reduzir consumo. Para iniciantes, vale pensar em três estados principais:

Modo O que acontece Quando usar
Ativo CPU, Wi-Fi e periféricos podem estar funcionando. Durante leitura de sensores, envio MQTT, web server ou processamento.
Light Sleep Reduz consumo, mas mantém mais contexto do sistema. Quando precisa acordar rápido e manter algumas partes prontas.
Deep Sleep Desliga a maior parte do chip e reinicia ao acordar. Projetos com bateria que passam muito tempo parados.

Formas de acordar o ESP32

O ESP32 pode acordar do Deep Sleep de várias formas. As mais comuns para iniciantes são:

  • Timer: acorda depois de um tempo definido.
  • GPIO: acorda quando um pino muda de estado.
  • Touch: acorda por toque capacitivo em pinos compatíveis.
  • ULP: usa o coprocessador de baixo consumo para tarefas avançadas.

Wake-up por timer

É o método mais simples. Você define que o ESP32 deve acordar depois de alguns segundos, minutos ou horas.

Exemplo de aplicação: uma estação meteorológica que acorda a cada 10 minutos, mede temperatura e umidade, envia os dados e volta a dormir.

Wake-up por GPIO

Nesse modo, o ESP32 acorda quando um pino específico recebe um sinal. É muito útil para botões, sensores magnéticos de porta, sensores de movimento ou outros circuitos externos.

Wake-up por touch

Alguns pinos do ESP32 têm suporte a touch capacitivo. Isso permite criar botões sensíveis ao toque, sem botão físico tradicional.

Wake-up por ULP

ULP significa Ultra Low Power. É um recurso mais avançado que permite executar pequenas tarefas enquanto o processador principal dorme.

O que é RTC Memory?

Como o ESP32 reinicia ao acordar do Deep Sleep, surge uma pergunta: como guardar alguma informação entre um ciclo e outro?

Uma das respostas é usar a RTC Memory. Ela permite guardar pequenas variáveis que continuam existindo durante o Deep Sleep.

RTC_DATA_ATTR int contadorDeBoots = 0;

A palavra RTC_DATA_ATTR indica que aquela variável deve ficar numa área de memória que pode sobreviver ao Deep Sleep.

Código exemplo: Deep Sleep por timer

O exemplo abaixo faz o ESP32 acordar, imprimir uma mensagem no Serial Monitor, esperar um pouco e dormir por 10 segundos.

// Exemplo básico de Deep Sleep no ESP32
// ArcadeMakerBR Academy

#define TEMPO_DE_SLEEP 10  // segundos

RTC_DATA_ATTR int contadorDeBoots = 0;

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

  contadorDeBoots++;

  Serial.println("ESP32 acordou!");
  Serial.print("Numero de boots: ");
  Serial.println(contadorDeBoots);

  Serial.println("Executando tarefa...");
  delay(2000);

  Serial.println("Entrando em Deep Sleep por 10 segundos.");

  esp_sleep_enable_timer_wakeup(TEMPO_DE_SLEEP * 1000000ULL);

  esp_deep_sleep_start();
}

void loop() {
  // O loop normalmente nao sera executado,
  // porque o ESP32 entra em Deep Sleep no setup().
}

Exemplo: wake-up por botão

Também é possível acordar o ESP32 usando um botão ligado a um pino compatível com wake-up externo.

// Exemplo simplificado de wake-up por GPIO
// Verifique os pinos adequados para sua placa ESP32

#define BOTAO_WAKEUP GPIO_NUM_33

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

  Serial.println("ESP32 acordou por botao ou reset.");

  esp_sleep_enable_ext0_wakeup(BOTAO_WAKEUP, 0);

  Serial.println("Dormindo. Pressione o botao para acordar.");
  esp_deep_sleep_start();
}

void loop() {
}

Projetos onde Deep Sleep faz sentido

  • Estação meteorológica com bateria.
  • Sensor de porta ou janela.
  • Monitor de caixa de correio.
  • Sensor de nível de água.
  • Botão IoT para automação.
  • Sensor de presença remoto.
  • Medidor de temperatura em estufa.
  • Dispositivo de telemetria para projetos maker.

Projeto Maker: sensor de temperatura com bateria

Um projeto simples para praticar Deep Sleep é criar um sensor de temperatura com ESP32, um sensor BME280 ou DHT22 e uma bateria 18650.

  1. ESP32 acorda a cada 10 minutos.
  2. Lê temperatura e umidade.
  3. Conecta no Wi-Fi.
  4. Envia os dados via MQTT ou HTTP.
  5. Desliga Wi-Fi.
  6. Entra novamente em Deep Sleep.

Quanto tempo a bateria pode durar?

A resposta depende de muitos fatores: placa usada, regulador de tensão, sensores ligados, LEDs da placa, tempo acordado, qualidade da bateria e consumo durante o sono.

Fator Impacto na bateria
Tempo acordado Quanto mais tempo com Wi-Fi ativo, maior o consumo.
Tipo de placa Algumas placas consomem muito mesmo em Deep Sleep.
Sensores Sensores alimentados o tempo todo reduzem a autonomia.
Regulador Regulador ineficiente desperdiça energia.
LEDs LED de power pode consumir mais do que você imagina.

Erros comuns com Deep Sleep

1. Usar placa de desenvolvimento comum e esperar consumo ultra baixo

Nem toda placa ESP32 é otimizada para bateria. Algumas continuam consumindo bastante mesmo com o chip em Deep Sleep.

2. Deixar sensores sempre alimentados

Se o sensor fica ligado durante o sono, ele continua consumindo. Em projetos avançados, pode ser útil controlar a alimentação do sensor por MOSFET.

3. Acordar e ficar muito tempo conectado ao Wi-Fi

Wi-Fi consome bastante. O ideal é conectar, enviar os dados rapidamente e voltar a dormir.

4. Esquecer que o programa reinicia

Ao acordar, o ESP32 roda novamente o setup(). Por isso, organize o código pensando nesse ciclo.

5. Usar pinos inadequados

Alguns pinos interferem no boot ou têm comportamento especial. Consulte sempre o pinout da sua placa antes de montar o circuito final.

Deep Sleep, MQTT e ESP-NOW

Deep Sleep combina muito bem com MQTT e ESP-NOW, mas cada caso tem uma lógica diferente.

Com MQTT, o ESP32 normalmente precisa acordar, conectar ao Wi-Fi, conectar ao broker, publicar a mensagem e dormir. Isso é ótimo para sensores que enviam dados para Home Assistant, Node-RED ou servidores.

Com ESP-NOW, o ESP32 pode acordar e enviar dados rapidamente para outro ESP32, sem passar por roteador. Em alguns projetos, isso pode reduzir tempo acordado e simplificar a comunicação local.

Checklist antes de usar Deep Sleep

  • Definir quanto tempo o ESP32 precisa dormir.
  • Escolher o tipo de wake-up.
  • Medir o consumo real da placa.
  • Verificar se sensores continuam consumindo.
  • Reduzir o tempo de Wi-Fi ativo.
  • Guardar apenas dados necessários em RTC Memory.
  • Testar vários ciclos de sono e despertar.
  • Escolher uma bateria adequada.

FAQ sobre Deep Sleep no ESP32

O ESP32 continua rodando o código durante Deep Sleep?

Não. O processador principal para. Ao acordar, o ESP32 reinicia e executa o programa novamente desde o início.

Posso usar Wi-Fi durante Deep Sleep?

Não. O Wi-Fi fica desligado durante Deep Sleep. Você deve conectar novamente quando o ESP32 acordar.

Deep Sleep funciona no ESP8266?

Sim, mas o funcionamento e as limitações são diferentes. No ESP8266, normalmente é necessário ligar o GPIO16 ao pino RST para acordar por timer.

Posso acordar o ESP32 com qualquer pino?

Não. É preciso verificar quais pinos suportam wake-up e quais são seguros na sua placa.

RTC Memory substitui cartão SD ou banco de dados?

Não. RTC Memory serve para pequenas variáveis entre ciclos de sono. Para dados maiores ou permanentes, use outro tipo de armazenamento.

Resumo final

Deep Sleep é um dos recursos mais poderosos do ESP32 para projetos alimentados por bateria. Ele permite que o microcontrolador passe a maior parte do tempo consumindo pouca energia e acorde apenas quando precisa executar uma tarefa.

Para iniciantes, o melhor caminho é começar com wake-up por timer, depois testar wake-up por botão e, aos poucos, explorar RTC Memory, sensores externos e otimizações de hardware.


📚 Continue aprendendo

  • Tudo sobre ESP32
  • Tudo sobre ESP-NOW
  • Tudo sobre MQTT
  • Tudo sobre Bluetooth BLE no ESP32
  • Tudo sobre OTA no ESP32

Kit de publicação

Título SEO: Tudo sobre Deep Sleep no ESP32 – Guia Completo para Economizar Bateria

Slug: tudo-sobre-deep-sleep-esp32

Meta Description: Aprenda tudo sobre Deep Sleep no ESP32 e descubra como reduzir drasticamente o consumo de energia em projetos IoT com exemplos práticos.

Tags: ESP32, Deep Sleep, ESP32 Deep Sleep, Arduino, Arduino IDE, IoT, Baixo Consumo, RTC, RTC Memory, Wake Up, ESP-IDF, Maker, Eletrônica, Automação, Microcontroladores, ESP32 Battery, ESP32 Sleep Mode

Categoria: ESP32 Academy

ALT da capa: Tudo sobre Deep Sleep no ESP32 - Guia Completo ArcadeMakerBR Academy

Author Image
AboutAlexandre Paixao

Soratemplates is a blogger resources site is a provider of high quality blogger template with premium looking layout and robust design

Nenhum comentário:

Postar um comentário