Tempos de funcionamento da bateria do Raspberry Pi Zero 2, otimização e configuração
Como fazer funcionar um Raspberry Pi com uma bateria
A forma mais fácil de ter uma experiência plug-and-play é utilizá-lo com um powerbank feito para recarregar telemóveis. São os mais fáceis porque tudo funciona, mas também são os menos personalizáveis.
Se pretender uma solução mais personalizável, considere obter a PowerBoost 1000 Básico que lhe permitirá aumentar as tensões a partir de 1,8 V, o que significa que pode utilizar duas pilhas NiMH ou uma pilha de lítio para alimentar o seu Raspberry Pi Zero 2 W.
Exemplos de aplicações alimentadas por bateria com o Pi Zero 2
A utilização do Raspberry Pi Zero 2 numa bateria faz sentido para aplicações como,
- Emulação de jogos retro: Caixa Retroflag GPi ou uma construção personalizada com um ecrã de 7 polegadas
- Dispositivos IoT/automação que estão longe de uma tomada eléctrica (sensor meteorológico, detetor de poluição, câmaras para animais, dispositivos de rega de plantas, alimentadores para animais de estimação)
- Ecrãs de ePaper: etiquetas de nome digitais, cotações de acções, listas de tarefas
Como registar o tempo de atividade
Para registar o seu tempo de atividade, deve instalar o pacote oportuna.
Abra um Terminal e execute:
sudo apt-get install uptimed
Após a instalação, é necessário iniciar e executar o serviço através da execução:
systemctl enable uptimed
depois
systemctl start uptimed
Uma vez que estamos a tentar estabelecer o tempo de funcionamento da bateria que podemos esperar, é importante garantir que os ficheiros de configuração do uptimed permitem intervalos de registo muito mais curtos do que o padrão.
Por predefinição, o uptimed só escreve nos registos de hora a hora e não regista quaisquer registos com menos de uma hora.
Para alterar isto, é necessário alterar o ficheiro de configuração. Por defeito
No Terminal, execute:
sudo nano /etc/uptimed.conf
Alterar as seguintes variáveis:
ACTUALIZAÇÃO_INTERVALO=60
LOG_MINIMUM_UPTIMED = 60
Por defeito, ambas as variáveis estão definidas para uma hora (3600 segundos ou 1h). Ao defini-las para 60 segundos, podemos registar o tempo de funcionamento da bateria até ao minuto.
Tempo de execução inativo
Duração: 30 horas e 12 minutos
Coloquei um banco de potência de 5000mA no Raspberry Pi Zero 2W sem acessórios e no Raspberry Pi OS (2021-10-31). Tudo está predefinido.
Isto representa a melhor duração de bateria que se pode obter de um Raspberry Pi Zero 2 W por defeito.
Tempo de execução do stress
Na realidade, é provável que tenha certas ligações, como HDMI ou algo no GPIO. Por isso, o próximo teste será uma forma melhor de descobrir qual é o pior cenário possível.
Duração: 6 horas e 54 minutos
Para efetuar um teste de esforço, executei o comando
stress-ng –cpu 4 –cpu-method fft
Foram utilizados os métodos -cpu-method fft e -cpu 4 com base numa conclusão do fórum Raspberry Pique constatou que o seu consumo era um dos mais elevados
Notei imediatamente que a utilização da CPU subiu para 100% ao executar este comando.
Optimizações
Pode reduzir ainda mais o consumo de energia desligando vários componentes do Raspberry Pi Zero 2 W.
Eis as poupanças de energia que pode ativar:
Desligar o LED: 5mA1
Desligar o WiFi: 11mA-187mA2
Utilizar controladores antigos + desativar HDMI: 21mA + 17mA 2
Desligar o LED
Pode poupar 5mA desligando o LED. Eis como.
Se quiser executá-lo apenas uma vez, tem de executar este comando no terminal:
echo none | sudo tee /sys/class/leds/led0/trigger
No entanto, se quiser que o LED seja permanentemente desligado na reinicialização, abra o terminal e digite
sudo crontab -e
Quando estiver no ficheiro, desloque-se até ao fim e escreva estas linhas:
@reboot echo none | sudo tee /sys/class/leds/led0/trigger &
Após a próxima e subsequentes reinicializações, o LED verde do seu Pi Zero 2 W permanecerá aceso até que ele inicialize o sistema operacional, e então ele será desligado.
Desligar o WiFi
Da mesma forma, pode desativar permanentemente o WiFi executando o comando
sudo rfkill block wifi
Para que este comando seja executado na reinicialização, abra o terminal e digite
sudo crontab -e
Desloque-se para a parte inferior e escreva esta linha
@reboot sudo rfkill block wifi &
Depois de reiniciar, deverá ver que o WiFi está desativado no arranque.
Utilizar controladores antigos + desativar HDMI
Se construiu um dispositivo alimentado por bateria, é muito mais provável que não esteja a utilizar um monitor.
Ou talvez planeie utilizar o seu Raspberry Pi Zero 2 W em modo headless. Essa é também outra razão para desativar o HDMI.
O que é contraditório aqui é que tive de ativar o WiFi, incorrendo assim em consumo de energia, para desativar o HDMI de modo a poder controlar o meu Pi Zero 2 via SSH. Portanto, escolham as vossas batalhas.
Ativar controladores GL antigos
Antes de desativar o HDMI, terá de utilizar o controlador de gráficos antigo.
Abra um terminal e execute:
sudo raspi-config
Então, vá para Opções avançadas -> Driver GL -> Legado
Agora que isto está feito, pode ir em frente e desativar o seu HDMI executando o comando:
sudo nano /etc/rc.local
Logo acima da linha "exit 0", digite /usr/bin/tvservice -o
Para voltar a ativar o HDMI, basta eliminar esta linha. Fi-lo através de SSH.
Desativar núcleos
Embora todas as sugestões acima reduzam o consumo de energia em inatividade, também é possível limitar o consumo máximo de energia desactivando núcleos.
Para o fazer, é necessário abrir um terminal e escrever:
sudo nano /boot/cmdline.txt
Digite maxcpus=1 na primeira linha e guardar o ficheiro premindo CTRL + X e guardando-o premindo Y.
Depois, reinicie.
Após a reinicialização, pode verificar se a sua modificação funcionou executando lscpu no terminal.
Se vires "Lista de CPU(s) off-line: 1-3", então funcionou e está a funcionar com um núcleo.
Se quiser saber mais sobre o que pode fazer com o seu Raspberry Pi Zero 2, consulte este artigo.