Table des matières:
- Étape 1: Préparation des schémas
- Étape 2: Faire un dessin de PCB
- Étape 3: Souder
- Étape 4: Préparation des tests
- Étape 5: Test (la température du processeur est de niveau moyen)
- Étape 6: Test (CPU a besoin d'un niveau de refroidissement)
- Étape 7: Alimentation du circuit INDICATEUR
- Étape 8: Câblage RPI
- Étape 9: programme Python
- Étape 10: Fonctionnement de l'INDICATEUR
- Étape 11: Fabrication alternative (à l'aide d'un transistor NPN) et développement ultérieur
Vidéo: Indicateur de température du processeur Raspberry Pi : 11 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
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
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
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
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
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)
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)
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
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
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
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
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
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é:
Raspberry Pi Box of Cooling FAN avec indicateur de température du processeur : 10 étapes (avec photos)
Raspberry Pi Box of Cooling FAN With CPU Temperature Indicator: J'avais introduit le circuit indicateur de température du processeur Raspberry Pi (ci-après RPI) dans le projet précédent. Le circuit affiche simplement le niveau de température du processeur RPI 4 comme suit. La température du processeur est comprise entre 30 et
The OreServer - un serveur Minecraft dédié à Raspberry Pi avec indicateur de lecteur LED : 9 étapes (avec photos)
The OreServer - un serveur Minecraft dédié à Raspberry Pi avec indicateur de lecteur LED : MISE À JOUR de juillet 2020 - Avant de commencer ce projet, sachez que BEAUCOUP de modifications et de mises à jour ont été apportées aux différents outils logiciels que j'ai utilisés pour créer cela sur deux il y a des années. Par conséquent, la plupart des étapes ne fonctionnent plus telles qu'elles sont écrites
Ventilateur régulé PWM basé sur la température du processeur pour Raspberry Pi : 4 étapes (avec photos)
Ventilateur régulé PWM basé sur la température du processeur pour Raspberry Pi : De nombreux boîtiers pour Raspberry Pi sont livrés avec un petit ventilateur de 5 V afin d'aider à refroidir le processeur. Cependant, ces ventilateurs sont généralement assez bruyants et de nombreuses personnes les branchent sur la broche 3V3 pour réduire le bruit. Ces ventilateurs sont généralement évalués à 200 mA, ce qui est assez h
Indicateur de température et d'humidité par Arduino : 7 étapes (avec photos)
Indicateur de température et d'humidité par Arduino : cette instruction montrera comment faire une boîte qui peut indiquer la température et l'humidité avec Arduino. Vous pouvez mettre cette boîte sur une table pour mesurer la température et l'humidité dans votre pièce. compacté f
Indicateur de température RVB (avec XinaBox) : 5 étapes (avec photos)
Indicateur de température RVB (avec XinaBox) : C'est officiellement mon premier article sur Instructables, donc je vais admettre que j'utilise cette opportunité en ce moment pour l'essayer. Ayez une idée du fonctionnement de la plate-forme, de l'ensemble de l'expérience utilisateur. Mais pendant que je fais ça, je me suis dit que je pouvais