Table des matières:

Indicateur de température du processeur Raspberry Pi : 11 étapes (avec photos)
Indicateur de température du processeur Raspberry Pi : 11 étapes (avec photos)

Vidéo: Indicateur de température du processeur Raspberry Pi : 11 étapes (avec photos)

Vidéo: Indicateur de température du processeur Raspberry Pi : 11 étapes (avec photos)
Vidéo: Contrôler un PC à Distance avec PIKVM (Raspberry PI CM4) 2024, Juillet
Anonim
Indicateur de température du processeur Raspberry Pi
Indicateur de température du processeur Raspberry Pi

Auparavant, j'avais introduit un simple circuit indicateur d'état opérationnel de raspberry pi (ci-après RPI).

Cette fois, je vais expliquer un circuit indicateur plus utile pour le RPI fonctionnant sans tête (sans moniteur).

Le circuit ci-dessus montre la température du processeur en 4 niveaux différents tels que:

- LED verte allumée lorsque la température du processeur est comprise entre 30 et 39 degrés

- La LED jaune indique que la température est augmentée dans une plage de 40 à 45 degrés

- La 3ème LED rouge indique que le processeur devient un peu chaud en atteignant 46 ~ 49 degrés

- Une autre LED rouge clignote lorsque la température dépasse plus de 50 degrés

Les plages de température du processeur ci-dessus sont mon concept de conception personnel (d'autres plages de température peuvent être configurées en modifiant les conditions de test du programme python qui contrôle ce circuit).

En utilisant ce circuit, vous n'exécutez pas nécessairement la commande "vcgencmd measure_temp" fréquemment sur le terminal de la console.

Ce circuit doit informer de manière continue et pratique la température actuelle du processeur.

Étape 1: Préparation des schémas

Préparation des schémas
Préparation des schémas

Bien que vous puissiez contrôler directement 4 LED en utilisant uniquement des codes python, la logique de contrôle du programme chargera le RPI et, par conséquent, la température du processeur augmentera davantage car vous devez exécuter un code python un peu complexe en continu.

Par conséquent, je minimise la complexité du code python aussi simplement que possible et je décharge la logique de contrôle des LED sur un circuit matériel externe.

Le circuit de l'indicateur de température du processeur (ci-après INICATOR) se compose des principales parties suivantes.

- Deux opto-coupleurs sont connectés aux broches RPI GPIO pour obtenir des données de niveau de température telles que 00->LOW, 01->Medium, 10->High, 11->Besoin de refroidissement.

- 74LS139 (ou 74HC139, décodeur et démultiplexeur 2-to-4) contrôle les sorties (Y0, Y1, Y2, Y3) en fonction des entrées (A, B)

- Lorsque la température est comprise entre 30 et 39 degrés, le code python sort 00 sur les broches GPIO. Par conséquent, 74LS139 obtient les données d'entrée 00 (A->0, B->0)

- Lorsque 00 est entré, la sortie Y0 devient LOW. (Veuillez vous référer à la table de vérité du 74LS139)

- Lorsque la sortie Y0 devient FAIBLE, elle active le transistor 2N3906 PNP et, par conséquent, la LED verte est allumée

- De même, Y1 (01 -> CPU température moyenne) allumera la LED jaune et ainsi de suite

- Lorsque Y3 devient FAIBLE, DB140 activant le circuit de clignotement de la LED NE555 (il s'agit du clignotant à LED commun à base de 555 IC) qui est chargé du transistor BD140 PNP

Le composant le plus important de ce circuit est le 74LS139 qui décode 2 chiffres entrés dans 4 sorties uniques différentes, comme indiqué dans la table de vérité ci-dessous.

Saisie | Sortir

G (Activer) | B | A | A0 | Y1 | Y2 | Y3 |

H | X | X | H | H | H | H |

L | L | L | L | H | H | H |

L | L | H | H | L | H | H |

L | H | L | H | H | L | H |

L | H | H | H | H | H | L |

Comme la sortie 74LS139 devient FAIBLE, le transistor de type PNP peut simplifier l'ensemble du circuit car le transistor PNP est activé lorsque la borne de base devient FAIBLE. (Je montrerai la version NPN à la fin de cette histoire)

Comme le potentiomètre 100K est inclus dans le circuit du clignotant LED NE555, le temps ON/OFF de la LED rouge peut être ajusté librement en fonction des besoins.

Étape 2: Faire un dessin de PCB

Faire un dessin de PCB
Faire un dessin de PCB

Comme le schéma de fonctionnement de l'INDICATEUR est expliqué, commençons à faire le circuit.

Avant de souder quelque chose sur une carte universelle, il est utile de préparer le schéma de circuit imprimé ci-dessus pour minimiser les erreurs.

Le dessin est fait en utilisant power-point pour localiser chaque pièce sur la carte universelle et en créant des schémas de câblage entre les pièces avec des fils.

Comme les images de brochage des circuits intégrés et des transistors sont co-localisées avec le schéma de câblage du PCB, la soudure peut être effectuée à l'aide de ce dessin.

Étape 3: Souder

Soudure
Soudure

Bien que le dessin original du PCB n'utilise pas de fils simples pour connecter les composants sur le PCB, je soude un peu différemment.

En utilisant un seul conducteur de fils (pas de fil d'étain), j'essaie de réduire la taille universelle des circuits imprimés contenant le circuit INDICATEUR.

Mais comme vous pouvez le voir du côté soudure du PCB, j'utilise également du fil d'étain selon les motifs représentés dans le dessin du PCB.

Lorsque chaque composant est connecté conformément à la conception d'origine du dessin de la carte de circuit imprimé, la soudure de la carte de circuit imprimé terminée, y compris le circuit INDICATEUR, fonctionnera correctement.

Étape 4: Préparation des tests

Préparation aux tests
Préparation aux tests

Avant la connexion RPI, le circuit fini doit être testé.

Comme des erreurs de soudure peuvent exister, le fournisseur d'alimentation CC est utilisé pour éviter les dommages en cas de court-circuit ou de mauvais câblage.

Pour tester l'INDICATEUR, deux câbles d'alimentation supplémentaires sont connectés au connecteur d'alimentation 5V du circuit.

Étape 5: Test (la température du processeur est de niveau moyen)

Test (la température du processeur est de niveau moyen)
Test (la température du processeur est de niveau moyen)

Lorsqu'aucune entrée 5V n'est appliquée, alors l'entrée de décodage 74LS139 et l'activation de la sortie Y0 en tant que LOW (LED verte allumée).

Mais 5V appliqués à l'entrée A, la sortie Y1 de 74LS139 s'activant (LOW).

Par conséquent, la LED jaune est allumée comme indiqué dans l'image ci-dessus.

Étape 6: Test (CPU a besoin d'un niveau de refroidissement)

Test (niveau de refroidissement requis par le processeur)
Test (niveau de refroidissement requis par le processeur)

Lorsque 5V a appliqué les deux entrées (A et B) du 74LS139, la 4ème LED rouge clignote.

Le taux de clignotement peut être modifié en ajustant 100K VR comme indiqué dans l'image ci-dessus.

Une fois le test terminé, deux câbles Molex 3 broches femelles peuvent être retirés.

Étape 7: Alimentation du circuit INDICATEUR

Alimentation du circuit INDICATEUR
Alimentation du circuit INDICATEUR

Pour alimenter le circuit INDICATOR, j'utilise un chargeur de téléphone portable commun qui produit 5 V et un adaptateur USB de type B, comme indiqué dans l'image ci-dessus.

Pour éviter tout problème avec le RPI en connectant un circuit INDICATEUR alimenté par GPIO 3,3 V et 5 V, l'interface de signal et l'alimentation sont totalement isolées l'une de l'autre.

Étape 8: Câblage RPI

Câblage RPI
Câblage RPI

Pour interfacer le circuit INDICATOR avec le RPI, deux broches GPIO doivent être dédiées avec deux broches de masse.

Il n'y a pas d'exigence spécifique pour le choix des broches GPIO.

Vous pouvez utiliser n'importe quelle broche GPIO pour connecter INDICATOR.

Mais les broches câblées doivent être désignées comme entrées pour 74LS139 (par exemple A, B) dans le programme python.

Étape 9: programme Python

Programme Python
Programme Python

Une fois le circuit terminé, il est nécessaire de créer un programme python pour utiliser la fonction INDICATOR.

Veuillez vous référer à l'organigramme ci-dessus pour plus de détails sur la logique du programme.

#-*- codage:utf-8 -*-

sous-processus d'importation, signal, sys

temps d'importation, re

importer RPi. GPIO en tant que g

A = 12

B = 16

g.setmode(g. BCM)

g.setup(A, g. OUT)

g.setup(B, g. OUT)

##

def signal_handler(sig, frame):

print('Vous avez appuyé sur Ctrl+C !')

g.sortie (A, Faux)

g.sortie (B, Faux)

f.fermer()

sys.exit(0)

signal.signal(signal. SIGINT, signal_handler)

##

tant que vrai:

f = open('/home/pi/My_project/CPU_temperature_log.txt', 'a+')

temp_str = subprocess.check_output('/opt/vc/bin/vcgencmd measure_temp', shell=True)

temp_str = temp_str.decode(encodage = 'UTF-8', erreurs = 'strict')

CPU_temp = re.findall("\d+\.\d+", temp_str)

# extraction de la température actuelle du processeur

current_temp = float(CPU_temp[0])

si current_temp > 30 et current_temp < 40:

# température basse A=0, B=0

g.sortie (A, Faux)

g.sortie (B, Faux)

heure.sommeil(5)

elif current_temp >= 40 et current_temp < 45:

# température milieu A=0, B=1

g.sortie (A, Faux)

g.sortie(B, Vrai)

heure.sommeil(5)

elif current_temp >= 45 et current_temp < 50:

# température élevée A=1, B=0

g.output(A, True)

g.sortie (B, Faux)

heure.sommeil(5)

elif current_temp >= 50:

# Le refroidissement du processeur est requis élevé A=1, B=1

g.output(A, True)

g.sortie(B, Vrai)

heure.sommeil(5)

heure_actuelle = heure.heure()

formated_time = time.strftime("%H:%M:%S", time.gmtime(current_time))

f.write(str(formated_time)+'\t'+str(current_temp)+'\n')

f.fermer()

La fonction principale du programme python est comme ci-dessous.

- Tout d'abord en définissant GPIO 12, 16 comme port de sortie

- Définition du gestionnaire d'interruption Ctrl+C pour fermer le fichier journal et désactiver GPIO 12, 16

- Lorsque vous entrez dans la boucle infinie, ouvrez le fichier journal en mode ajout

- Lisez la température du processeur en exécutant la commande "/opt/vc/bin/vcgencmd measure_temp"

- Lorsque la température est dans la plage 30 ~ 39, puis sortie 00 pour allumer la LED verte

- Lorsque la température est comprise entre 40 et 44, puis la sortie 01 pour allumer la LED jaune

- Lorsque la température est comprise entre 45 et 49, puis sortie 10 pour allumer la LED rouge

- Lorsque la température est supérieure à 50, puis sortie 11 pour faire clignoter la LED rouge

- Écrire l'horodatage et les données de température dans le fichier journal

Étape 10: Fonctionnement de l'INDICATEUR

INDICATEUR Fonctionnement
INDICATEUR Fonctionnement

Lorsque tout est OK, vous pouvez voir que chaque LED s'allume ou clignote en fonction de la température du CPU.

Vous n'avez pas besoin d'entrer la commande shell pour vérifier la température actuelle.

Après avoir collecté les données dans le fichier journal et rendu les données textuelles sous forme de graphique à l'aide d'Excel, le résultat est affiché dans l'image ci-dessus.

Lors de l'application de charges élevées (exécution de deux navigateurs Midori et lecture de vidéos Youtube), la température du processeur atteint 57,9 °C.

Étape 11: Fabrication alternative (à l'aide d'un transistor NPN) et développement ultérieur

Fabrication alternative (à l'aide d'un transistor NPN) et développement ultérieur
Fabrication alternative (à l'aide d'un transistor NPN) et développement ultérieur

Il s'agit d'un exemple de projet INDICATOR précédent utilisant des transistors NPN (2N3904 et BD139).

Comme vous pouvez le voir, un autre CI (74HC04, onduleurs Quad) est nécessaire pour piloter le transistor NPN car une tension de niveau HAUT doit être appliquée à la base du NPN pour activer le transistor.

En résumé, l'utilisation d'un transistor NPN ajoute une complexité inutile pour créer un circuit INDICATEUR.

Pour le développement ultérieur de ce projet, j'ajouterai un ventilateur de refroidissement comme indiqué dans l'image ci-dessus pour rendre le circuit INDICATOR plus utile.

Conseillé: