Aqui estaremos discutindo como podemos definir o ESP32 no modo de suspensão profundo em tempo fixo para economizar energia. Antes de aprendermos a acordar esp32 do sono profundo usando timer, vamos entender o conceito de sono profundo:
O que é um sono profundo no ESP32
O ESP32 pode ser um dispositivo faminto por poder devido ao seu módulo Wi-Fi e Bluetooth integrado. Esp32 normalmente desenha 75mA para operações nominais enquanto pode subir até 240mA Ao transmitir dados sobre Wi -Fi. No entanto, podemos otimizar isso ativando o modo de suspensão profundo.
No modo de suspensão profundo, os periféricos digitais ESP32, RAM não utilizados e CPUs são desligados. Somente a lista seguinte de peças permanece operacional:
Quando o modo de suspensão profundo é ativado, a CPU principal é desligada; No entanto, o coprocessador ULP (UltralowPower) ainda pode ler dados de sensores e acordar a CPU sempre que necessário.
Esta aplicação do ESP32 é útil onde queremos gerar saída em algum momento específico ou quando uma interrupção ou evento externo acontece. Isso salva o poder ESP32, pois sua CPU permanece fora pelo resto do tempo e só liga quando é chamado.
Juntamente com a memória principal da CPU ESP32, também é exibida ou apagada; portanto, qualquer coisa armazenada dentro desta memória não estará mais disponível. Apenas a memória RTC é mantida lá. Portanto, o ESP32 salva dados WiFi e Bluetooth dentro da memória RTC antes de entrar no modo de suspensão profundo.
Depois que o modo de suspensão profundo é redefinido ou removido, o chip ESP32 inicia a execução do programa desde o início.
Do sono profundo, podemos acordar esp32 usando métodos diferentes.
Acorde fontes no ESP32
Múltiplas fontes estão disponíveis para acordar Esp32 da Deep Sleep:
Neste guia, abordaremos Timer acorda Fonte do ESP32.
Como usar o timer para acordar Esp32 do sono profundo
O ESP32 vem com um controlador RTC que possui um módulo de temporizador embutido que pode acordar ESP32 após uma quantidade predefinida de tempo. Esse recurso possui vastos aplicativos onde precisamos de carimbo de hora ou precisamos executar instruções em horários específicos, mantendo o melhor consumo de energia.
Para colocar o ESP32 no modo de suspensão profundo usando o código Micropython sono profundo() função do módulo da máquina será usado. A seguir, a sintaxe da função profunda do sono no Micropython:
máquina.Deepsleep (sleep_time_ms)Esta função leva 1 argumento que é um tempo predefinido em milissegundos.
Para entender o uso do cronômetro ESP32 para acordar, daremos um exemplo que pisca liderado após cada tempo passar e voltar a dormir assim que a tarefa for feita.
Código de exemplo
Abra qualquer editor do Micropython e faça o upload do código abaixo dado na placa ESP32. Aqui estaremos usando thonny ide para fazer upload de esboços de micropython.
# Código de código linuxhint.comCódigo começou importando as bibliotecas necessárias, como importamos a biblioteca Deepsleep.
Depois disso. Este pino mostrará a saída toda vez que o ESP32 acorda.
LED = PIN (4, PIN.FORA)Abaixo, os comandos determinados piscarão o LED com atraso de 1 seg.
liderado.valor (1)Aqui para fins de demonstração, piscamos o LED. No entanto, qualquer outro dispositivo também pode ser controlado.
Antes de dormir, imprimimos uma mensagem de que o ESP32 está entrando no modo de suspensão.
Imprimir ('vai dormir agora')Observação: Também podemos adicionar um atraso de 5 ou mais segundos aqui antes que o ESP32 entre no modo de suspensão. Isso nos ajuda ao criar um projeto e escrever um novo script. Enquanto carrega um novo código, a placa deve estar acordada e não no modo de suspensão. Se não adicionarmos o atraso, será difícil para nós pegar o ESP32 no modo acordado e fazer upload de um novo script.
Depois de escrever o novo script e assim que o código final estiver pronto, podemos remover esse atraso na versão final do script.
Finalmente, a placa ESP32 é colocada no sono profundo por 5 segundos (5000 ms).
máquina.Deepsleep (5000)Uma vez que o tempo de 5 segundos passa, o ESP32 acorda e reinicia o código semelhante ao En botão.
Saída
A seguinte saída pode ser observada no terminal da concha de thonny ide. Aqui podemos ver que depois de cada 5 seg Esp32 acorda de sono profundo e piscar o LED no GPIO PIN 4.
O LED no GPIO 4 virará SOBRE Para 1 seg.
Após 1 segundo, o LED virará DESLIGADO.
Agora a placa ESP32 entrará novamente no modo de suspensão por 5 segundos e depois disso todo o processo se repete. Então é isso que controlamos com sucesso o modo de suspensão ESP32 usando o código do timer.
Conclusão
Aqui neste tutorial, configuramos o ESP32 para acordar do sono profundo usando um programa de timer escrito em Micropython. Nós carregamos o código usando o Thonny ide. Simplesmente imprimimos uma mensagem depois que o ESP32 acorda e pisca um LED; No entanto, usando este artigo, pode -se executar qualquer tarefa depois que o ESP32 acorda do sono profundo.