LTD UNESA · Ensino e experimentação
Sistemas embarcados sustentáveis
Explore a plataforma ESP32, realize os experimentos e investigue como as escolhas de programação influenciam o consumo de energia.

O laboratório
Os sistemas embarcados estão presentes em equipamentos industriais, dispositivos de monitoramento e aplicações de Internet das Coisas. Em muitos desses sistemas, o consumo de energia influencia a autonomia, a necessidade de manutenção e a quantidade de recursos utilizada durante sua vida útil. Por isso, a eficiência energética deve ser considerada desde a escolha dos componentes até o desenvolvimento do programa e a avaliação do equipamento.
O Laboratório de Ensino e Experimentação em Sistemas Embarcados Sustentáveis, implantado no Laboratório de Transformação Digital da Estácio, Unidade Recreio, foi concebido para apoiar o ensino, a pesquisa aplicada e a experimentação de soluções embarcadas que utilizem energia e recursos de forma mais eficiente. As bancadas permitem montar circuitos, desenvolver programas, observar sinais e comparar alternativas de implementação.
A plataforma de prototipagem baseada em ESP32 permite realizar dois experimentos iniciais. O primeiro compara a operação contínua e o deep sleep durante a medição de temperatura e umidade. O segundo utiliza o sensor de presença PIR para comparar consulta periódica e resposta a evento com light sleep. Os roteiros devem ser validados na bancada com os módulos efetivamente disponíveis.
O estudante deve seguir os procedimentos na ordem indicada, sob orientação do professor, e registrar a versão da placa, dos programas, as condições de montagem e as medidas. As perguntas propostas ao final de cada prática apoiam a discussão dos resultados.

Plataforma e preparação
Equipamentos adquiridos para o laboratório
A relação de equipamentos adquiridos no projeto para o laboratório está na tabela abaixo. Outros recursos do LTD podem complementar essa infraestrutura. As fotografias mostram alguns desses equipamentos na bancada.
| Equipamento registrado | Quantidade | Aplicação nas práticas |
|---|---|---|
| Bancadas de trabalho | 3 | Montagem dos circuitos e organização dos instrumentos |
| Osciloscópio 2C53T | 2 | Observação de sinais digitais, medição de tempos, tensão e corrente |
| Fonte Wanptek GPS305D 30 V 5 A | 2 | Alimentação ajustável e limitada em corrente |
| Estação de solda 2 em 1 | 3 | Preparação e manutenção de módulos, sob orientação |
| Filtro de linha com disjuntor | 3 | Distribuição de energia aos equipamentos |
| Extensão elétrica com tomadas e USB | 5 | Distribuição de energia conforme especificação |


Componentes da plataforma
A plataforma ilustrada nesta página reúne uma placa ESP32 DevKit e conexões para sensores, atuadores, display e botões. A tabela a seguir descreve os componentes.
| Componente | Função e possibilidades didáticas |
|---|---|
| ESP32 DevKit | Microcontrolador programável, com interfaces digitais, conversores e modos de baixo consumo. |
| OLED 0,96 polegada I²C | Exibição de texto, leituras e indicadores; conferir controlador, endereço e pinagem. |
| BMP180 | Medição de temperatura e pressão atmosférica via I²C. |
| DHT11 | Medição de temperatura e umidade por interface digital. |
| TCRT5000 | Sensor óptico reflexivo para identificação de superfícies e linhas; sinal varia com reflexão, distância e iluminação. |
| HC-SR04 | Mede distância por pulsos ultrassônicos. |
| Sensor PIR | Detecta alterações de radiação infravermelha associadas à presença ou movimento. |
| Buzzer passivo | Emite tons quando acionado por sinal adequado no circuito de comando. |
| LEDs | Indicação de alimentação e de estados do programa. |
| Botões de pressão | Entradas para seleção de funções e interação com o usuário. |
Ligações previstas no esquemático
A imagem a seguir mostra o circuito esquemático da placa. Os nomes GPIO se referem aos sinais do ESP32 clássico. A tabela a seguir indica as ligações principais dos componentes na placa.

| Função | Ligação indicada | Observação |
|---|---|---|
| DHT11 | GPIO15 / D15 | J3: pino 1 = 3,3 V; 2 = dados; 3 = sem conexão; 4 = GND. R5 = 4,7 kΩ entre dados e 3,3 V. |
| PIR | GPIO32 / D32 | Saída OUT ligada ao GPIO32; alimentação prevista em 3,3 V. Confirme o módulo PIR real. |
| I²C | GPIO21 = SDA; GPIO22 = SCL | Compartilhado pelo BMP180 e OLED. |
| OLED J2 | 1 = SDA; 2 = SCL; 3 = 3,3 V; 4 = GND | Ligados aos pinos SDA e SCL do ESP32. |
| LED D2 da plataforma | GPIO23, resistor R3 de 680 Ω | Não confundir o componente D2 da plataforma com o sinal LED0/D2 do DevKit, que indica GPIO2. |
| Buzzer | GPIO19 / D19 | Acionamento por transistor Q1 no desenho. |
| TCRT5000 | GPIO13 / D13 | Sinal do fototransistor com R11 = 10 kΩ; no ESP32 clássico GPIO13 também é ADC2. |
| HC-SR04 | TRIG = GPIO18; ECHO = GPIO5 | |
| Botões S2 a S5 | GPIO36, GPIO39, GPIO34, GPIO35 | Pull-ups externos R6 a R9 de 4,7 kΩ; pressionado conecta ao GND. |
As ampliações seguintes mostram detalhes dos conectores e da alimentação.


Preparação do ambiente de programação
- Instale a Arduino IDE 2. Em Preferências, acrescente a URL https://espressif.github.io/arduino-esp32/package_esp32_index.json ao campo de URLs adicionais do gerenciador de placas.
- No Gerenciador de Placas instale esp32 por Espressif Systems e selecione a opção compatível com a placa real; ESP32 Dev Module é uma opção comum para ESP32 DevKit V1 clássico. Escolha a porta serial.
- No Gerenciador de Bibliotecas instale DHT sensor library por Adafruit e Adafruit Unified Sensor. Os exemplos OLED e BMP180 são sugeridos como extensão e exigem bibliotecas correspondentes.
- Conecte o USB de dados, grave um exemplo simples e abra o Monitor Serial em 115200 bit/s. Se a gravação falhar, confira porta, cabo, driver e o procedimento BOOT/EN da placa.
- Copie cada programa desta página para um projeto separado. Registre as versões da IDE, do pacote de placas e da biblioteca DHT.
Tensão, corrente e energia
O 2C53T dispõe de entradas de multímetro separadas das entradas do osciloscópio. O manual descreve as entradas COM, V, mA e 10A; em sua tabela de corrente contínua aparecem as faixas 19,999 mA, 199,99 mA, 1,9999 A e 9,999 A, com exatidão indicada de ±(1,2% da leitura + 3 dígitos).
Na faixa de 19,999 mA, o último dígito corresponde a 0,001 mA, ou 1 µA. Isso é resolução de indicação, não garantia de exatidão de 1 µA. Além da exatidão, devem ser considerados o erro de zero, a queda de tensão introduzida pelo instrumento e a corrente que varia durante os ciclos.
Medida de tensão contínua
- Com o instrumento na função multímetro, conecte a ponta preta em COM e a vermelha em V. Selecione tensão contínua DC e uma faixa adequada.
- Com a alimentação da plataforma estabelecida pelo professor, meça em paralelo: ponta preta no GND e ponta vermelha no ponto de tensão a verificar. Para conferir a alimentação da placa, meça a tensão entre VCC de J1 e GND; para conferir o regulador, meça entre 3,3 V e GND.
- Registre a tensão e a faixa. Não deixe a ponta vermelha em mA ou 10A ao medir tensão em paralelo.
Medida de corrente contínua
- Desligue a fonte e desconecte o USB. Abra o condutor positivo que vai da fonte ao VCC de J1. O GND da fonte continua ligado ao GND da plataforma.
- No modo multímetro, escolha corrente contínua DC. Conecte a ponta preta a COM e, se a corrente ou os picos forem desconhecidos, a vermelha a 10A. Conecte a ponta vermelha ao positivo da fonte e a ponta preta ao VCC de J1: o instrumento fica em série com a placa.
- Ligue a fonte e verifique se a placa funciona e se a indicação está dentro do limite. Registre a leitura e observe se ela se mantém estável. Para uma faixa menor, desligue antes de mudar a ponta para mA e selecionar a função correspondente. Só use a entrada mA quando a corrente e os picos estiverem dentro dos limites indicados no equipamento.
- Registre a corrente, a faixa, a tensão de alimentação, os módulos instalados e o estado do programa. Se a leitura oscilar rapidamente, registre essa condição e não a apresente como média energética sem validação.
- Ao terminar, desligue a fonte, retire o instrumento do circuito e devolva a ponta vermelha à entrada de tensão para a próxima medida. Nunca conecte o multímetro em modo de corrente diretamente entre os terminais da fonte.
Neste arranjo, a corrente medida na entrada J1 inclui os componentes alimentados pela rede VCC/3,3 V, como regulador, LEDs e módulos instalados. Não inclui corrente fornecida por um segundo caminho de alimentação; por isso, desligue e descarte tais caminhos. O ESP32 DevKit e o conjunto da plataforma não devem ser confundidos com o consumo isolado do chip.
Potência e energia
Em um estado de corrente aproximadamente constante, a potência elétrica na entrada é P ≈ V × I. Em volts e ampères, o resultado é dado em watts. Para um intervalo T, se a potência média for conhecida, E = P̄ × T, em joules. Caso se disponha de registros sincronizados de tensão e corrente, E ≈ Σ(Vᵢ × Iᵢ × Δtᵢ).
A tela do multímetro permite observar estados relativamente estáveis, mas não se deve presumir que a indicação, nem uma função AVG não caracterizada, integre corretamente picos curtos. Para energia por ciclo, use um registrador ou método de aquisição cuja taxa, faixa e integração tenham sido validadas. O 2C53T também pode observar a tensão de um shunt no modo osciloscópio, mas o professor deve projetar e validar o shunt, a queda de tensão, as ligações de terra e a integração antes de apresentar esse valor como resultado.
Para comparar estados estáveis, calcule P_contínuo e P_repouso com a tensão e corrente de cada estado e, se cabível, a redução relativa (P_contínuo − P_repouso)/P_contínuo × 100%. Essa redução não representa, por si só, a redução da energia por leitura: o tempo ativo e os picos também importam.
Medição periódica e baixo consumo
Objetivo e materiais
Comparar o funcionamento contínuo com o deep sleep em uma aplicação que mede temperatura e umidade com DHT11. A prática permite verificar a leitura do sensor, observar os ciclos e comparar correntes em estados de operação, considerando o consumo de toda a plataforma.
Materiais: plataforma ESP32; sensor DHT11 compatível com o conector ou fios adaptadores; computador e USB de dados para programação; fonte de bancada; 2C53T e pontas; cabos adequados. O professor deve validar o caminho de alimentação da plataforma antes do ensaio. OLED e BMP180 não são necessários ao programa principal.
Montagem
- Com a fonte desligada e sem USB, identifique os pinos do DHT11 e as posições de J3: 1 = 3,3 V, 2 = GPIO15/dados, 3 = não conectado e 4 = GND. Não suponha que um módulo de três pinos tenha a mesma sequência.
- Conecte VCC, DATA e GND às respectivas redes de J3, usando adaptadores se necessário. O pull-up R5 de 4,7 kΩ já aparece no esquemático; confirme sua presença na placa.
- Confira a ligação com o professor. Para programação e teste funcional, conecte somente o USB. A alimentação pelo conector J1 fica desconectada nesta etapa.
A biblioteca Adafruit DHT mantém um intervalo mínimo interno de cerca de 2 s entre aquisições e pode retornar o último valor antes desse prazo. Por isso, nesta versão usa-se espera de 3 s após cada leitura, e não se afirma que cada chamada produz uma amostra nova a 1 Hz.
Teste funcional e comparação
- Copie o código do experimento com DHT11 na seção expansível Código do experimento, ao final deste roteiro. Em sua primeira linha de configuração, escolha DEEP = false e RELATORIO = true. Grave e abra o Monitor Serial em 115200 bit/s. Verifique se as leituras são plausíveis; se aparecer “Falha DHT11”, confira o conector e o sensor.
- Selecione DEEP = true e grave novamente. Observe que o ESP32 reinicia após cada despertar; o tempo entre leituras inclui inicialização, leitura e 3 s de sono. Compare os intervalos reais de ambos os modos.
- Para medição de corrente, ajuste RELATORIO = false. Escolha inicialmente ESPERA_MS = 20000 para manter o repouso observável na tela; grave a versão contínua, retire o USB e monte o multímetro em série como nas orientações de medida de corrente. Meça a tensão em procedimento separado.
- Após estabilização, observe e registre a corrente da plataforma no período entre leituras e o comportamento na leitura. Faça três observações em momentos comparáveis.
- Grave a versão deep sleep, mantendo a mesma espera, os módulos instalados e a alimentação. Retire o USB e repita a medição. Durante o sono, registre o valor quando a indicação estiver estável e anote qualquer oscilação.
- Para estudar uma aplicação mais rápida, volte a ESPERA_MS = 3000 e observe os sinais e a indicação. O intervalo real é a espera mais o tempo de execução e, no deep sleep, a reinicialização. Ajuste somente após medir esse intervalo e respeitar o mínimo entre leituras do sensor e da biblioteca.
- Calcule a potência dos estados observados. Para energia por leitura ou energia total, utilize registro e integração validados. Não calcule energia total apenas multiplicando a corrente de repouso pelo tempo inteiro.
O programa gera um pulso no GPIO26 no início de cada leitura. Esse sinal está disponível no conector IDC identificado como ADC/D26. Em deep sleep o pino pode mudar de estado durante reset: confirme a forma de onda e use um pull-down externo adequado se necessário. Observe o GPIO26 com o osciloscópio em uma etapa separada da medição com o único 2C53T.
Registro
| Condição | Espera configurada | Tensão V | Corrente em repouso mA | Intervalo real s |
|---|---|---|---|---|
| Contínuo 1 | 20 s | — | — | — |
| Contínuo 2 | 20 s | — | — | — |
| Contínuo 3 | 20 s | — | — | — |
| Deep sleep 1 | 20 s | — | — | — |
| Deep sleep 2 | 20 s | — | — | — |
| Deep sleep 3 | 20 s | — | — | — |
Registre a faixa, o ponto de medição, os módulos instalados e a potência nos dois estados. Informe a redução relativa calculada, as incertezas e as observações.
Questões
- Por que a corrente da plataforma em deep sleep pode ser maior que a corrente informada para o chip ESP32 isolado? Considere reguladores, LEDs e sensores.
- Qual é a diferença entre reduzir a corrente em repouso e reduzir a energia total de um ciclo?
- Como a espera de 3 s e a reinicialização influenciam o intervalo real entre medições?
- A presença de display, alimentação de rede ou transmissão sem fio alteraria a comparação? Como essa hipótese poderia ser testada?
Código do experimento · DHT11
Programa de referência para ESP32 clássico. Para medição sem computador, escolha RELATORIO = false e grave antes de desconectar o USB. Com DEEP = true o programa reinicia após o despertar.
Selecione o código completo, copie e cole em um projeto da Arduino IDE.
#include <Arduino.h>
#include <DHT.h>
#include <esp_sleep.h>
const bool DEEP = false; // true para deep sleep
const bool RELATORIO = true; // false na medição
const unsigned long ESPERA_MS = 3000; // 20000 para observar
const int DHT_PIN = 15; // D15 no esquemático
const int MARCADOR = 26; // conferir acesso no IDC
DHT dht(DHT_PIN, DHT11);
void setup() {
pinMode(MARCADOR, OUTPUT);
digitalWrite(MARCADOR, LOW);
if (RELATORIO) Serial.begin(115200);
dht.begin();
// Na energização inicial, aguarda o sensor estabilizar.
// Após deep sleep, o sensor permanece alimentado.
if (esp_sleep_get_wakeup_cause() != ESP_SLEEP_WAKEUP_TIMER)
delay(1500);
}
void loop() {
digitalWrite(MARCADOR, HIGH);
float temperatura = dht.readTemperature();
float umidade = dht.readHumidity();
digitalWrite(MARCADOR, LOW);
if (RELATORIO) {
if (isnan(temperatura) || isnan(umidade)) {
Serial.println("Falha DHT11");
} else {
Serial.printf("T=%.1f C; UR=%.1f %%\n",
temperatura, umidade);
}
Serial.flush();
}
if (DEEP) {
esp_sleep_enable_timer_wakeup(
(uint64_t)ESPERA_MS * 1000ULL);
esp_deep_sleep_start();
} else {
delay(ESPERA_MS);
}
}
Na energização inicial o programa aguarda 1,5 s para o sensor estabilizar. Essa espera pressupõe que o DHT11 permaneça alimentado durante o deep sleep. A espera é acrescentada ao tempo de leitura; no deep sleep há ainda reinicialização. A biblioteca pode manter em cache o resultado para duas chamadas próximas: temperatura e umidade usam a mesma aquisição. O marcador não garante que a leitura tenha sido válida; confira os resultados no teste funcional. O display, BMP180 e comunicação de rede não são acionados pelo programa, mas módulos já energizados continuam contribuindo para a corrente.
Presença e resposta a eventos
Objetivo e materiais
Comparar a consulta periódica do sinal de presença com a resposta por evento no GPIO32, incluindo light sleep entre eventos. Em ambos os modos, o PIR permanece alimentado e o programa acende o LED da plataforma quando detecta uma ativação. O indicador de diagnóstico GPIO26 permite observar o início do tratamento.
O PIR gera uma saída digital a partir do processamento do próprio módulo; o programa disponível não executa limiar adaptativo nem DMA. Essas técnicas podem ser exploradas em trabalhos posteriores com sensores e hardware adequados.
Materiais: plataforma ESP32, módulo PIR compatível, fonte, 2C53T e computador para gravação. Antes de conectar o PIR, confirme alimentação, níveis lógicos, pinagem e o tempo de estabilização do modelo efetivo.
Montagem e verificação
- Com a alimentação desligada, identifique no esquemático VCC do PIR = 3,3 V, OUT = GPIO32 e GND. Confira se a placa e o módulo físico possuem essa pinagem e se o módulo opera corretamente a 3,3 V. Caso contrário, o professor deverá propor adaptação adequada antes do experimento.
- Confirme que o LED D2 ligado ao GPIO23 e R3 está instalado. O programa também usa GPIO26 como marcador para o osciloscópio.
- Grave o código do experimento com PIR com EVENTO_SLEEP = false e RELATORIO = true. Alimente apenas por USB na verificação funcional. Aguarde a estabilização indicada pelo fabricante do PIR; podem ser necessários dezenas de segundos ou mais.
- Observe o LED e o Monitor Serial. Mantenha o ambiente sem movimento e, em seguida, movimente-se diante do PIR. A saída pode permanecer ativa por vários segundos, conforme o modelo e seus ajustes.
- Grave com EVENTO_SLEEP = true e repita. Nesse modo, o GPIO32 em nível alto pode despertar o ESP32 do light sleep; o programa também instala interrupção de borda. Após uma detecção ele aguarda o sinal retornar ao nível baixo antes de se rearmar.
Medição de tempo e consumo
- Para tempo de resposta, conecte CH1 ao sinal PIR/GPIO32 e CH2 ao marcador GPIO26, com as referências de ambas as pontas no GND da plataforma. Configure os canais para a mesma atenuação das pontas, acoplamento DC e disparo na borda de subida de CH1.
- Meça com os cursores o intervalo entre a subida de OUT do PIR e a subida do marcador. Faça pelo menos dez eventos em cada modo, respeitando o rearme do PIR. A medida se refere à resposta elétrica do ESP32 ao sinal do módulo; não inclui o tempo desde o início físico do movimento.
- Para corrente, use RELATORIO = false, retire o USB e siga as orientações de medida de corrente, mantendo o mesmo PIR e a mesma alimentação. Em períodos sem movimento, compare a corrente de repouso nos dois modos.
- Repita com uma sequência semelhante de movimentos e registre quantas detecções ocorreram. Não suponha que uma indicação instável do multímetro seja corrente média integrada. Faça a medição de latência e corrente em etapas separadas quando houver apenas um instrumento.
O modo periódico consulta a entrada aproximadamente a cada 50 ms; o modo por evento habilita interrupção e despertar por nível. A latência depende da fase da consulta, do tempo de despertar e da carga do programa. Se o PIR ficar em nível alto, o ESP32 permanece acordado até o rearme; falsos disparos, tempo de retenção e consumo do PIR afetam o resultado.
Registro e análise
| Modo | Eventos previstos / detectados | Latência típica / máxima ms | I em repouso mA |
|---|---|---|---|
| Consulta periódica | — / — | — / — | — |
| Evento com light sleep | — / — | — / — | — |
- Qual modo apresentou menor corrente no repouso e qual apresentou menor latência elétrica?
- O sensor permaneceu ligado durante o sono? Como isso influencia o consumo total?
- O tempo em que o PIR mantém a saída alta interfere no número de eventos detectados?
- O que deve ser alterado para avaliar energia por evento com confiabilidade?
Código do experimento · PIR
A saída PIR é considerada ativa em nível alto. Se o módulo tiver outra polaridade, o professor deve adaptar tanto a detecção quanto o nível de despertar. A interrupção é usada no modo por evento; o despertar em light sleep é configurado separadamente por nível.
Selecione o código completo, copie e cole em um projeto da Arduino IDE.
#include <Arduino.h>
#include <esp_sleep.h>
#include <driver/gpio.h>
const bool EVENTO_SLEEP = false;
const bool RELATORIO = true; // false na medição
const int PIR = 32, LED_PLACA = 23, MARCADOR = 26;
volatile bool sinalizou = false;
unsigned long eventos = 0;
void IRAM_ATTR aoDetectar() { sinalizou = true; }
void setup() {
pinMode(PIR, INPUT);
pinMode(LED_PLACA, OUTPUT);
pinMode(MARCADOR, OUTPUT);
digitalWrite(LED_PLACA, LOW);
digitalWrite(MARCADOR, LOW);
if (RELATORIO) Serial.begin(115200);
if (EVENTO_SLEEP) {
attachInterrupt(digitalPinToInterrupt(PIR),
aoDetectar, RISING);
gpio_wakeup_enable(GPIO_NUM_32,
GPIO_INTR_HIGH_LEVEL);
esp_sleep_enable_gpio_wakeup();
}
}
void loop() {
bool ocorreu = false;
if (EVENTO_SLEEP) {
noInterrupts();
ocorreu = sinalizou;
sinalizou = false;
interrupts();
}
// Em ambos os modos, também verifica o nível do PIR.
if (digitalRead(PIR) == HIGH) ocorreu = true;
if (ocorreu) {
digitalWrite(MARCADOR, HIGH);
digitalWrite(LED_PLACA, HIGH);
eventos++;
if (RELATORIO) {
Serial.printf("Evento %lu\n", eventos);
Serial.flush();
}
delay(25); // largura mínima visível do marcador
digitalWrite(MARCADOR, LOW);
// Aguarda o fim do sinal antes de aceitar outro evento.
while (digitalRead(PIR) == HIGH) delay(20);
digitalWrite(LED_PLACA, LOW);
noInterrupts();
sinalizou = false;
interrupts();
delay(50); // pequeno intervalo de rearme
} else if (EVENTO_SLEEP) {
// O despertar por GPIO é sensível a nível alto.
esp_light_sleep_start();
} else {
delay(50); // consulta periódica aproximada
}}
O programa é didático e requer ensaio na placa real. O evento pode ser perdido se o PIR gerar um pulso muito curto ou durante o intervalo de rearme. O indicador de interrupção não é um contador de bordas. O comportamento do sensor deve ser documentado e validado antes da comparação quantitativa.
Atividades e relatório
Como extensões, o professor pode propor a leitura do BMP180 no mesmo barramento I²C, o uso do OLED para apresentar temperatura e pressão, ou o estudo da resposta do TCRT5000 a diferentes superfícies. Para este último, pode-se desenvolver um limiar de decisão adaptativo a partir de medições de referência e investigar falsos disparos. O uso do HC-SR04 depende da verificação de alimentação e adaptação do ECHO pelo professor.
No relatório, inclua objetivo, equipe, data, versão da plataforma e dos programas, esquema ou fotografia da montagem, instrumentos e faixas, tensões e correntes medidas, latências, cálculos, limitações, respostas às questões e conclusão. Diferencie resultados efetivamente medidos de hipóteses e estimativas.
Referências técnicas
FNIRSI. 2C53T User Manual, seções 3.8 a 3.11: modo multímetro, terminais e parâmetros. https://device.report/m/d2e9dcb8d0f35f891bdbb155c878edc1597828fefb3e7a87d8abef9d679add9d
FNIRSI. 2C53T product page. https://www.fnirsi.com/products/2c53t
ESPRESSIF. Installing Arduino ESP32. https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html
ESPRESSIF. Sleep Modes, ESP32. https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/sleep_modes.html
ADAFRUIT. DHT sensor library. https://github.com/adafruit/DHT-sensor-library
ADAFRUIT. DHT11 Humidity and Temperature Sensor. https://www.adafruit.com/product/386
Fontes consultadas em 27 out. 2026. Verifique a versão do manual e os limites efetivamente indicados no instrumento adquirido.
