Sommario:
- Passaggio 1: preparazione degli schemi
- Passaggio 2: creazione del disegno PCB
- Passaggio 3: saldatura
- Passaggio 4: preparazione del test
- Passaggio 5: test (la temperatura della CPU è di livello medio)
- Passaggio 6: test (la CPU richiede il livello di raffreddamento)
- Passaggio 7: alimentazione al circuito INDICATORE
- Passaggio 8: cablaggio RPI
- Passaggio 9: programma Python
- Passaggio 10: funzionamento dell'INDICATORE
- Passaggio 11: realizzazione alternativa (utilizzando il transistor NPN) e ulteriore sviluppo
Video: Indicatore della temperatura della CPU Raspberry Pi: 11 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
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
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
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
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
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)
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)
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
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
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
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
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
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:
Indicatore di carico della CPU Raspberry Pi: 13 passaggi
Indicatore di carico della CPU Raspberry Pi: quando si esegue Raspberry Pi (RPI) come headless senza monitor console, non sono disponibili indicazioni visive specifiche per riconoscere che l'RPI sta effettivamente facendo qualcosa. Anche se il terminale remoto viene utilizzato con SSH, esecuzione di volta in volta del comando Linux
Raspberry Pi Box di ventola di raffreddamento con indicatore della temperatura della CPU: 10 passaggi (con immagini)
Raspberry Pi Box di raffreddamento FAN con indicatore della temperatura della CPU: avevo introdotto il circuito dell'indicatore della temperatura della CPU raspberry pi (di seguito come RPI) nel progetto precedente. Il circuito mostra semplicemente RPI 4 diversi livelli di temperatura della CPU come segue.- LED verde acceso quando La temperatura della CPU è entro 30~
Indicatore o indicatore del livello di rumore non sicuro: 4 passaggi (con immagini)
Indicatore o indicatore del livello di rumore non sicuro: mi piace guardare i progetti creativi delle persone. Strumenti moderni e la tecnologia ci offre così tante opzioni creative. Insegno materiali duri agli studenti delle scuole secondarie in una scuola superiore in Nuova Zelanda, quindi sviluppo sempre & sperimentando cose nuove. questo
Ventola con regolazione PWM basata sulla temperatura della CPU per Raspberry Pi: 4 passaggi (con immagini)
Ventola regolata PWM basata sulla temperatura della CPU per Raspberry Pi: molte custodie per Raspberry Pi sono dotate di una piccola ventola da 5 V per aiutare a raffreddare la CPU. Tuttavia, queste ventole sono solitamente piuttosto rumorose e molte persone le collegano al pin 3V3 per ridurre il rumore. Questi ventilatori sono generalmente classificati per 200 mA, il che è piuttosto h
Indicatore di temperatura RGB (con XinaBox): 5 passaggi (con immagini)
Indicatore di temperatura RGB (con XinaBox): questo è ufficialmente il mio primo articolo di Instructables, quindi ammetterò che sto usando questa opportunità in questo momento per provarlo. Dai un'occhiata a come funziona la piattaforma e all'intera esperienza utente. Ma mentre lo faccio, ho pensato di poter