* Ce blog de Muquan Zhu.
Lorsque nous utilisons la carte Raspberry Pi, vous pouvez parfois voir un éclair jaune ou une invite « Avertissement de basse tension Veuillez vérifier votre alimentation » dans le coin supérieur droit du bureau du système.
Lorsque la tension est insuffisante, cela peut entraîner de nombreux problèmes.
Tels qu'un fonctionnement instable du système, une perte de données et même des dommages à la carte SD.
Même si un adaptateur secteur de haute qualité est utilisé pour répondre à la tension et au courant de fonctionnement du Raspberry Pi, des branchements et débranchements répétés après une utilisation à long terme entraîneront un mauvais contact et une résistance élevée, ce qui rendra la tension d'entrée du Raspberry Pi insuffisante.
Lorsque vous saisissez la commande suivante sur le terminal de commande pour Raspberry Pi
vcgencmd obtient_throttled
Nous obtiendrons un nombre hexadécimal qui reflète les informations d'état liées à la fréquence actuelle du système, à la tension d'entrée, etc.
Une fois ce nombre converti en binaire, les 8 bits qu'il contient représentent l'état des 8 indicateurs.
Pour plus de détails, veuillez consulter ce lien sur le site Web de Raspberry Pi : https://www.raspberrypi.com/documentation/computers/os.html
Concentrons-nous sur deux d’entre eux :
Si le bit 0 de ce nombre est 1, cela indique que la tension d'entrée actuelle est insuffisante ;
Si le 16e bit de ce nombre est 1, cela indique qu'il y a eu une tension d'entrée insuffisante après le démarrage ;
En fait, tant que nous détectons ces deux drapeaux en temps réel, nous pouvons surveiller la tension d'entrée du Raspberry Pi.
Installer la bibliothèque vcgencmd
Saisissez la commande suivante sur le terminal de commande pour installer la bibliothèque vcgencmd.
sudo pip3 install vcgencmd -i https://mirrors.aliyun.com/pypi/simple/
Valider la bibliothèque vcgencmd avec l'environnement Python3
À propos du code
#!/usr/bin/env python3
# -*- codage : utf-8 -*-
# cython : niveau_de_langue = 3
#Bits de drapeau
SOUS-TENSION = '0'
CAPUCHE = '1'
LIMITÉ = '2'
SOFT_TEMPLIMIT = '3'
A_SOUS_TENSION = '16'
HAS_CAPPED = '17'
HAS_THROTTLED = '18'
HAS_SOFT_TEMPLIMIT = '19'
depuis vcgencmd importer Vcgencmd
à partir de colorama importer init
de colorama import Avant, Arrière, Style
heure d'importation
init(autoreset=True)
vcgm = Vcgencmd()
def print_log(drapeau, info) :
si drapeau :
imprimer(Fore.RED + Style.BRIGHT + info, fin = ' ')
autre:
imprimer(Avant.VERT + Style.DIM + info, fin = ' ')
tant que Vrai :
print('[{}] '.format(heure.strftime('%M:%S')), fin = '')
sortie = vcgm.get_throttled()
drapeau = sortie['panne'][SOUS-TENSION]
print_log(drapeau, 'SOUS-TENSION')
drapeau = sortie['breakdown'][CAPPED]
print_log(drapeau, 'CAPPED')
drapeau = sortie['breakdown'][THROTTLED]
print_log(drapeau, 'LIMITÉ')
drapeau = sortie['breakdown'][SOFT_TEMPLIMIT]
print_log(drapeau, 'SOFT_TEMPLIMIT')
drapeau = sortie['panne'][HAS_UNDERVOLTED]
print_log(drapeau, 'A_SOUS_TENSION')
drapeau = sortie['breakdown'][HAS_CAPPED]
print_log(drapeau, 'HAS_CAPPED')
drapeau = sortie['breakdown'][HAS_THROTTLED]
print_log(drapeau, 'HAS_THROTTLED')
drapeau = sortie['breakdown'][HAS_SOFT_TEMPLIMIT]
print_log(drapeau, 'HAS_SOFT_TEMPLIMIT')
imprimer()
heure.sommeil(1)
#EOF
Test
Si vous utilisez l’alimentation normale sur le Raspberry Pi 4B, vous obtiendrez les résultats suivants.
Si le système affiche un message rouge, cela indique que le bit d'indicateur concerné est 1.
Nous pouvons voir que le UNDERVOLTED rouge indique que la tension d'entrée est trop faible,
Le voyant rouge THROTTLED indique que la fréquence de fonctionnement du système a été réduite,
Le rouge HAS_UNDERVOLTED indique qu'une condition de basse tension a été détectée,
Un HAS_THROTTLED rouge indique qu'il a été rétrogradé.