* Este blog de Muquan Zhu.
Cuando usamos la placa Raspberry Pi, a veces podemos ver un rayo amarillo o un mensaje que dice "Advertencia de bajo voltaje. Verifique su fuente de alimentación" en la esquina superior derecha del escritorio del sistema.
Cuando el voltaje es insuficiente, puede causar muchos problemas.
Como por ejemplo, un funcionamiento inestable del sistema, pérdida de datos e incluso daños en la tarjeta SD.
Incluso si se utiliza un adaptador de corriente de alta calidad para cumplir con el voltaje y la corriente de trabajo de la Raspberry Pi, enchufarlo y desenchufarlo repetidamente después de un uso prolongado provocará un contacto deficiente y una alta resistencia, lo que hará que el voltaje de entrada de la Raspberry Pi sea insuficiente.
Cuando se ingresa el siguiente comando en la terminal de comandos para Raspberry Pi
vcgencmd obtiene_estrangulamiento
Obtendremos un número hexadecimal que refleja información de estado relacionada con la frecuencia actual del sistema, voltaje de entrada, etc.
Después de convertir este número a binario, los 8 bits que contiene representan el estado de las 8 banderas.
Para obtener más detalles, consulte este enlace en el sitio web de Raspberry Pi: https://www.raspberrypi.com/documentation/computers/os.html
Centrémonos en dos de ellos:
Si el bit 0 de este número es 1, indica que el voltaje de entrada actual es insuficiente;
Si el bit 16 de este número es 1, indica que hubo un voltaje de entrada insuficiente después del inicio;
De hecho, siempre que detectemos estas dos banderas en tiempo real, podremos monitorizar el voltaje de entrada de la Raspberry Pi.
Instalar la biblioteca vcgencmd
Ingrese el siguiente comando en la terminal de comandos para instalar la biblioteca vcgencmd.
sudo pip3 install vcgencmd -i https://mirrors.aliyun.com/pypi/simple/
Validar la biblioteca vcgencmd con el entorno Python3
Acerca del código
#!/usr/bin/env python3
# -*- codificación: utf-8 -*-
# cython: nivel_de_idioma=3
#Brotes de bandera
SUBVOLTAJE = '0'
CAPPED = '1'
ACELERADO = '2'
LÍMITE DE TEMPERATURA SUAVE = '3'
HA_SUBIDO_VOLTAJE = '16'
TIENE_CAPPED = '17'
TIENE_ACELERACIÓN = '18'
TIENE_LIMITE_DE_TEMPERATURA_SUAVE = '19'
desde vcgencmd importar Vcgencmd
desde colorama import init
de colorama import Adelante, Atrás, Estilo
tiempo de importación
init(reinicio automático=Verdadero)
vcgm = Vcgencmd()
def print_log(bandera, información):
si bandera:
imprimir(Adelante.ROJO + Estilo.BRILLO + info, fin = ' ')
demás:
imprimir(Fore.GREEN + Style.DIM + info, fin = ' ')
mientras sea verdadero:
imprimir('[{}] '.format(time.strftime('%M:%S')), fin = '')
salida = vcgm.get_throttled()
bandera = salida['avería'][BAJO VOLTAJE]
print_log(bandera, 'BAJO VOLTAJE')
bandera = salida['avería'][CAPPED]
print_log(bandera, 'CAPPED')
bandera = salida['avería'][ACELERADO]
print_log(bandera, 'ACELERADO')
bandera = salida['avería'][SOFT_TEMPLIMIT]
print_log(bandera, 'SOFT_TEMPLIMIT')
bandera = salida['avería'][HAS_UNDERVOLTED]
print_log(bandera, 'HA SIDO_BAJADO_VOLTAJE')
bandera = salida['avería'][HAS_CAPPED]
print_log(bandera, 'HA_ESTADO_CAPADO')
bandera = salida['avería'][TIENE_LIMITADAS]
print_log(bandera, 'HA SIDO_ACELERADA')
bandera = salida['avería'][HAS_SOFT_TEMPLIMIT]
print_log(bandera, 'TIENE_LÍMITE_DE_TEMPERATURA_SUAVE')
imprimir()
tiempo.dormir(1)
#EOF
Prueba
Si utiliza la fuente de alimentación normal en Raspberry Pi 4B, obtendrá los siguientes resultados.
Si el sistema muestra un mensaje rojo, indica que el bit de bandera relevante es 1.
Podemos ver que el SUBVOLTAJE rojo indica que el voltaje de entrada es demasiado bajo,
El LED rojo THROTTLE indica que la frecuencia operativa del sistema ha sido forzada a disminuir.
El rojo HAS_UNDERVOLTED indica que se ha detectado una condición de bajo voltaje.
Un HAS_THROTTLED rojo indica que se ha reducido la velocidad.