Autonomía, optimización y configuración de la batería de Raspberry Pi Zero 2
Cómo hacer funcionar una Raspberry Pi con una batería
La forma más fácil de obtener una experiencia plug-and-play es utilizar un cargador de baterías para recargar teléfonos. Son los más sencillos porque todo funciona, pero también son los menos personalizables.
Si desea una solución más personalizable, considere la posibilidad de adquirir el PowerBoost 1000 Básico que te permitirá subir voltajes desde 1.8V lo que significa que puedes usar 2x baterías NiMH o una batería de litio para alimentar tu Raspberry Pi Zero 2 W.
Ejemplos de aplicaciones alimentadas por batería con la Pi Zero 2
El uso de la Raspberry Pi Zero 2 en una batería tiene sentido para aplicaciones como,
- Emulación de juegos retro: Caja Retroflag GPi o una custom build con pantalla de 7
- Dispositivos IoT/automatización que están lejos de una toma de corriente (sensor meteorológico, detector de contaminación, cámaras para animales, dispositivos de riego de plantas, comederos para mascotas).
- Pantallas ePaper: etiquetas digitales, teletipos, listas de tareas
Cómo registrar el tiempo de actividad
Para registrar su tiempo de actividad, debe instalar el paquete actualizado.
Abre un Terminal y ejecuta:
sudo apt-get install uptimed
Tras la instalación, debe iniciar y ejecutar el servicio:
systemctl enable uptimed
entonces
systemctl start uptimed
Dado que estamos tratando de establecer cuánto tiempo de funcionamiento de la batería podemos esperar, es importante asegurarse de que los archivos de configuración de uptimed permiten intervalos de registro mucho más cortos que los predeterminados.
Por defecto, uptimed sólo escribe en los registros cada hora, y no registrará ningún registro inferior a una hora.
Para cambiar esto, es necesario cambiar el archivo de configuración. Por defecto
En Terminal, ejecute:
sudo nano /etc/uptimed.conf
Cambia las siguientes variables:
INTERVALO_ACTUALIZACION=60
LOG_MINIMUM_UPTIMED = 60
Por defecto, ambas variables están ajustadas a una hora (3600 segundos o 1h). Si las ajustamos a 60 segundos, podemos registrar el tiempo de funcionamiento de la batería con precisión de minutos.
Tiempo de inactividad
Duración: 30 horas 12 minutos
Corrí un banco de potencia 5000mA en el Raspberry Pi Zero 2W sin accesorios y en el Raspberry Pi OS (2021-10-31). Todo está por defecto.
Esto representa el mejor caso de duración de la batería que se obtendría de una Raspberry Pi Zero 2 W por defecto.
Tiempo de ejecución
En realidad, es probable que tenga ciertos accesorios como HDMI o algo en el GPIO. Por lo tanto, la próxima prueba será una mejor manera de averiguar cuál es el peor de los casos.
Duración: 6 horas 54 minutos
Para realizar una prueba de estrés, ejecuté el comando
stress-ng –cpu 4 –cpu-method fft
Se han utilizado -cpu-method fft y -cpu 4 basado en una conclusión en el foro Raspberry Pi, que descubrió que atraía una de las mayores cargas
Inmediatamente noté que la utilización de la CPU se disparaba a 100% al ejecutar este comando.
Optimizaciones
Puedes reducir aún más el consumo de energía apagando varios componentes de la Raspberry Pi Zero 2 W.
Estos son los ahorros de energía que puedes activar:
Apagar LED: 5mA1
Apagar WiFi: 11mA-187mA2
Utilizar controladores heredados + desactivar HDMI: 21mA + 17mA 2
Apagar LED
Puedes ahorrar 5mA apagando el LED. He aquí cómo.
Si sólo quieres ejecutarlo una vez, tienes que ejecutar este comando en el terminal:
echo none | sudo tee /sys/class/leds/led0/trigger
Sin embargo, si quieres que el LED se apague permanentemente al reiniciar, entonces abre tu terminal y teclea
sudo crontab -e
Una vez en el archivo, desplázate hasta el final y escribe estas líneas:
@reboot echo none | sudo tee /sys/class/leds/led0/trigger &
Tras el siguiente y sucesivos reinicios, el LED verde de tu Pi Zero 2 W permanecerá encendido hasta que arranque el SO, momento en el que se apagará.
Desactivar WiFi
Del mismo modo, puede desactivar permanentemente el WiFi ejecutando el comando
sudo rfkill block wifi
Para que este comando se ejecute al reiniciar, abra su terminal y escriba
sudo crontab -e
Desplácese hasta la parte inferior y escriba esta línea
@reboot sudo rfkill block wifi &
Una vez que reinicies, deberías ver que tu WiFi está desactivado al inicio.
Utilizar controladores heredados + desactivar HDMI
Si has construido un dispositivo que funciona con pilas, las probabilidades de que no utilices un monitor son mucho mayores.
O tal vez usted planea ejecutar su Raspberry Pi Zero 2 W en modo sin cabeza. Esa también es otra razón para desactivar HDMI.
Lo contradictorio aquí es que tuve que habilitar el WiFi, por lo tanto incurrir en el drenaje de energía, con el fin de desactivar HDMI para que yo pudiera controlar mi Pi Zero 2 a través de SSH. Así que elige tus batallas.
Activar controladores GL heredados
Antes de desactivar HDMI, tendrá que utilizar el controlador de gráficos heredado.
Abre un terminal y ejecuta
sudo raspi-config
A continuación, vaya a Opciones avanzadas -> Controlador GL -> Legacy
Ahora que esto está hecho, puede seguir adelante y desactivar el HDMI ejecutando el comando:
sudo nano /etc/rc.local
Justo encima de la línea "exit 0", escriba /usr/bin/tvservice -o
Para volver a habilitar HDMI, basta con borrar esta línea. Lo hice a través de SSH.
Desactivar núcleos
Aunque todos los consejos anteriores reducen el consumo de energía en reposo, también puedes limitar el consumo máximo desactivando los núcleos.
Para ello, abra un terminal y escriba:
sudo nano /boot/cmdline.txt
Escriba maxcpus=1 en la primera línea y guarde el archivo pulsando CTRL + X y guardando pulsando Y.
Luego, reinicia.
Una vez reiniciado, puede comprobar si la modificación ha funcionado ejecutando lscpu en la terminal.
Si ves "Off-line CPU(s) list: 1-3", entonces ha funcionado y estás funcionando con un núcleo.
Si quieres saber más sobre lo que puedes hacer con tu Raspberry Pi Zero 2, consulta este artículo.