Sadržaj:

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

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

Video: Pokazatelj temperature procesora Raspberry Pi: 11 koraka (sa slikama)
Video: Entdecke die Magie der Hefe: Wie du deine eigene Hefe herstellst & warum sie besser ist als Gekaufte 2024, Studeni
Anonim
Pokazatelj temperature procesora Raspberry Pi
Pokazatelj temperature procesora Raspberry Pi

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

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

Gornji krug prikazuje temperaturu procesora u 4 različite razine, kao što su:

- Zelena LED lampica svijetli kada je temperatura procesora unutar 30 ~ 39 stupnjeva

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

- Treća crvena LED dioda pokazuje da se CPU pomalo zagrijava dosežući 46 ~ 49 stupnjeva

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

Gore navedeni temperaturni rasponi CPU -a moj su osobni dizajn (ostali temperaturni rasponi mogu se konfigurirati promjenom uvjeta ispitivanja programa python koji upravljaju ovim krugom).

Korištenjem ovog sklopa 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 CPU -a.

Korak 1: Priprema shema

Priprema shema
Priprema shema

Iako izravno možete kontrolirati 4 LED diode koristeći samo python kodove, kontrolne logike programa učitat ć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 rasterećujem LED logiku upravljanja vanjskim krugom hardvera.

Krug indikatora temperature CPU -a (u daljnjem tekstu INICATOR) sastoji se od sljedećih glavnih dijelova.

-Dvije opto-spojnice spojene su na RPI GPIO pinove radi dobivanja podataka o razini temperature 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)

- Kad je temperatura unutar 30 ~ 39 stupnjeva, 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

- Isto tako, Y1 (01 -> medij temperature procesora) uključit će žutu LED i tako dalje

- Kad Y3 postane NISKA, DB140 aktivira NE555 LED trepćući krug (ovo je uobičajeno LED blinker na bazi 555 IC) koji je opterećenje BD140 PNP tranzistora

Najvažnija komponenta ovog kruga je 74LS139 koji dekodira 2 znamenke ulaza u 4 različita pojedinačna izlaza kako je prikazano u donjoj tablici istinitosti.

Unos | Izlaz

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 NISAK, tranzistor tipa PNP može pojednostaviti cjelokupni krug jer je tranzistor PNP uključen kada bazni terminal postane NISKI. (Pokazat ću NPN verziju na kraju ove priče)

Budući da je potenciometar od 100K uključen u krug LED blinkera NE555, 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 se objašnjava shema rada INDIKATORA, počnimo izrađivati 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ž se izrađuje pomoću Power-Point-a za lociranje svakog dijela na univerzalnoj ploči i izradom uzoraka ožičenja među dijelovima sa žicama.

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

Korak 3: Lemljenje

Lemljenje
Lemljenje

Iako je izvorni crtež PCB -a izrađen bez korištenja pojedinačnih žica za povezivanje komponenti na PCB -u, lemim nešto drugačije.

Korištenjem jednog vodiča žica (ne limene žice) pokušavam smanjiti univerzalnu veličinu PCB -a koja sadrži krug INDICATOR.

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

Kada je svaka komponenta spojena prema izvornom dizajnu crteža PCB -a, lemljena dovršena PCB ploča uključujući INDICATOR krug će raditi ispravno.

Korak 4: Priprema za testiranje

Priprema za testiranje
Priprema za testiranje

Prije spajanja na RPI, gotov krug zahtijeva ispitivanje.

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

Za ispitivanje INDICATOR -a, dva dodatna kabela za napajanje priključena su na 5V priključak napajanja kruga.

Korak 5: Testiranje (temperatura procesora je srednje razine)

Testiranje (temperatura procesora je srednja razina)
Testiranje (temperatura procesora je srednja razina)

Kad se ne primijeni ulaz od 5 V, 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).

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

Korak 6: Testiranje (CPU -u je potrebna razina hlađenja)

Testiranje (CPU -u je potrebna razina hlađenja)
Testiranje (CPU -u je potrebna razina hlađenja)

Kada 5V primijeni oba ulaza (A i B) od 74LS139, 4. crvena LED dioda treperi.

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

Po završetku testiranja mogu se ukloniti dva ženska Molex 3 -polna kabela.

Korak 7: Napajanje do kruga INDIKATORA

Napajanje u krugu INDICATOR
Napajanje u krugu INDICATOR

Za napajanje kruga INDICATOR-a koristim uobičajeni punjač za ručne telefone koji ima izlaz 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, signalno sučelje i napajanje potpuno su izolirani.

Korak 8: RPI ožičenje

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

Za povezivanje INDICATOR kruga s RPI -om, dva GPIO pina trebaju biti namijenjena zajedno s dva uzemljenja.

Nema posebnih zahtjeva za odabir GPIO pinova.

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

No 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 je krug dovršen, izrada python programa potrebna je za korištenje funkcije INDICATOR.

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

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

uvoz potproces, signal, sys

vrijeme uvoza, ponov

uvoziti RPi. GPIO kao g

A = 12

B = 16

g.način rada (g. BCM)

g.setup (A, g. OUT)

g.postavljanje (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_upravljač)

##

dok je istina:

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

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

temp_str = temp_str.decode (kodiranje = 'UTF-8', pogreš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)

vrijeme.spavanje (5)

elif current_temp> = 40 i current_temp <45:

# temperaturni medij A = 0, B = 1

g.output (A, Netačno)

g.izlaz (B, Istina)

vrijeme.spavanje (5)

elif current_temp> = 45 i current_temp <50:

# visoka temperatura A = 1, B = 0

g.izlaz (A, Istina)

g.output (B, Netačno)

vrijeme.spavanje (5)

elif current_temp> = 50:

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

g.izlaz (A, Istina)

g.izlaz (B, Istina)

vrijeme.spavanje (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

- Kad 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”

- Kad 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

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

- Kad je temperatura viša od 50, izlažite 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

Kad je sve u redu, možete vidjeti da je svaka LED lampica uključena ili treperi ovisno o temperaturi 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 pretvarači) za pogon NPN tranzistora jer se za uključivanje tranzistora na bazu NPN -a treba primijeniti visoki napon.

Ukratko, korištenjem NPN tranzistora dodajte 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 krug INDICATOR -a učinio korisnijim.

Preporučeni: