Taula de continguts:

Indicador de temperatura de la CPU Raspberry Pi: 11 passos (amb imatges)
Indicador de temperatura de la CPU Raspberry Pi: 11 passos (amb imatges)

Vídeo: Indicador de temperatura de la CPU Raspberry Pi: 11 passos (amb imatges)

Vídeo: Indicador de temperatura de la CPU Raspberry Pi: 11 passos (amb imatges)
Vídeo: Веб-разработка – информатика для руководителей бизнеса 2016 2024, Juliol
Anonim
Indicador de temperatura de la CPU Raspberry Pi
Indicador de temperatura de la CPU Raspberry Pi

Anteriorment havia introduït el circuit d'indicadors d'estat operatiu de raspberry pi (d'ara endavant, RPI).

Aquesta vegada, explicaré alguns circuits d’indicadors més útils per a que RPI s’executi de manera sense cap (sense monitor).

El circuit anterior mostra la temperatura de la CPU en 4 nivells diferents, com ara:

- El LED verd s’encén quan la temperatura de la CPU es troba entre 30 i 39 graus

- El LED groc indica que la temperatura augmenta de 40 a 45 graus

- El tercer LED vermell mostra que la CPU s’escalfa una mica arribant als 46 ~ 49 graus

- Un altre LED vermell parpellejarà quan la temperatura superi els 50 graus

Els rangs de temperatura de la CPU anteriors són el meu concepte de disseny personal (es poden configurar altres rangs de temperatura canviant les condicions de prova del programa python que controlen aquest circuit).

En utilitzar aquest circuit, no necessàriament executeu l’ordre “vcgencmd measure_temp” amb freqüència al terminal de la consola.

Aquest circuit informarà de la temperatura actual de la CPU de forma contínua i convenient.

Pas 1: Preparació d’esquemes

Preparant esquemes
Preparant esquemes

Tot i que podeu controlar 4 LEDs directament utilitzant només codis python, les lògiques de control del programa carregaran RPI i, com a resultat, la temperatura de la CPU augmentarà més perquè hauríeu d'executar un codi python una mica complex.

Per tant, estic minimitzant la complexitat del codi python de la manera més senzilla possible i descarregant la lògica de control del LED al circuit de maquinari extern.

El circuit indicador de temperatura de la CPU (en endavant INICATOR) consta de les següents parts principals.

- Dos optoacobladors es connecten als pins GPIO RPI per obtenir dades de nivell de temperatura, com ara 00-> BAIX, 01-> Mitjà, 10-> Alt, 11-> Necessita refrigeració.

- Sortides de control 74LS139 (o 74HC139, descodificador de 2 a 4 i desmultiplexor) (Y0, Y1, Y2, Y3) segons les entrades (A, B)

- Quan la temperatura es troba entre 30 i 39 graus, el codi de pitó surt 00 als pins GPIO. Per tant, 74LS139 obté dades d’entrada 00 (A-> 0, B-> 0)

- Quan s'introdueix 00, la sortida Y0 es torna BAIXA. (Consulteu la taula de veritat de 74LS139)

- Quan la sortida Y0 es fa BAIXA, s’activa el transistor PNP 2N3906 i, com a resultat, s’encén el LED verd

- De la mateixa manera, Y1 (01 -> mitjà de temperatura de la CPU) activarà el LED groc, etc.

- Quan Y3 es converteix en BAIX, el DB140 activa el circuit de parpelleig LED NE555 (això és un parpelleig LED basat en IC 555 IC) que és la càrrega del transistor PN1 BD140

El component més important d'aquest circuit és el 74LS139, que descodifica l'entrada de 2 dígits en 4 sortides diferents diferents, tal com es mostra a la taula de veritat següent.

Entrada | Sortida

G (Activa) | B | A | Y0 | 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 |

A mesura que la sortida 74LS139 es converteix en BAIXA, el transistor tipus PNP pot fer que el circuit general sigui senzill, ja que el transistor PNP s’encén quan el terminal base es torna BAIX. (Mostraré la versió NPN al final d'aquesta història)

Com que s’inclou un potenciòmetre de 100K al circuit de parpelleig LED NE555, el temps d’encès / apagat del LED vermell es pot ajustar lliurement segons les necessitats.

Pas 2: Fer dibuix de PCB

Realització de dibuix de PCB
Realització de dibuix de PCB

Com s’explica l’esquema de funcionament de l’INDICADOR, comencem a fer el circuit.

Abans de soldar alguna cosa al tauler universal, preparar el dibuix de PCB que es mostra anteriorment és útil per minimitzar qualsevol error.

El dibuix es realitza mitjançant power point per localitzar cada peça a la placa universal i fent patrons de cablejat entre peces amb cables.

Com que les imatges de pin-out de transistor i IC es col·loquen junt amb el patró de cablejat del PCB, es pot soldar mitjançant aquest dibuix.

Pas 3: soldar

Soldadura
Soldadura

Tot i que el dibuix original de PCB no es fa mitjançant cables individuals per connectar components a PCB, estic soldant de manera diferent.

En utilitzar un conductor únic de cables (no filferro d’estany), intento reduir la mida del PCB universal que conté un circuit INDICATOR.

Però, com podeu veure al costat de soldadura del PCB, també faig servir filferro d’estany segons els patrons que es representen al dibuix del PCB.

Quan cada component es connecta segons el disseny original del dibuix de PCB, la placa de PCB completada per soldar, inclòs el circuit INDICADOR, funcionarà correctament.

Pas 4: Preparació de la prova

Preparació de les proves
Preparació de les proves

Abans de la connexió RPI, el circuit acabat requereix proves.

Com que hi ha errors de soldadura, el proveïdor d’alimentació de corrent continu s’utilitza per evitar danys quan es produeix un curtcircuit o un cablejat incorrecte.

Per provar INDICATOR, es connecten dos cables d’alimentació addicionals al connector de la font d’alimentació de 5V del circuit.

Pas 5: proves (la temperatura de la CPU és de nivell mitjà)

Prova (la temperatura de la CPU és de nivell mitjà)
Prova (la temperatura de la CPU és de nivell mitjà)

Quan no s’aplica cap entrada de 5V, l’entrada de descodificació 74LS139 i l’activació de la sortida Y0 són BAIXES (LED verd encès).

Però 5V s'aplica a l'entrada A, sortida Y1 de 74LS139 activant (BAIX).

Per tant, el LED groc s’encén com es mostra a la imatge superior.

Pas 6: proves (la CPU necessita un nivell de refrigeració)

Proves (CPU necessita un nivell de refrigeració)
Proves (CPU necessita un nivell de refrigeració)

Quan els 5V han aplicat les dues entrades (A i B) del 74LS139, el quart LED vermell parpelleja.

La velocitat de parpelleig es pot canviar ajustant 100K VR com es mostra a la imatge superior.

Un cop finalitzada la prova, es poden eliminar dos cables femelles de 3 pins Molex.

Pas 7: Alimentació del circuit INDICADOR

Font d'alimentació al circuit INDICADOR
Font d'alimentació al circuit INDICADOR

Per alimentar el circuit INDICATOR, estic fent servir un carregador de telèfon manual que genera 5 V i un adaptador USB tipus B com es mostra a la imatge superior.

Per evitar problemes amb RPI mitjançant la connexió del circuit INDICADOR alimentat per GPIO de 3,3V i 5V, la interfície de senyal i la font d'alimentació estan totalment aïllats.

Pas 8: cablejat RPI

Cablejat RPI
Cablejat RPI

Per a la interfície del circuit INDICADOR amb RPI, s'han de dedicar dos pins GPIO juntament amb dos pins de terra.

No hi ha cap requisit específic per triar els pins GPIO.

Podeu utilitzar qualsevol pin GPIO per connectar INDICADOR.

Però els pins cablejats s’han de designar com a entrades a 74LS139 (per exemple, A, B) al programa python.

Pas 9: programa Python

Programa Python
Programa Python

Quan el circuit s'hagi completat, cal fer un programa Python per utilitzar la funció INDICADOR.

Consulteu el diagrama de flux anterior per obtenir més informació sobre la lògica del programa.

# - * - codificació: utf-8 - * -

subprocés d’importació, senyal, sys

temps d’importació, re

importar RPi. GPIO com a g

A = 12

B = 16

g.setmode (g. BCM)

g.setup (A, g. OUT)

g.setup (B, g. OUT)

##

manejador de senyal def (sig, frame):

print ("Heu premut Ctrl + C!")

g.output (A, fals)

g.output (B, fals)

f.close ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

mentre que és cert:

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 (codificació = 'UTF-8', errors = 'estricte')

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

# extracció de la temperatura actual de la CPU

current_temp = float (CPU_temp [0])

si current_temp> 30 i current_temp <40:

# temperatura baixa A = 0, B = 0

g.output (A, fals)

g.output (B, fals)

time.sleep (5)

elif current_temp> = 40 i current_temp <45:

# medi de temperatura A = 0, B = 1

g.output (A, fals)

g.output (B, True)

time.sleep (5)

elif current_temp> = 45 i current_temp <50:

# temperatura alta A = 1, B = 0

g.output (A, True)

g.output (B, fals)

time.sleep (5)

elif temp_actual> = 50:

# Es requereix un refredament de la CPU elevat A = 1, B = 1

g.output (A, True)

g.output (B, True)

time.sleep (5)

hora_actual = hora.hora ()

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

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

f.close ()

La funció principal del programa python és la següent.

- Primer establir GPIO 12, 16 com a port de sortida

- Definició del controlador d’interrupcions Ctrl + C per tancar el fitxer de registre i desactivar GPIO 12, 16

- Quan entreu a bucle infinit, obriu el fitxer de registre com a mode d'afegir

- Llegiu la temperatura de la CPU executant l'ordre "/ opt / vc / bin / vcgencmd measure_temp"

- Quan la temperatura estigui en el rang de 30 a 39, llavors sortiu 00 per encendre el LED verd

- Quan la temperatura estigui en el rang 40 ~ 44, sortiu 01 per encendre el LED groc

- Quan la temperatura estigui en el rang de 45 a 49, llavors sortiu 10 per encendre el LED vermell

- Quan la temperatura és superior a 50, sortiu 11 per fer parpellejar el LED vermell

- Escriure dades de marca de temps i temperatura al fitxer de registre

Pas 10: Operació INDICADOR

Operació INDICADOR
Operació INDICADOR

Quan tot està bé, podeu veure que cada LED s’encén o parpelleja segons la temperatura de la CPU.

No cal que introduïu l'ordre shell per comprovar la temperatura actual.

Després de recopilar dades al fitxer de registre i representar les dades de text al gràfic mitjançant Excel, es mostra el resultat a la imatge superior.

Quan s’apliquen càrregues elevades (executant dos navegadors Midori i reproduint vídeo de Youtube), la temperatura de la CPU augmenta fins als 57,9C.

Pas 11: Creació alternativa (utilitzant transistor NPN) i desenvolupament posterior

Fabricació alternativa (utilitzant transistor NPN) i desenvolupament posterior
Fabricació alternativa (utilitzant transistor NPN) i desenvolupament posterior

Aquest és un exemple anterior del projecte INDICATOR que utilitzava transistors NPN (2N3904 i BD139).

Com podeu veure, un CI més (74HC04, inversors Quad) és necessari per accionar el transistor NPN, ja que s'hauria d'aplicar un voltatge de nivell alt a la base de NPN per activar el transistor.

Com a resum, l'ús de transistors NPN afegeix una complexitat innecessària per crear un circuit INDICADOR.

Per al desenvolupament d’aquest projecte, afegiré un ventilador de refrigeració tal com es mostra a la imatge superior per fer més útil el circuit INDICATOR.

Recomanat: