Sommario:

Indicatore della temperatura della CPU Raspberry Pi: 11 passaggi (con immagini)
Indicatore della temperatura della CPU Raspberry Pi: 11 passaggi (con immagini)

Video: Indicatore della temperatura della CPU Raspberry Pi: 11 passaggi (con immagini)

Video: Indicatore della temperatura della CPU Raspberry Pi: 11 passaggi (con immagini)
Video: 🔥The NEW Raspberry Pi 5 - Design, Specs, Official Case & Active Cooler Performance | Full GUIDE 2024, Luglio
Anonim
Indicatore della temperatura della CPU Raspberry Pi
Indicatore della temperatura della CPU Raspberry Pi

In precedenza avevo introdotto un semplice circuito indicatore di stato operativo raspberry pi (di seguito come RPI).

Questa volta, spiegherò alcuni circuiti indicatori più utili per l'RPI in esecuzione come modalità headless (senza monitor).

Il circuito sopra mostra la temperatura della CPU in 4 diversi livelli come:

- LED verde acceso quando la temperatura della CPU è entro 30~39 gradi

- Il LED giallo indica che la temperatura è aumentata nell'intervallo da 40 a 45 gradi

- Il terzo LED rosso mostra che la CPU si surriscalda un po' raggiungendo i 46 ~ 49 gradi

- Un altro LED rosso lampeggerà quando la temperatura supera i 50 gradi

I suddetti intervalli di temperatura della CPU sono il mio concetto di design personale (altri intervalli di temperatura possono essere configurati modificando le condizioni di test del programma Python che controlla questo circuito).

Usando questo circuito, non stai necessariamente eseguendo frequentemente il comando "vcgencmd measure_temp" sul terminale della console.

Questo circuito informerà la temperatura attuale della CPU in modo continuo e conveniente.

Passaggio 1: preparazione degli schemi

Preparazione di schemi
Preparazione di schemi

Sebbene sia possibile controllare direttamente 4 LED utilizzando solo codici Python, la logica di controllo del programma caricherà RPI e, di conseguenza, la temperatura della CPU aumenterà di più perché si dovrebbe eseguire continuamente un codice Python un po' complesso.

Pertanto, sto riducendo al minimo la complessità del codice Python nel modo più semplice possibile e scaricando la logica di controllo del LED sul circuito hardware esterno.

Il circuito dell'indicatore della temperatura della CPU (di seguito INICATOR) è costituito dalle seguenti parti principali.

- Due opto-accoppiatori sono collegati ai pin GPIO RPI per ottenere dati sul livello di temperatura come 00->LOW, 01->Medium, 10->High, 11->Hai bisogno di raffreddamento.

- 74LS139 (o 74HC139, decoder 2-a-4 e demultiplexer) controlla le uscite (Y0, Y1, Y2, Y3) in base agli ingressi (A, B)

- Quando la temperatura è compresa tra 30 ~ 39 gradi, il codice Python emette 00 sui pin GPIO. Pertanto, 74LS139 ottiene i dati di input 00 (A->0, B->0)

- Quando viene immesso 00, l'uscita Y0 diventa LOW. (Si prega di fare riferimento alla tabella di verità di 74LS139)

- Quando l'uscita Y0 diventa LOW, attiva il transistor PNP 2N3906 e, di conseguenza, il LED verde si accende

- Allo stesso modo, Y1 (01 -> temperatura media della CPU) accenderà il LED giallo e così via

- Quando Y3 diventa LOW, DB140 attiva il circuito lampeggiante del LED NE555 (questo è un comune lampeggiatore LED basato su 555 IC) che è il carico del transistor PNP BD140

Il componente più importante di questo circuito è 74LS139 che decodifica 2 cifre in ingresso in 4 diverse uscite singole come mostrato nella tabella di verità sottostante.

Ingresso | Produzione

G (Abilita) | 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 |

Quando l'uscita 74LS139 diventa LOW, il transistor di tipo PNP può rendere il circuito generale semplice poiché il transistor PNP viene acceso quando il terminale di base diventa LOW. (Mostrerò la versione NPN alla fine di questa storia)

Poiché il potenziometro da 100K è incluso nel circuito del lampeggiatore a LED NE555, il tempo di accensione/spegnimento del LED rosso può essere regolato liberamente in base alle esigenze.

Passaggio 2: creazione del disegno PCB

Fare il disegno del PCB
Fare il disegno del PCB

Come viene spiegato lo schema di funzionamento dell'INDICATORE, iniziamo a realizzare il circuito.

Prima di saldare qualcosa sulla scheda universale, preparare il disegno del PCB mostrato sopra è utile per ridurre al minimo eventuali errori.

Il disegno viene realizzato utilizzando power-point per localizzare ogni parte sulla scheda universale e realizzando schemi di cablaggio tra le parti con fili.

Poiché le immagini dei pin-out dei circuiti integrati e dei transistor sono posizionate insieme allo schema di cablaggio del PCB, è possibile eseguire la saldatura utilizzando questo disegno.

Passaggio 3: saldatura

saldatura
saldatura

Sebbene il disegno PCB originale sia realizzato non utilizzando fili singoli per collegare i componenti sul PCB, sto saldando in modo leggermente diverso.

Usando un singolo conduttore di fili (non il filo di stagno), sto cercando di ridurre le dimensioni del PCB universale che contiene il circuito INDICATORE.

Ma come puoi vedere sul lato di saldatura del PCB, sto usando il filo di stagno anche secondo gli schemi raffigurati nel disegno del PCB.

Quando ogni componente è collegato secondo il progetto originale del disegno PCB, la scheda PCB completata con la saldatura, incluso il circuito INDICATORE, funzionerà correttamente.

Passaggio 4: preparazione del test

Preparazione al test
Preparazione al test

Prima della connessione RPI, il circuito finito richiede un test.

Poiché possono esistere errori di saldatura, l'alimentatore CC viene utilizzato per prevenire danni in caso di cortocircuiti o cablaggio errato.

Per testare l'INDICATORE, due cavi di alimentazione aggiuntivi sono collegati al connettore di alimentazione da 5 V del circuito.

Passaggio 5: test (la temperatura della CPU è di livello medio)

Test (la temperatura della CPU è di livello medio)
Test (la temperatura della CPU è di livello medio)

Quando non viene applicato alcun ingresso a 5V, 74LS139 decodifica l'ingresso e attiva l'uscita Y0 come LOW (LED verde acceso).

Ma 5V applicati all'ingresso A, uscita Y1 di 74LS139 in attivazione (LOW).

Pertanto, il LED giallo è acceso come mostrato nell'immagine sopra.

Passaggio 6: test (la CPU richiede il livello di raffreddamento)

Test (CPU ha bisogno di livello di raffreddamento)
Test (CPU ha bisogno di livello di raffreddamento)

Quando a 5V sono applicati entrambi gli ingressi (A e B) del 74LS139, il 4° LED rosso lampeggia.

La frequenza di lampeggio può essere modificata regolando 100K VR come mostrato nell'immagine sopra.

Al termine del test, è possibile rimuovere due cavi femmina Molex a 3 pin.

Passaggio 7: alimentazione al circuito INDICATORE

Alimentazione al circuito INDICATORE
Alimentazione al circuito INDICATORE

Per alimentare il circuito INDICATOR, sto usando un comune caricatore per telefono a mano che emette 5V e un adattatore USB di tipo B come mostrato nell'immagine sopra.

Per evitare problemi con l'RPI collegando il GPIO a 3,3 V e il circuito INDICATORE alimentato a 5 V, l'interfaccia del segnale e l'alimentazione sono totalmente isolati l'uno dall'altro.

Passaggio 8: cablaggio RPI

Cablaggio RPI
Cablaggio RPI

Per interfacciare il circuito INDICATOR con RPI, due pin GPIO dovrebbero essere dedicati insieme a due pin di terra.

Non ci sono requisiti specifici per la scelta dei pin GPIO.

È possibile utilizzare qualsiasi pin GPIO per collegare INDICATOR.

Ma i pin cablati dovrebbero essere designati come input per 74LS139 (ad esempio A, B) nel programma Python.

Passaggio 9: programma Python

Programma Python
Programma Python

Una volta completato il circuito, è necessario creare un programma Python per utilizzare la funzione INDICATOR.

Fare riferimento al diagramma di flusso sopra per maggiori dettagli sulla logica del programma.

#-*- codifica:utf-8 -*-

import subprocess, signal, sys

tempo di importazione, re

importa RPi. GPIO come 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('Hai premuto Ctrl+C!')

g.output(A, Falso)

g.output(B, Falso)

f.chiudi()

sys.exit(0)

signal.signal(signal. SIGINT, signal_handler)

##

mentre vero:

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(codifica = 'UTF-8', errori = 'rigoroso')

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

# estrazione della temperatura attuale della CPU

current_temp = float(CPU_temp[0])

if current_temp > 30 e current_temp < 40:

# temperatura bassa A=0, B=0

g.output(A, Falso)

g.output(B, Falso)

tempo.sonno(5)

elif current_temp >= 40 e current_temp < 45:

# temperatura media A=0, B=1

g.output(A, Falso)

g.output(B, Vero)

tempo.sonno(5)

elif current_temp >= 45 e current_temp < 50:

# temperatura alta A=1, B=0

g.output(A, Vero)

g.output(B, Falso)

tempo.sonno(5)

elif current_temp >= 50:

# È richiesto il raffreddamento della CPU alto A=1, B=1

g.output(A, Vero)

g.output(B, Vero)

tempo.sonno(5)

ora_corrente = ora.ora()

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

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

f.chiudi()

La funzione principale del programma Python è come di seguito.

- Innanzitutto impostando GPIO 12, 16 come porta di uscita

- Definizione del gestore di interrupt Ctrl+C per chiudere il file di registro e disattivare GPIO 12, 16

- Quando si accede al ciclo infinito, aprire il file di registro come modalità di aggiunta

- Leggere la temperatura della CPU eseguendo il comando "/opt/vc/bin/vcgencmd measure_temp"

- Quando la temperatura è nell'intervallo 30 ~ 39, quindi l'uscita 00 per accendere il LED verde

- Quando la temperatura è nell'intervallo 40 ~ 44, quindi l'uscita 01 per accendere il LED giallo

- Quando la temperatura è nell'intervallo 45 ~ 49, quindi l'uscita 10 per accendere il LED rosso

- Quando la temperatura è superiore a 50, emettere 11 per far lampeggiare il LED rosso

- Scrivi data e ora e dati di temperatura nel file di registro

Passaggio 10: funzionamento dell'INDICATORE

INDICATORE Funzionamento
INDICATORE Funzionamento

Quando tutto è a posto, puoi vedere che ogni LED è acceso o lampeggia in base alla temperatura della CPU.

Non è necessario immettere il comando shell per controllare la temperatura corrente.

Dopo aver raccolto i dati nel file di registro e aver reso i dati di testo in un grafico utilizzando Excel, il risultato viene mostrato nell'immagine sopra.

Quando si applicano carichi elevati (esecuzione di due browser Midori e riproduzione di video Youtube), la temperatura della CPU raggiunge i 57,9 °C.

Passaggio 11: realizzazione alternativa (utilizzando il transistor NPN) e ulteriore sviluppo

Produzione alternativa (usando il transistor NPN) e ulteriore sviluppo
Produzione alternativa (usando il transistor NPN) e ulteriore sviluppo

Questo è il precedente esempio del progetto INDICATOR che utilizza transistor NPN (2N3904 e BD139).

Come puoi vedere, è necessario un altro IC (74HC04, Quad inverter) per pilotare il transistor NPN poiché la tensione di livello ALTO dovrebbe essere applicata alla base di NPN per accendere il transistor.

In sintesi, l'utilizzo del transistor NPN aggiunge complessità non necessaria per creare il circuito INDICATOR.

Per l'ulteriore sviluppo di questo progetto, aggiungerò la ventola di raffreddamento come mostrato nell'immagine sopra per rendere più utile il circuito INDICATOR.

Consigliato: