Cuprins:
- Pasul 1: Pregătirea schemelor
- Pasul 2: Realizarea desenului PCB
- Pasul 3: lipire
- Pasul 4: Pregătirea testării
- Pasul 5: Testare (temperatura CPU este la nivel mediu)
- Pasul 6: Testare (CPU are nevoie de nivel de răcire)
- Pasul 7: Alimentare la circuitul INDICATOR
- Pasul 8: Cablare RPI
- Pasul 9: Program Python
- Pasul 10: Funcționare INDICATOR
- Pasul 11: Realizarea alternativă (utilizarea tranzistorului NPN) și dezvoltarea ulterioară
Video: Indicator de temperatură CPU Raspberry Pi: 11 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Anterior am introdus circuitul indicatorului de stare operațională simplu raspberry pi (în continuare RPI).
De data aceasta, voi explica câteva circuite de indicatori mai utile pentru RPI care rulează fără cap (fără monitor).
Circuitul de mai sus arată temperatura procesorului în 4 niveluri diferite, cum ar fi:
- LED-ul verde este aprins atunci când temperatura procesorului este de 30 ~ 39 de grade
- LED-ul galben indică creșterea temperaturii între 40 și 45 de grade
- Al treilea LED roșu arată că CPU devine puțin fierbinte atingând 46 ~ 49 de grade
- Un alt LED roșu va clipi atunci când temperatura depășește peste 50 de grade
Intervalele de temperatură ale procesorului de mai sus sunt conceptul meu personal de proiectare (alte intervale de temperatură pot fi configurate prin schimbarea condițiilor de testare ale programului python care controlează acest circuit).
Prin utilizarea acestui circuit, nu executați neapărat comanda „vcgencmd measure_temp” frecvent pe terminalul consolei.
Acest circuit trebuie să informeze continuu și convenabil temperatura curentă a procesorului.
Pasul 1: Pregătirea schemelor
Deși puteți controla direct 4 LED-uri utilizând numai coduri python, logica de control a programului va încărca RPI și, ca rezultat, temperatura procesorului va crește mai mult, deoarece ar trebui să rulați un cod Python puțin complex continuu.
Prin urmare, minimizez complexitatea codului python cât mai simplu posibil și descărc logica de control LED către circuitul hardware extern.
Circuitul indicatorului de temperatură al procesorului (în continuare INICATOR) este format din următoarele părți majore.
- Două opto-cuplaje sunt conectate la pinii RPI GPIO pentru a obține date de nivel de temperatură, cum ar fi 00-> LOW, 01-> Medium, 10-> High, 11-> Need cooling.
- 74LS139 (sau 74HC139, decodor 2-la-4 și de-multiplexor) controlează ieșirile (Y0, Y1, Y2, Y3) în funcție de intrări (A, B)
- Când temperatura este cuprinsă între 30 ~ 39 de grade, codul python iese 00 la pinii GPIO. Prin urmare, 74LS139 obține date de intrare 00 (A-> 0, B-> 0)
- Pe măsură ce se introduce 00, ieșirea Y0 devine LOW. (Vă rugăm să consultați tabelul de adevăr al 74LS139)
- Când ieșirea Y0 devine LOW, activează tranzistorul PNP 2N3906 și, ca urmare, LED-ul verde este aprins
- La fel, Y1 (01 -> mediu de temperatură CPU) va porni LED-ul galben și așa mai departe
- Când Y3 devine LOW, DB140 activează circuitul intermitent cu LED-uri NE555 (acesta este un clipitor comun cu LED-uri 555 IC) care este încărcarea tranzistorului BD140 PNP
Cea mai importantă componentă a acestui circuit este 74LS139, care decodifică 2 cifre de intrare în 4 ieșiri diferite, așa cum se arată în tabelul de adevăr de mai jos.
Intrare | Ieșire
G (Activare) | 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 |
Pe măsură ce ieșirea 74LS139 devine LOW, tranzistorul de tip PNP poate simplifica circuitul general, deoarece tranzistorul PNP este pornit atunci când terminalul de bază devine LOW. (Voi arăta versiunea NPN la sfârșitul acestei povești)
Deoarece potențiometrul de 100K este inclus în circuitul intermitent cu LED-uri NE555, timpul de pornire / oprire a LED-ului roșu poate fi reglat liber în funcție de necesități.
Pasul 2: Realizarea desenului PCB
Pe măsură ce se explică schema de funcționare a INDICATORULUI, să începem să realizăm circuitul.
Înainte de a lipi ceva pe placa universală, pregătirea desenului PCB prezentat mai sus este utilă pentru a minimiza orice greșeli.
Desenul este realizat folosind power-point pentru a localiza fiecare parte pe placa universală și realizând modele de cablare între piese cu fire.
Deoarece imaginile cu pin și cu tranzistor sunt amplasate împreună cu modelul de cablare PCB, lipirea poate fi efectuată folosind acest desen.
Pasul 3: lipire
Deși desenul original al PCB-ului este realizat fără a utiliza fire simple pentru a conecta componentele de pe PCB, lipesc oarecum diferit.
Folosind un singur conductor de fire (nu sârmă de tablă), încerc să reduc dimensiunea PCB-ului universal care conține circuitul INDICATOR.
Dar, după cum puteți vedea pe partea de lipit a PCB, folosesc sârmă de tablă, de asemenea, conform modelelor prezentate în desenul PCB.
Când fiecare componentă este conectată conform designului original al desenului PCB, lipirea plăcii PCB completate, inclusiv circuitul INDICATOR, va funcționa corect.
Pasul 4: Pregătirea testării
Înainte de conexiunea RPI, circuitul terminat necesită testare.
Deoarece pot exista greșeli de lipire, furnizorul de curent continuu este utilizat pentru prevenirea daunelor atunci când apar scurte sau cabluri greșite.
Pentru testarea INDICATORULUI, două cabluri suplimentare de alimentare sunt conectate la conectorul de alimentare de 5V al circuitului.
Pasul 5: Testare (temperatura CPU este la nivel mediu)
Atunci când nu este aplicată nicio intrare de 5V, atunci intrarea de decodare 74LS139 și activarea ieșirii Y0 ca LOW (LED verde aprins).
Dar 5V s-au aplicat la intrarea A, ieșirea Y1 din 74LS139 activându-se (LOW).
Prin urmare, LED-ul galben este aprins așa cum se arată în imaginea de mai sus.
Pasul 6: Testare (CPU are nevoie de nivel de răcire)
Când 5V au aplicat ambele intrări (A și B) ale 74LS139, al 4-lea LED roșu clipește.
Rata de clipire poate fi modificată ajustând 100K VR așa cum se arată în imaginea de mai sus.
Când testarea este finalizată, două cabluri femele Molex cu 3 pini pot fi îndepărtate.
Pasul 7: Alimentare la circuitul INDICATOR
Pentru alimentarea circuitului INDICATOR, folosesc un încărcător comun pentru telefonul manual, cu ieșire de 5V și adaptor USB de tip B, așa cum se arată în imaginea de mai sus.
Pentru a evita problemele cu RPI prin conectarea circuitului INDICATOR alimentat de 3,3V GPIO și 5V, interfața de semnal și sursa de alimentare sunt complet izolate.
Pasul 8: Cablare RPI
Pentru interfața circuitului INDICATOR cu RPI, ar trebui dedicați doi pini GPIO împreună cu doi pini de masă.
Nu există o cerință specifică pentru alegerea pinilor GPIO.
Puteți utiliza orice pini GPIO pentru conectarea INDICATORULUI.
Dar pinii cu fir ar trebui să fie desemnați ca intrări la 74LS139 (de exemplu, A, B) în programul python.
Pasul 9: Program Python
Pe măsură ce circuitul este finalizat, este necesară realizarea unui program python pentru a utiliza funcția INDICATOR.
Vă rugăm să consultați diagrama de mai sus pentru mai multe detalii despre logica programului.
# - * - codare: utf-8 - * -
import subproces, semnal, sistem
timp de import, re
import RPi. GPIO ca 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 („Ați apăsat Ctrl + C!”)
g. ieșire (A, fals)
g. ieșire (B, fals)
f.close ()
sys.exit (0)
signal.signal (signal. SIGINT, signal_handler)
##
în timp ce este adevărat:
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 (codificare = 'UTF-8', erori = 'strict')
CPU_temp = re.findall ("\ d + \. / D +", temp_str)
# extragerea temperaturii curente a procesorului
current_temp = float (CPU_temp [0])
dacă current_temp> 30 și current_temp <40:
# temperatura scăzută A = 0, B = 0
g. ieșire (A, fals)
g. ieșire (B, fals)
time.sleep (5)
elif current_temp> = 40 și current_temp <45:
# mediu de temperatură A = 0, B = 1
g. ieșire (A, fals)
g. ieșire (B, adevărat)
time.sleep (5)
elif current_temp> = 45 și current_temp <50:
# temperatura ridicată A = 1, B = 0
g. ieșire (A, Adevărat)
g. ieșire (B, fals)
time.sleep (5)
elif current_temp> = 50:
# Răcirea procesorului este necesară A = 1, B = 1
g. ieșire (A, Adevărat)
g. ieșire (B, adevărat)
time.sleep (5)
ora_curenta = ora. ora ()
formated_time = time.strftime („% H:% M:% S”, time.gmtime (current_time))
f.write (str (format_time) + '\ t' + str (current_temp) + '\ n')
f.close ()
Funcția principală a programului python este ca mai jos.
- Mai întâi setarea GPIO 12, 16 ca port de ieșire
- Definirea controlerului de întreruperi Ctrl + C pentru închiderea fișierului jurnal și dezactivarea GPIO 12, 16
- Când intrați în buclă infinită, deschideți fișierul jurnal ca mod de adăugare
- Citiți temperatura procesorului executând comanda „/ opt / vc / bin / vcgencmd measure_temp”
- Când temperatura este în intervalul 30 ~ 39, ieșire 00 pentru a porni LED-ul verde
- Când temperatura este în intervalul 40 ~ 44, ieșire 01 pentru a porni LED-ul galben
- Când temperatura este în intervalul 45 ~ 49, ieșiți 10 pentru a porni LED-ul roșu
- Când temperatura este mai mare de 50, ieșire 11 pentru a face LED-ul roșu să clipească
- Scrieți ștampila și datele de temperatură în fișierul jurnal
Pasul 10: Funcționare INDICATOR
Când totul este în regulă, puteți vedea că fiecare LED este aprins sau clipește în funcție de temperatura procesorului.
Nu trebuie să introduceți comanda shell pentru a verifica temperatura curentă.
După colectarea datelor în fișierul jurnal și redarea datelor text în grafic utilizând Excel, rezultatul este afișat în imaginea de mai sus.
Când aplicați încărcări mari (Rularea a două browser-uri Midori și redarea videoclipurilor de pe YouTube), temperatura procesorului crește până la 57,9C.
Pasul 11: Realizarea alternativă (utilizarea tranzistorului NPN) și dezvoltarea ulterioară
Acesta este exemplul anterior de proiect INDICATOR care utilizează tranzistoare NPN (2N3904 și BD139).
După cum puteți vedea, încă un IC (74HC04, invertoare Quad) este necesar pentru a acționa tranzistorul NPN, deoarece tensiunea de nivel înalt ar trebui aplicată la baza NPN pentru a porni tranzistorul.
Ca rezumat, utilizarea tranzistorului NPN adaugă o complexitate inutilă pentru a face circuitul INDICATOR.
Pentru dezvoltarea în continuare a acestui proiect, voi adăuga un ventilator de răcire așa cum se arată în imaginea de mai sus pentru a face circuitul INDICATOR mai util.
Recomandat:
Indicator de încărcare CPU Raspberry Pi: 13 pași
Indicator de încărcare a procesorului Raspberry Pi: Când rulați Raspberry Pi (RPI) fără cap, fără monitor de consolă, nu sunt disponibile indicații vizuale specifice pentru a recunoaște că RPI face de fapt ceva
Raspberry Pi Cutie de ventilator de răcire cu indicator de temperatură CPU: 10 pași (cu imagini)
Raspberry Pi Cutie de ventilator de răcire cu indicator de temperatură CPU: Am introdus circuitul indicator de temperatură CPU Raspberry pi (în continuare RPI) în proiectul anterior. Temperatura procesorului este în intervalul 30 ~
OreServer - un server Minecraft dedicat Raspberry Pi cu indicator LED Player: 9 pași (cu imagini)
OreServer - un server Minecraft dedicat Raspberry Pi cu indicator LED Player: iulie 2020 ACTUALIZARE - Înainte de a începe acest proiect, vă rugăm să fiți conștienți de faptul că au fost făcute MULTE modificări și actualizări ale diferitelor instrumente software pe care le-am folosit pentru a crea acest lucru în două cu ani în urmă. Drept urmare, mulți dintre pași nu mai funcționează așa cum este scris
Indicator de temperatură și umiditate de Arduino: 7 pași (cu imagini)
Indicator de temperatură și umiditate de către Arduino: Această instrucțiune va arăta cum să creați o cutie care să poată indica temperatura și umiditatea cu Arduino Puteți pune această cutie pe masă pentru măsurarea temperaturii și umidității în camera dvs. Prin calitate înaltă a cutiei MDF prin tăiere cu laser, fiecare lucru este compactat f
Indicator de temperatură RGB (cu XinaBox): 5 pași (cu imagini)
Indicator de temperatură RGB (cu XinaBox): Acesta este oficial primul meu articol Instructables, așa că voi recunoaște că folosesc această oportunitate chiar acum pentru a-l încerca. Descoperiți cum funcționează platforma, întreaga parte a experienței utilizatorului. Dar, în timp ce fac asta, m-am gândit că pot