Acorde o Esptop 10 do Sleep Deep usando timers-micropython

Acorde o Esptop 10 do Sleep Deep usando timers-micropython
Esp32 é uma plataforma IoT baseada em microcontrolador. O consumo de energia é uma das principais preocupações enquanto trabalha com uma placa de microcontrolador. Enquanto estivermos alimentando o ESP32 com um suprimento de CC, não nos importamos mais com o consumo de energia, mas com projetos de backup de bateria a longo prazo, precisamos otimizar a energia geral.

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:

  • Controlador RTC
  • Coprocessador ULP
  • RTC Memória rápida e lenta
  • Periféricos de RTC

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:

  • Cronômetro
  • Toque em pinos
  • EXTIM DE WAWUP EXTERNO
  • WakeUp externo ext1

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.com
De Machine Import DeepSleep
do pino de importação da máquina
Desde o tempo de importação do sono
LED = PIN (4, PIN.Out) #pin 4 definido para saída de LED
liderado.Valor (1) #Turn no LED por 1 seg
sono (1)
liderado.valor (0) #Turn Off LED por 1 seg
sono (1)
Imprimir ('vai dormir agora')
Deepsleep (5000) #Sleep por 5 seg

Có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)
sono (1)
liderado.valor (0)
sono (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.