Sadržaj:

Indikator temperature Raspberry Pi procesora: 11 koraka (sa slikama)
Indikator temperature Raspberry Pi procesora: 11 koraka (sa slikama)

Video: Indikator temperature Raspberry Pi procesora: 11 koraka (sa slikama)

Video: Indikator temperature Raspberry Pi procesora: 11 koraka (sa slikama)
Video: Объяснение прошивки Marlin 2.0.x 2024, Novembar
Anonim
Raspberry Pi CPU indikator temperature
Raspberry Pi CPU indikator temperature

Ranije sam predstavio jednostavan krug indikatora operativnog statusa maline pi (u daljem tekstu RPI).

Ovaj put ću objasniti neki korisniji krug indikatora za RPI koji radi bez glave (bez monitora).

Gornji krug prikazuje temperaturu procesora na 4 različita nivoa, kao što su:

- Zelena LED lampica se pali kada je temperatura procesora unutar 30 ~ 39 stepeni

- Žuta LED označava da se temperatura povećava u rasponu od 40 do 45 stepeni

- Treća crvena LED lampica pokazuje da se procesor pomalo zagrijava dosežući 46 ~ 49 stepeni

- Još jedna crvena LED lampica će treptati kada temperatura pređe više od 50 stepeni

Gore navedeni temperaturni rasponi CPU -a su moj lični koncept dizajna (Ostali rasponi temperatura mogu se konfigurirati promjenom uvjeta ispitivanja Python programa koji kontrolira ovo kolo).

Korištenjem ovog kola ne morate nužno često izvršavati naredbu “vcgencmd mjera_temp” na terminalu konzole.

Ovaj krug će kontinuirano i prikladno izvještavati o trenutnoj temperaturi procesora.

Korak 1: Priprema shema

Priprema šema
Priprema šema

Iako možete kontrolirati 4 LED diode koristeći samo python kodove, kontrolne logike programa učitavat će RPI i kao rezultat toga temperatura CPU -a će se dodatno povećati jer biste trebali neprestano izvoditi pomalo složeni python kod.

Stoga minimiziram složenost python koda što je moguće jednostavnije i oslobađam LED kontrolnu logiku vanjskom krugu hardvera.

Krug indikatora temperature procesora (u daljem tekstu INICATOR) sastoji se od sljedećih glavnih dijelova.

-Dva optička sprega su spojena na RPI GPIO pinove radi dobivanja podataka o temperaturnim razinama kao što su 00-> NISKA, 01-> Srednja, 10-> Visoka, 11-> Potrebno je hlađenje.

-74LS139 (ili 74HC139, dekoder 2 do 4 i de-multiplekser) upravljački izlazi (Y0, Y1, Y2, Y3) prema ulazima (A, B)

- Kada je temperatura unutar 30 ~ 39 stepeni, python kod šalje 00 na GPIO pinove. Stoga 74LS139 prima ulazne podatke 00 (A-> 0, B-> 0)

- Kad se unese 00, izlaz Y0 postaje NISAK. (Molimo pogledajte tablicu istinitosti 74LS139)

- Kad izlaz Y0 postane NISAK, aktivira se 2N3906 PNP tranzistor i kao rezultat toga uključuje se zelena LED dioda

- Slično, Y1 (01 -> medij temperature procesora) će upaliti žutu LED i tako dalje

- Kad Y3 postane NISKA, DB140 aktivira NE555 LED krug treperenja (ovo je uobičajeni LED blinker na bazi 555 IC) koje je opterećenje BD140 PNP tranzistora

Najvažnija komponenta ovog kola je 74LS139 koja dekodira dvocifrene ulaze u 4 različita pojedinačna izlaza kako je prikazano u donjoj tablici istinitosti.

Unos | Output

G (Omoguć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 |

Kako izlaz 74LS139 postaje LOW, tranzistor tipa PNP može pojednostaviti cjelokupno kolo jer se PNP tranzistor uključuje kada bazni terminal postane LOW. (Pokazat ću NPN verziju na kraju ove priče)

Budući da je potenciometar od 100K uključen u NE555 LED blinker krug, vrijeme uključivanja/isključivanja crvene LED diode može se slobodno prilagoditi prema potrebama.

Korak 2: Izrada crteža na PCB -u

Izrada crteža na PCB -u
Izrada crteža na PCB -u

Kako je objašnjena radna shema INDIKATORA, počnimo stvarati krug.

Prije nego što nešto zalemite na univerzalnu ploču, priprema crteža PCB -a prikazanog gore je korisna za smanjenje grešaka.

Crtež je napravljen pomoću Power-Point-a za lociranje svakog dijela na univerzalnoj ploči i pravljenjem uzoraka ožičenja među dijelovima sa žicama.

S obzirom da se slike iscrtavanja IC-a i tranzistora nalaze zajedno sa shemom ožičenja PCB-a, lemljenje se može izvesti pomoću ovog crteža.

Korak 3: Lemljenje

Lemljenje
Lemljenje

Iako originalni crtež PCB -a nije izrađen tako da se za povezivanje komponenti na PCB -u koriste pojedinačne žice, lemim nešto drugačije.

Upotrebom jednog vodiča žica (ne limene žice) pokušavam smanjiti univerzalnu veličinu PCB -a koja sadrži INDIKATOR kolo.

No, kao što vidite na strani lemljenja PCB -a, koristim limenu žicu i prema uzorcima prikazanim na crtežu PCB -a.

Kada je svaka komponenta spojena prema originalnom dizajnu PCB crteža, lemljena ploča PCB -a uključujući INDICATOR kolo će raditi ispravno.

Korak 4: Priprema za testiranje

Priprema za testiranje
Priprema za testiranje

Prije povezivanja na RPI, potrebno je ispitati gotov krug.

Budući da mogu postojati greške u lemljenju, dobavljač istosmjerne struje koristi se za sprječavanje oštećenja u slučaju kratkog spoja ili pogrešnog ožičenja.

Za testiranje INDICATOR -a, dva dodatna kabela za napajanje su spojena na konektor za napajanje 5V kruga.

Korak 5: Testiranje (temperatura procesora je srednjeg nivoa)

Testiranje (temperatura procesora je srednjeg nivoa)
Testiranje (temperatura procesora je srednjeg nivoa)

Kada se ne primijeni ulaz 5V, tada 74LS139 dekodira ulaz i aktivira izlaz Y0 kao LOW (zelena LED lampica je uključena).

Ali 5V primijenjeno na ulaz A, aktivira se izlaz Y1 od 74LS139 (LOW).

Zbog toga se žuta LED dioda uključuje kao što je prikazano na gornjoj slici.

Korak 6: Testiranje (CPU -u je potreban nivo hlađenja)

Testiranje (CPU -u je potreban nivo hlađenja)
Testiranje (CPU -u je potreban nivo hlađenja)

Kada se 5V primijeni na oba ulaza (A i B) 74LS139, 4. crvena LED lampica treperi.

Brzina treptanja može se promijeniti podešavanjem 100K VR kao što je prikazano na gornjoj slici.

Kada se testiranje završi, mogu se ukloniti dva Molex ženska 3 -polna kabela.

Korak 7: Napajanje do kruga INDIKATORA

Napajanje u krugu INDICATOR
Napajanje u krugu INDICATOR

Za napajanje INDICATOR kola koristim uobičajeni punjač za ručne telefone koji emitira 5V i USB adapter tipa B kao što je prikazano na gornjoj slici.

Kako biste izbjegli problem s RPI -jem povezivanjem 3.3V GPIO i 5V INDICATOR strujnog kruga, sučelje signala i napajanje su potpuno izolirani.

Korak 8: RPI ožičenje

RPI ožičenje
RPI ožičenje

Za povezivanje INDICATOR kola sa RPI, dva GPIO pina trebaju biti namještena zajedno sa dva uzemljenja.

Ne postoje posebni zahtjevi za odabir GPIO pinova.

Za povezivanje INDICATOR -a možete koristiti bilo koje GPIO pinove.

Ali ožičeni pinovi trebaju biti označeni kao ulazi za 74LS139 (npr. A, B) u programu Python.

Korak 9: Python program

Python program
Python program

Kako se kolo završi, za izradu funkcije INDICATOR potrebno je napraviti python program.

Molimo pogledajte gornju shemu toka za više detalja o programskoj logici.

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

uvoz potprocesa, signala, sys

vrijeme uvoza, re

uvesti RPi. GPIO kao g

A = 12

B = 16

g.setmode (g. BCM)

g.setup (A, g. OUT)

g.setup (B, g. OUT)

##

def signal_handler (sig, okvir):

print ('Pritisnuli ste Ctrl+C!')

g.output (A, Netačno)

g.output (B, Netačno)

f.close ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

dok je True:

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

temp_str = subprocess.check_output ('/opt/vc/bin/vcgencmd mjera_temple', ljuska = True)

temp_str = temp_str.decode (encoding = 'UTF-8', greške = 'strogo')

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

# ekstrakcija trenutne temperature procesora

current_temp = float (CPU_temp [0])

ako je current_temp> 30 i current_temp <40:

# niska temperatura A = 0, B = 0

g.output (A, Netačno)

g.output (B, Netačno)

time.sleep (5)

elif current_temp> = 40 i current_temp <45:

# temperaturni medij A = 0, B = 1

g.output (A, Netačno)

g.izlaz (B, Tačno)

time.sleep (5)

elif current_temp> = 45 i current_temp <50:

# visoka temperatura A = 1, B = 0

g.izlaz (A, Tačno)

g.output (B, Netačno)

time.sleep (5)

elif current_temp> = 50:

# Hlađenje procesora je potrebno visoko A = 1, B = 1

g.izlaz (A, Tačno)

g.izlaz (B, Tačno)

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 kao u nastavku.

- Prvo postavite GPIO 12, 16 kao izlazni port

- Definiranje Ctrl+C rukovatelja prekidima za zatvaranje datoteke dnevnika i isključivanje GPIO 12, 16

- Kada uđete u beskonačnu petlju, otvorite datoteku dnevnika kao način dodavanja

- Pročitajte temperaturu procesora izvršavanjem naredbe “/opt/vc/bin/vcgencmd mjera_temp”

- Kada je temperatura u rasponu 30 ~ 39, tada izlazite 00 za uključivanje zelene LED diode

- Kad je temperatura u rasponu 40 ~ 44, tada na izlaz 01 uključite žutu LED

- Kada je temperatura u rasponu 45 ~ 49, tada na izlazu 10 uključite crvenu LED diodu

- Kada je temperatura veća od 50, tada iznesite 11 kako bi crvena LED dioda trepnula

- Zapišite vremensku oznaku i podatke o temperaturi u datoteku dnevnika

Korak 10: Rad INDIKATORA

INDIKATOR Rad
INDIKATOR Rad

Kada je sve u redu, možete vidjeti da se svaka LED lampica uključuje ili treperi u skladu s temperaturom procesora.

Ne morate unijeti naredbu ljuske da biste provjerili trenutnu temperaturu.

Nakon prikupljanja podataka u datoteci dnevnika i pretvaranja tekstualnih podataka u grafikon pomoću programa Excel, rezultat je prikazan na gornjoj slici.

Prilikom primjene velikih opterećenja (Pokretanje dva Midori preglednika i reprodukcija Youtube videa) temperatura procesora skoči na 57,9C.

Korak 11: Alternativno stvaranje (pomoću NPN tranzistora) i daljnji razvoj

Alternativno stvaranje (pomoću NPN tranzistora) i daljnji razvoj
Alternativno stvaranje (pomoću NPN tranzistora) i daljnji razvoj

Ovo je prethodni primjer projekta INDICATOR koji koristi NPN tranzistore (2N3904 i BD139).

Kao što možete vidjeti, potrebna je još jedna IC (74HC04, četverostruki invertori) za pogon NPN tranzistora jer se za uključivanje tranzistora na bazu NPN -a treba primijeniti VISAK napon.

Kao rezime, upotreba NPN tranzistora dodaje nepotrebnu složenost za izradu INDIKATOR kola.

Za daljnji razvoj ovog projekta, dodat ću ventilator za hlađenje kako je prikazano na gornjoj slici kako bi INDICATOR krug bio korisniji.

Preporučuje se: