Përmbajtje:

Treguesi i temperaturës së CPU Raspberry Pi: 11 hapa (me fotografi)
Treguesi i temperaturës së CPU Raspberry Pi: 11 hapa (me fotografi)

Video: Treguesi i temperaturës së CPU Raspberry Pi: 11 hapa (me fotografi)

Video: Treguesi i temperaturës së CPU Raspberry Pi: 11 hapa (me fotografi)
Video: RAMPS 1.6 - Basics 2024, Nëntor
Anonim
Treguesi i temperaturës së CPU Raspberry Pi
Treguesi i temperaturës së CPU Raspberry Pi

Më parë kisha futur qark të thjeshtë tregues të statusit të mjedrës pi (në tekstin e mëtejmë si RPI).

Këtë herë, unë do të shpjegoj një qark tregues më të dobishëm për RPI që funksionon si mënyrë pa kokë (pa monitor).

Qarku i mësipërm tregon temperaturën e CPU -së në 4 nivele të ndryshme si:

- LED i gjelbër ndizet kur temperatura e CPU është brenda 30 ~ 39 gradë

- LED i verdhë tregon se temperatura është rritur në rangun prej 40 deri në 45 gradë

- LED i 3 -të i Kuq tregon se CPU bëhet pak e nxehtë duke arritur 46 ~ 49 gradë

- Një LED tjetër i Kuq do të pulsojë kur temperatura të kalojë më shumë se 50 gradë

Gama e mësipërme e temperaturës së CPU -së është koncepti im personal i dizajnit (Gama të tjera të temperaturës mund të konfigurohen duke ndryshuar kushtet e testimit të programit python që kontrollojnë këtë qark).

Duke përdorur këtë qark, ju nuk jeni duke ekzekutuar domosdoshmërisht komandën "vcgencmd masë_temp" në terminalin e tastierës.

Ky qark do të informojë temperaturën aktuale të CPU -së në mënyrë të vazhdueshme dhe të përshtatshme.

Hapi 1: Përgatitja e skemave

Përgatitja e skemave
Përgatitja e skemave

Edhe pse ju mund të kontrolloni 4 LED drejtpërdrejt duke përdorur vetëm kodet python, logjikat e kontrollit të programit do të ngarkojnë RPI dhe si rezultat, temperatura e CPU do të rritet më shumë sepse duhet të përdorni pak kod kompleks python vazhdimisht.

Prandaj, unë jam duke minimizuar kompleksitetin e kodit python sa më të thjeshtë dhe logjikën e kontrollit LED jashtë ngarkesës në qarkun e jashtëm të harduerit.

Qarku i treguesit të temperaturës së CPU -së (në tekstin e mëtejmë INICATOR) përbëhet nga pjesët kryesore të mëposhtme.

-Dy opto-bashkues janë të lidhur me kunjat RPI GPIO për të marrë të dhëna të nivelit të temperaturës si 00-> LOW, 01-> Medium, 10-> High, 11-> Nevojë për ftohje.

-74LS139 (ose 74HC139, dekoder 2-në-4 dhe de-multiplexer) daljet e kontrollit (Y0, Y1, Y2, Y3) sipas hyrjeve (A, B)

- Kur temperatura është brenda 30 ~ 39 gradë, dalja e kodit python 00 në kunjat GPIO. Prandaj, 74LS139 merr të dhëna hyrëse 00 (A-> 0, B-> 0)

- Me futjen e 00, dalja Y0 bëhet E ULT. (Ju lutemi referojuni tabelës së së vërtetës të 74LS139)

- Kur dalja Y0 bëhet LOW, aktivizon tranzistorin 2N3906 PNP dhe si rezultat, LED i Gjelbër ndizet

- Po kështu, Y1 (01 -> mediumi i temperaturës së CPU) do të ndezë LED të Verdhë dhe kështu me radhë

- Kur Y3 bëhet I UL,T, DB140 aktivizon qarkun e ndezjes LED NE555 (ky është blinker LED i zakonshëm me bazë 555 IC) i cili është ngarkesë e transistorit BD140 PNP

Komponenti më i rëndësishëm i këtij qarku është 74LS139 i cili deshifron 2 shifra të dhëna në 4 dalje të ndryshme të vetme siç tregohet në tabelën e së vërtetës më poshtë.

Input | Dalje

G (Aktivizo) | 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 |

Ndërsa dalja 74LS139 bëhet LOW, transistori i tipit PNP mund ta bëjë qarkun e përgjithshëm të thjeshtë pasi tranzistori PNP ndizet kur terminali bazë bëhet I ULOWT. (Unë do të tregoj versionin NPN në fund të kësaj historie)

Meqenëse potenciometri 100K përfshihet në qarkun e ndezjes LED NE555, koha e ndezjes/fikjes së LED -it të kuq mund të rregullohet lirshëm sipas nevojave.

Hapi 2: Bërja e Vizatimit të PCB

Bërja e Vizatimit të PCB
Bërja e Vizatimit të PCB

Ndërsa skema e funksionimit të TREGUESIT është shpjeguar, le të fillojmë të bëjmë qarkun.

Para se të bashkoni diçka në tabelën universale, përgatitja e vizatimit të PCB të treguar më sipër është e dobishme për të minimizuar çdo gabim.

Vizatimi është bërë duke përdorur power-point për të gjetur secilën pjesë në tabelën universale dhe duke bërë modele të telave midis pjesëve me tela.

Meqenëse imazhet IC dhe transistor janë të vendosura së bashku me modelin e telave të PCB, bashkimi mund të kryhet duke përdorur këtë vizatim.

Hapi 3: Saldimi

Bashkim
Bashkim

Edhe pse vizatimi origjinal i PCB është bërë duke mos përdorur tela të vetëm për të lidhur komponentët në PCB, unë jam duke u bashkuar disi ndryshe.

Duke përdorur një përçues të vetëm të telave (jo tela kallaji), po përpiqem të zvogëloj madhësinë universale të PCB -së e cila përmban qark TREGUES.

Por siç mund ta shihni në anën e bashkimit të PCB, unë jam duke përdorur tela kallaji gjithashtu sipas modeleve të përshkruara në vizatimin e PCB.

Kur secili komponent është i lidhur sipas modelit origjinal të vizatimit të PCB, bashkimi i pllakës së kompletuar të PCB përfshirë qarkun TREGUES do të funksionojë si duhet.

Hapi 4: Përgatitja e testimit

Përgatitja e testimit
Përgatitja e testimit

Para lidhjes RPI, qarku i përfunduar kërkon testim.

Meqenëse mund të ekzistojnë çdo gabim të saldimit, furnizuesi i energjisë DC përdoret për të parandaluar dëmtimet kur shfaqen pantallona të shkurtra ose instalime elektrike të gabuara.

Për testimin e TREGUESIT, dy kabllo shtesë të furnizimit me energji janë të lidhur me lidhësin e furnizimit me energji 5V të qarkut.

Hapi 5: Testimi (Temperatura e CPU -së është Niveli Mesatar)

Testimi (Temperatura e CPU -së është Niveli Mesatar)
Testimi (Temperatura e CPU -së është Niveli Mesatar)

Kur nuk aplikohet asnjë hyrje 5V, atëherë 74LS139 dekodon hyrjen dhe aktivizon daljen Y0 si LOW (LED i gjelbër i ndezur).

Por 5V aplikohet në hyrjen A, dalja Y1 e 74LS139 aktivizohet (LOW).

Prandaj, LED i Verdhë ndizet siç tregohet në figurën e mësipërme.

Hapi 6: Testimi (Niveli i ftohjes së CPU -së)

Testimi (Niveli i Ftohjes ka nevojë për CPU)
Testimi (Niveli i Ftohjes ka nevojë për CPU)

Kur 5V aplikon të dy hyrjet (A dhe B) të 74LS139, LED 4 i Kuq po ndizet.

Shkalla e pulsimit mund të ndryshohet duke rregulluar 100K VR siç tregohet në figurën e mësipërme.

Kur të përfundojë testimi, dy kabllo femra Molex 3 pin mund të hiqen.

Hapi 7: Furnizimi me energji në qarkun TREGUES

Furnizimi me energji në qarkun TREGUES
Furnizimi me energji në qarkun TREGUES

Për fuqizimin e qarkut TREGUES, unë po përdor ngarkuesin e zakonshëm të telefonit të dorës i cili prodhon përshtatës 5V dhe USB të tipit B siç tregohet në figurën e mësipërme.

Për të shmangur problemin me RPI duke lidhur qarkun TREGUES 3.3V GPIO dhe 5V, ndërfaqja e sinjalit dhe furnizimi me energji janë plotësisht të izoluara me njëra -tjetrën.

Hapi 8: Instalimet RPI

Instalimet RPI
Instalimet RPI

Për ndërfaqen e qarkut TREGUES me RPI, dy kunja GPIO duhet të dedikohen së bashku me dy kunja tokësore.

Nuk ka kërkesa specifike për zgjedhjen e kunjave GPIO.

Ju mund të përdorni çdo kunj GPIO për lidhjen e TREGUESIT.

Por kunjat me tela duhet të përcaktohen si hyrje në 74LS139 (p.sh. A, B) në programin python.

Hapi 9: Programi Python

Programi Python
Programi Python

Me përfundimin e qarkut, kërkohet që programi python të përdorë funksionin TREGUES.

Ju lutemi referojuni tabelës së rrjedhës më lart për më shumë detaje rreth logjikës së programit.

#-*-kodimi: utf-8-*-

nënproces import, sinjal, sys

koha e importit, re

import RPi. GPIO si g

A = 12

B = 16

g.setmode (g. BCM)

g.setup (A, g. OUT)

g.vendosja (B, g. OUT)

##

def signal_handler (sig, frame):

print ( Keni shtypur Ctrl+C! ')

g. dalja (A, e rreme)

g. dalja (B, e rreme)

f. mbyll ()

sys.exit (0)

sinjali. sinjali (sinjali. SIGINT, menaxheri i sinjalit)

##

ndërsa e vërtetë:

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

temp_str = subprocess.check_output ('/opt/vc/bin/vcgencmd masë_temp', shell = E vërtetë)

temp_str = temp_str.decode (kodimi = 'UTF-8', gabime = 'i rreptë')

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

# nxjerrja e temperaturës aktuale të CPU -së

aktuale_temp = noton (CPU_temp [0])

nëse aktuale_temp> 30 dhe aktuale_temp <40:

# temperaturë e ulët A = 0, B = 0

g. dalja (A, e rreme)

g. dalja (B, e rreme)

koha. gjumi (5)

elif current_temp> = 40 dhe temp_ aktuale <45:

# temperatura e mesme A = 0, B = 1

g. dalja (A, e rreme)

g. dalje (B, E vërtetë)

koha. gjumi (5)

elif current_temp> = 45 dhe temp_ aktuale <50:

# temperaturë e lartë A = 1, B = 0

g. dalje (A, E vërtetë)

g. dalja (B, e rreme)

koha. gjumi (5)

elif aktuale_temp> = 50:

# Ftohja e CPU -së kërkohet e lartë A = 1, B = 1

g. dalje (A, E vërtetë)

g. dalje (B, E vërtetë)

koha. gjumi (5)

koha aktuale = koha. koha ()

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

f.shkruaj (str (koha e formuar)+'\ t'+str (tempulli aktual)+'\ n')

f. mbyll ()

Funksioni kryesor i programit python është si më poshtë.

- Së pari vendosni GPIO 12, 16 si port dalës

- Përcaktimi i mbajtësit të ndërprerjeve Ctrl+C për mbylljen e skedarit të regjistrit dhe fikni GPIO 12, 16

- Kur futeni në lak të pafund, hapni skedarin e regjistrit si modalitet shtojce

- Lexoni temperaturën e CPU duke ekzekutuar komandën "/opt/vc/bin/vcgencmd masë_temp"

- Kur temperatura është në intervalin 30 ~ 39 atëherë dalni 00 për të ndezur LED të Gjelbër

- Kur temperatura është në intervalin 40 ~ 44 atëherë dalja 01 për të ndezur LED të Verdhë

- Kur temperatura është në intervalin 45 ~ 49 atëherë dalni 10 për të ndezur LED të Kuq

- Kur temperatura është më shumë se 50 atëherë dalja 11 për të bërë LED të Kuq të ndizet

- Shkruani vulën e kohës dhe të dhënat e temperaturës në skedarin e regjistrit

Hapi 10: Operacioni TREGUES

TREGUESI Operacioni
TREGUESI Operacioni

Kur gjithçka është në rregull, mund të shihni që çdo LED është ndezur ose pulson sipas temperaturës së CPU.

Nuk keni nevojë të futni komandën shell për të kontrolluar temperaturën aktuale.

Pas mbledhjes së të dhënave në skedarin e regjistrit dhe shndërrimit të të dhënave të tekstit në grafik duke përdorur Excel, rezultati është treguar në figurën e mësipërme.

Kur aplikoni ngarkesa të larta (Drejtimi i dy Shfletuesve Midori dhe luajtja e videove në Youtube), temperatura e CPU -së arrin deri në 57.9C.

Hapi 11: Krijimi Alternativ (Përdorimi i NPN Transistor) dhe Zhvillimi i Mëtutjeshëm

Krijimi Alternativ (Përdorimi i NPN Transistor) dhe Zhvillimi i Mëtutjeshëm
Krijimi Alternativ (Përdorimi i NPN Transistor) dhe Zhvillimi i Mëtutjeshëm

Ky është shembulli i mëparshëm i projektit INDICATOR që përdor transistorë NPN (2N3904 dhe BD139).

Siç mund ta shihni një IC më shumë (74HC04, Invertorët Quad) është i nevojshëm për të drejtuar transistorin NPN pasi tension i nivelit të lartë duhet të aplikohet në bazën e NPN për të ndezur transistorin.

Si përmbledhje, përdorimi i transistorit NPN shton kompleksitet të panevojshëm për të bërë qark TREGUES.

Për zhvillimin e mëtejshëm të këtij projekti, do të shtoj ventilator ftohës siç tregohet në figurën e mësipërme për ta bërë qarkun TREGUES më të dobishëm.

Recommended: