Kazalo:

Indikator temperature procesorja Raspberry Pi: 11 korakov (s slikami)
Indikator temperature procesorja Raspberry Pi: 11 korakov (s slikami)

Video: Indikator temperature procesorja Raspberry Pi: 11 korakov (s slikami)

Video: Indikator temperature procesorja Raspberry Pi: 11 korakov (s slikami)
Video: Вздулся аккумулятор 2024, November
Anonim
Indikator temperature procesorja Raspberry Pi
Indikator temperature procesorja Raspberry Pi

Pred tem sem predstavil preprosto vezje indikatorja stanja delovanja maline pi (v nadaljevanju RPI).

Tokrat bom razložil nekaj bolj uporabnega indikatorskega vezja za RPI, ki deluje brez glave (brez monitorja).

Zgornje vezje prikazuje temperaturo procesorja na 4 različne ravni, na primer:

- Zelena LED se prižge, ko je temperatura procesorja znotraj 30 ~ 39 stopinj

- Rumena LED označuje zvišanje temperature v območju od 40 do 45 stopinj

- Tretja rdeča LED prikazuje, da se procesor nekoliko segreje, ko doseže 46 ~ 49 stopinj

- Če temperatura preseže 50 stopinj, bo utripala še ena rdeča LED

Zgornja temperaturna območja procesorja so moj osebni koncept (druga temperaturna območja lahko konfigurirate s spreminjanjem preskusnih pogojev programa python, ki krmili to vezje).

Z uporabo tega vezja ne nujno pogosto izvajate ukaz »vcgencmd mere_temp« na terminalu konzole.

To vezje mora stalno in priročno obveščati o trenutni temperaturi procesorja.

1. korak: Priprava shem

Priprava shem
Priprava shem

Čeprav lahko neposredno upravljate 4 LED z uporabo samo kod Python, bodo krmilne logike programa naložile RPI in posledično se bo temperatura procesorja še povečala, ker morate neprestano izvajati nekoliko zapleteno kodo Python.

Zato čim bolj poenostavim zapletenost kode python in razbremenim krmilno logiko LED v zunanje vezje strojne opreme.

Vezje indikatorja temperature procesorja (v nadaljevanju INICATOR) je sestavljeno iz naslednjih glavnih delov.

-Dva optična sklopnika sta povezana z zatiči RPIO GPIO, da dobita podatke o temperaturni ravni, na primer 00-> NIZKA, 01-> Srednja, 10-> Visoka, 11-> Potrebujete hlajenje.

-74LS139 (ali 74HC139, dekoder 2 do 4 in de-multiplekser) krmilni izhodi (Y0, Y1, Y2, Y3) glede na vhode (A, B)

- Ko je temperatura v območju 30 ~ 39 stopinj, Python koda prikaže 00 na nožice GPIO. Zato 74LS139 dobi vhodne podatke 00 (A-> 0, B-> 0)

- Ko vnesete 00, se izhod Y0 zmanjša. (Glejte tabelo resničnosti 74LS139)

- Ko izhod Y0 postane NIZK, aktivira tranzistor 2N3906 PNP in posledično se prižge zelena LED

- Podobno mora Y1 (01 -> temperaturni medij procesorja) prižgati rumeno LED in tako naprej

- Ko postane Y3 NIZKA, DB140 aktivira utripajoče vezje LED NE555 LED (to je običajna LED utripalec na osnovi 555 IC), ki je obremenitev tranzistorja BD140 PNP

Najpomembnejša komponenta tega vezja je 74LS139, ki dekodira dvomestne vnose v 4 različne enojne izhode, kot je prikazano v spodnji tabeli resničnosti.

Vnos | Izhod

G (Omogoči) | 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 |

Ker izhod 74LS139 postane NIZK, lahko tranzistor tipa PNP poenostavi celotno vezje, saj je tranzistor PNP vklopljen, ko osnovni terminal postane NIZK. (Na koncu te zgodbe bom prikazal različico NPN)

Ker je 100K potenciometer vključen v LED -utripajoči krog NE555, lahko čas vklopa/izklopa rdeče LED nastavite prosto glede na potrebe.

2. korak: Izdelava PCB risbe

Izdelava risbe na PCB
Izdelava risbe na PCB

Ko je razložena shema delovanja INDIKATORJA, začnimo izdelovati vezje.

Preden nekaj spajkate na univerzalno ploščo, je priprava zgoraj prikazane risbe tiskanega vezja v pomoč pri zmanjševanju napak.

Risba je narejena z uporabo power-point za lociranje vsakega dela na univerzalni plošči in izdelavo vzorcev ožičenja med deli z žicami.

Ker so slike izhoda IC in tranzistorja skupaj z vzorcem ožičenja PCB, lahko spajkanje izvedete s to risbo.

Korak: Spajkanje

Spajkanje
Spajkanje

Čeprav prvotna risba tiskanega vezja ni narejena tako, da za povezavo komponent na tiskano vezje uporablja samo ene žice, spajkam nekoliko drugače.

Z uporabo enega vodnika žic (ne kositrne žice) poskušam zmanjšati univerzalno velikost tiskanega vezja, ki vsebuje vezje INDICATOR.

Toda kot lahko vidite na strani spajkanja tiskanega vezja, uporabljam kositrno žico tudi po vzorcih, prikazanih na risbi tiskanega vezja.

Ko je vsaka komponenta priključena v skladu s prvotno zasnovo risbe tiskanega vezja, bo spajkana plošča, vključno z vezjem INDICATOR, delovala pravilno.

4. korak: Priprava na testiranje

Priprava na testiranje
Priprava na testiranje

Pred priključitvijo na RPI je potrebno preskusiti dokončano vezje.

Ker lahko pride do napak pri spajkanju, se dobavitelj enosmerne energije uporablja za preprečevanje poškodb, ko pride do kratkih stikov ali napačnega ožičenja.

Za preskus INDICATOR -ja sta dva dodatna napajalna kabla priključena na 5V napajalni konektor vezja.

5. korak: Testiranje (temperatura CPE -ja je srednja)

Testiranje (temperatura procesorja je srednja)
Testiranje (temperatura procesorja je srednja)

Ko ni vhoda 5V, potem 74LS139 dekodira vhod in aktivira izhod Y0 kot LOW (zelena LED sveti).

Toda 5V velja za vhod A, aktivira se izhod Y1 74LS139 (LOW).

Zato se prižge rumena LED, kot je prikazano na zgornji sliki.

Korak 6: Testiranje (CPU potrebuje raven hlajenja)

Testiranje (CPU potrebuje stopnjo hlajenja)
Testiranje (CPU potrebuje stopnjo hlajenja)

Ko priključite 5V oba vhoda (A in B) 74LS139, utripa 4. rdeča LED.

Hitrost utripanja lahko spremenite s prilagajanjem 100K VR, kot je prikazano na zgornji sliki.

Ko je preskušanje končano, lahko odstranite dva 3 -polna ženska kabla Molex.

7. korak: Napajanje z vezjem INDICATOR

Napajanje v tokokrogu INDICATOR
Napajanje v tokokrogu INDICATOR

Za napajanje vezja INDICATOR uporabljam običajen polnilec za ročne telefone, ki oddaja 5V in USB adapter tipa B, kot je prikazano na zgornji sliki.

Da bi se izognili težavam z RPI s priključitvijo 3.3V GPIO in 5V napajanega vezja INDICATOR, sta signalni vmesnik in napajanje popolnoma izolirana.

8. korak: ožičenje RPI

Ožičenje RPI
Ožičenje RPI

Za povezovanje vezja INDICATOR z RPI je treba namestiti dva zatiča GPIO skupaj z dvema ozemljitvenima.

Za izbiro zatičev GPIO ni posebnih zahtev.

Za priključitev INDICATOR -ja lahko uporabite kateri koli zatič GPIO.

Toda žični zatiči morajo biti označeni kot vhodi za 74LS139 (npr. A, B) v programu python.

9. korak: Program Python

Python program
Python program

Ko je vezje zaključeno, je za uporabo funkcije INDICATOR potreben program python.

Za več podrobnosti o programski logiki glejte diagram poteka zgoraj.

#-*-kodiranje: utf-8-*-

uvozni podproces, signal, sys

čas uvoza, ponov

uvozite RPi. GPIO kot g

A = 12

B = 16

g.način delovanja (g. BCM)

g.setup (A, g. OUT)

g.nastavitev (B, g. OUT)

##

def signal_handler (sig, okvir):

print ('Pritisnili ste Ctrl+C!')

g.output (A, False)

g.output (B, False)

f.close ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_krmilnik)

##

medtem ko je res:

f = odprto ('/home/pi/My_project/CPU_temperature_log.txt', 'a+')

temp_str = podproces.check_output ('/opt/vc/bin/vcgencmd ukrep_temp', lupina = True)

temp_str = temp_str.decode (kodiranje = 'UTF-8', napake = 'strogo')

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

# ekstrakcija trenutne temperature procesorja

current_temp = float (CPU_temp [0])

če je current_temp> 30 in current_temp <40:

# nizka temperatura A = 0, B = 0

g.output (A, False)

g.output (B, False)

time.sleep (5)

elif current_temp> = 40 in current_temp <45:

# temperaturni medij A = 0, B = 1

g.output (A, False)

g.izhod (B, True)

time.sleep (5)

elif current_temp> = 45 in current_temp <50:

# visoka temperatura A = 1, B = 0

g.output (A, True)

g.output (B, False)

time.sleep (5)

elif current_temp> = 50:

# Hlajenje procesorja je potrebno visoko A = 1, B = 1

g.output (A, True)

g.izhod (B, True)

time.sleep (5)

current_time = time.time ()

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

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

f.close ()

Glavna funkcija programa python je naslednja.

- Najprej nastavite GPIO 12, 16 kot izhodna vrata

- Določitev upravljalnika prekinitev Ctrl+C za zapiranje datoteke dnevnika in izklop GPIO 12, 16

- Ko vstopite v neskončno zanko, odprite datoteko dnevnika kot način dodajanja

- Preberite temperaturo procesorja tako, da izvedete ukaz »/opt/vc/bin/vcgencmd mere_temp«

- Ko je temperatura v območju 30 ~ 39, potem izklopite 00, da vklopite zeleno LED

- Ko je temperatura v območju 40 ~ 44, potem izklopite 01, da vklopite rumeno LED

- Ko je temperatura v območju 45 ~ 49, potem izklopite 10, da vklopite rdečo LED

- Ko je temperatura večja od 50, potem na izhodu 11 utripa rdeča LED

- Zapišite podatke o časovnem žigu in temperaturi v datoteko dnevnika

10. korak: Delovanje INDIKATORJA

INDIKATOR Delovanje
INDIKATOR Delovanje

Ko je vse v redu, lahko vidite, da vsaka LED sveti ali utripa glede na temperaturo procesorja.

Za preverjanje trenutne temperature vam ni treba vnesti ukaza lupine.

Po zbiranju podatkov v dnevniški datoteki in upodabljanju besedilnih podatkov v graf z uporabo Excela je rezultat prikazan na zgornji sliki.

Pri visokih obremenitvah (z uporabo dveh brskalnikov Midori in predvajanjem videoposnetka Youtube) se temperatura CPU dvigne na 57,9 ° C.

11. korak: Alternativno izdelovanje (z uporabo tranzistorja NPN) in nadaljnji razvoj

Alternativna izdelava (z uporabo tranzistorja NPN) in nadaljnji razvoj
Alternativna izdelava (z uporabo tranzistorja NPN) in nadaljnji razvoj

To je prejšnji primer projekta INDICATOR, ki uporablja tranzistorje NPN (2N3904 in BD139).

Kot lahko vidite, je za pogon tranzistorja NPN potreben še en IC (74HC04, štirikotni pretvorniki), saj je treba za vklop tranzistorja na osnovo NPN uporabiti visoko napetost.

Če povzamemo, uporaba tranzistorja NPN doda nepotrebno zapletenost pri izdelavi vezja INDICATOR.

Za nadaljnji razvoj tega projekta bom dodal hladilni ventilator, kot je prikazano na zgornji sliki, da bo vezje INDICATOR bolj uporabno.

Priporočena: