Sisukord:

Raspberry Pi protsessori temperatuuri indikaator: 11 sammu (koos piltidega)
Raspberry Pi protsessori temperatuuri indikaator: 11 sammu (koos piltidega)

Video: Raspberry Pi protsessori temperatuuri indikaator: 11 sammu (koos piltidega)

Video: Raspberry Pi protsessori temperatuuri indikaator: 11 sammu (koos piltidega)
Video: 30 лучших советов и рекомендаций по Windows 10 на 2020 год 2024, November
Anonim
Raspberry Pi protsessori temperatuuri indikaator
Raspberry Pi protsessori temperatuuri indikaator

Varem olin kasutusele võtnud lihtsa vaarika pi (edaspidi RPI) tööoleku oleku indikaatoriahela.

Seekord selgitan mõnda kasulikumat indikaatoriahelat RPI jaoks, mis töötab peata (ilma monitorita).

Ülaltoodud vooluahel näitab CPU temperatuuri 4 erineval tasemel, näiteks:

- Roheline LED süttib, kui protsessori temperatuur on 30–39 kraadi

- Kollane LED näitab temperatuuri tõusu vahemikus 40 kuni 45 kraadi

- Kolmas punane LED näitab, et protsessor muutub veidi kuumaks, saavutades 46-49 kraadi

- Veel üks punane LED hakkab vilkuma, kui temperatuur ületab 50 kraadi

Ülaltoodud protsessori temperatuurivahemikud on minu isiklik disainikontseptsioon (muid temperatuurivahemikke saab seadistada, muutes seda vooluahelat juhtiva pythoni programmi testitingimusi).

Selle vooluahela kasutamisel ei täida te tingimata konsooli terminalis sageli käsku „vcgencmd meet_temp”.

See vooluahel teavitab pidevalt ja mugavalt praegust CPU temperatuuri.

Samm: skeemide koostamine

Skeemide koostamine
Skeemide koostamine

Kuigi saate juhtida 4 LED -i otse, kasutades ainult python -koode, laadib programmi juhtimisloogika RPI -d ja selle tulemusel tõuseb protsessori temperatuur rohkem, kuna peaksite pidevalt töötama natuke keerukat pythoni koodi.

Seetõttu vähendan püütoni koodi keerukust võimalikult lihtsaks ja laadin välise riistvara vooluahela LED-juhtimisloogika maha.

CPU temperatuuri indikaatori (edaspidi INICATOR) ahel koosneb järgmistest põhiosadest.

-Kaks optilist sidurit on ühendatud RPI GPIO tihvtidega, et saada andmeid temperatuuri kohta, näiteks 00-> LOW, 01-> Medium, 10-> High, 11-> Vajab jahutust.

-74LS139 (või 74HC139, 2 kuni 4 dekooder ja demultiplekser) juhtväljundid (Y0, Y1, Y2, Y3) vastavalt sisenditele (A, B)

- Kui temperatuur on vahemikus 30–39 kraadi, väljutage python -kood 00 GPIO -kontaktidele. Seetõttu saab 74LS139 sisendandmeid 00 (A-> 0, B-> 0)

- Kui sisestatakse 00, muutub Y0 väljund LOW. (Palun vaadake 74LS139 tõetabelit)

- Kui Y0 väljund muutub madalaks, aktiveerib see 2N3906 PNP transistori ja selle tulemusena süttib roheline LED

- Samamoodi lülitub Y1 (01 -> CPU temperatuurikeskkond) sisse kollane LED ja nii edasi

- Kui Y3 muutub madalaks, aktiveerib DB140 NE555 LED -i vilkumise ahela (see on tavaline 555 IC -põhine LED -vilkur), mis on koormatud BD140 PNP -transistoriga

Selle vooluahela kõige olulisem komponent on 74LS139, mis dekodeerib sisestatud 2 numbrit neljaks erinevaks üksikväljundiks, nagu on näidatud alloleval tõetabelis.

Sisend | Väljund

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

Kuna 74LS139 väljund muutub madalaks, võib PNP tüüpi transistor muuta vooluahela lihtsaks, kuna PNP transistor lülitatakse sisse, kui baasklemm muutub madalaks. (Näitan selle loo lõpus NPN -versiooni)

Kuna 100K potentsiomeeter on kaasas NE555 LED -vilgutusahelaga, saab punase LED -i sisse/välja lülitamise aega vabalt vastavalt vajadusele reguleerida.

2. etapp: PCB joonise tegemine

PCB joonise tegemine
PCB joonise tegemine

INDIKAATORI töö skeemi selgitades alustame vooluringi loomist.

Enne universaalsele tahvlile jootmist on vigade minimeerimiseks abiks ülaltoodud trükkplaadi joonise ettevalmistamine.

Joonise koostamiseks kasutatakse power-point'i, et leida iga osa universaalplaadilt, ja teha juhtmestikuga juhtmestike vahel juhtmestik.

Kuna IC ja transistori pin-out kujutised paiknevad koos PCB juhtmestikuga, saab selle joonise abil jootmist teostada.

3. samm: jootmine

Jootmine
Jootmine

Kuigi PCB originaaljoonis ei ole valmistatud PCB komponentide ühendamiseks ühe juhtmega, jootan ma mõnevõrra erinevalt.

Kasutades juhtmete ühte juhti (mitte plekist traati), proovin vähendada universaalset trükkplaadi suurust, mis sisaldab indikaatoriahelat.

Kuid nagu näete trükkplaadi jooteküljel, kasutan tina traati ka vastavalt PCB joonisel kujutatud mustritele.

Kui iga komponent on ühendatud vastavalt PCB joonise algsele disainile, töötab valmis trükkplaadi jootmine, sealhulgas indikaatoriahel, õigesti.

4. etapp: testimise ettevalmistamine

Testimise ettevalmistamine
Testimise ettevalmistamine

Enne RPI -ühendamist vajab valmis ahel katsetamist.

Kuna jootmisvead võivad esineda, kasutatakse lühise või vale juhtmestiku korral kahjustuste vältimiseks alalisvoolu toiteallikat.

INDIKAATORI testimiseks on vooluahela 5V toitepistikuga ühendatud kaks täiendavat toitekaablit.

Samm: testimine (protsessori temperatuur on keskmine)

Testimine (protsessori temperatuur on keskmine)
Testimine (protsessori temperatuur on keskmine)

Kui 5V sisendit ei rakendata, siis 74LS139 dekodeerimissisend ja väljund Y0 aktiveeritakse LOW (roheline LED süttib).

Kuid 5V rakendati sisendile A, väljund Y1 74LS139 aktiveerib (LOW).

Seetõttu süttib kollane LED, nagu on näidatud ülaltoodud pildil.

6. samm: testimine (CPU vajab jahutustaset)

Testimine (CPU vajab jahutustaset)
Testimine (CPU vajab jahutustaset)

Kui 5V kasutas 74LS139 mõlemat sisendit (A ja B), vilgub 4. punane LED.

Vilkumissagedust saab muuta, reguleerides 100K VR -i, nagu on näidatud ülaltoodud pildil.

Kui testimine on lõpule viidud, saab eemaldada kaks Molex 3 -pin naissoost kaablit.

Samm: toiteallikas indikaatoriahelasse

Toiteallikas indikaatoriahelasse
Toiteallikas indikaatoriahelasse

INDIKAATORI vooluahela toiteks kasutan tavalist telefonilaadijat, mille väljund on 5 V, ja USB-tüüpi B-adapterit, nagu on näidatud ülaltoodud pildil.

Et vältida probleeme RPI -ga, ühendades 3.3V GPIO ja 5V toitega indikaatoriahela, on signaaliliides ja toiteallikas üksteisest täielikult eraldatud.

8. samm: RPI juhtmestik

RPI juhtmestik
RPI juhtmestik

INDIKAATORI ahela ühendamiseks RPI -ga tuleks eraldada kaks GPIO -tihvti koos kahe maandusnõelaga.

GPIO tihvtide valimisel pole erinõudeid.

INDIKAATORI ühendamiseks võite kasutada mis tahes GPIO kontakte.

Kuid juhtmega tihvtid tuleks pythoniprogrammis määrata 74LS139 (nt A, B) sisenditeks.

Samm: Pythoni programm

Pythoni programm
Pythoni programm

Kui vooluring on lõpule viidud, on funktsiooni INDICATOR kasutamiseks vaja teha python -programm.

Programmi loogika kohta lisateabe saamiseks vaadake ülaltoodud vooskeemi.

#-*-kodeerimine: utf-8-*-

impordi alamprotsess, signaal, süsteem

impordi aeg, re

import RPi. GPIO g

A = 12

B = 16

g.setmode (g. BCM)

g.seadistus (A, g. OUT)

g. seadistamine (B, g. OUT)

##

def signal_handler (sig, frame):

print ('Sa vajutasid Ctrl+C!')

g. väljund (A, vale)

g. väljund (B, vale)

f. sulge ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

kuigi tõsi:

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

temp_str = alamprotsess.check_output ('/opt/vc/bin/vcgencmd meet_temp', kest = tõene)

temp_str = temp_str.decode (kodeering = 'UTF-8', vead = 'range')

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

# CPU praeguse temperatuuri eraldamine

current_temp = float (CPU_temp [0])

kui praegune_temperatuur> 30 ja praegune_temperatuur <40:

# madal temperatuur A = 0, B = 0

g. väljund (A, vale)

g. väljund (B, vale)

uneaeg (5)

elif current_temp> = 40 ja current_temp <45:

# temperatuurikeskkond A = 0, B = 1

g. väljund (A, vale)

g. väljund (B, tõene)

uneaeg (5)

elif current_temp> = 45 ja current_temp <50:

# kõrge temperatuur A = 1, B = 0

g. väljund (A, tõene)

g. väljund (B, vale)

uneaeg (5)

elif current_temp> = 50:

# CPU jahutus on vajalik kõrge A = 1, B = 1

g. väljund (A, tõene)

g. väljund (B, tõene)

uneaeg (5)

praegune_aeg = aeg.aeg ()

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

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

f. sulge ()

Pythoni programmi põhifunktsioon on järgmine.

- Esmalt seadistage GPIO 12, 16 väljundpordiks

- Määrake Ctrl+C katkestuste käitleja logifaili sulgemiseks ja GPIO 12, 16 väljalülitamiseks

- Lõpmatule ringile sisenemisel avage logifail lisamisrežiimina

- Lugege CPU temperatuuri, täites käsu "/opt/vc/bin/vcgencmd meet_temp"

- Kui temperatuur on vahemikus 30–39, siis väljund 00 rohelise LED -i sisselülitamiseks

- Kui temperatuur on vahemikus 40 ~ 44, siis sisestage väljund 01, et kollane LED sisse lülitada

- Kui temperatuur on vahemikus 45 ~ 49, väljutage punase LED -i sisselülitamiseks 10

- Kui temperatuur on üle 50, väljutage 11, et punane LED vilguks

- Kirjutage logifaili ajatempli ja temperatuuri andmed

10. samm: NÄIDIK

NÄIDIK Töötamine
NÄIDIK Töötamine

Kui kõik on korras, näete, et iga LED süttib või vilgub vastavalt CPU temperatuurile.

Praeguse temperatuuri kontrollimiseks ei pea te sisestama kesta käsku.

Pärast andmete kogumist logifaili ja tekstiandmete graafiliseks muutmist Exceli abil kuvatakse tulemus ülaltoodud pildil.

Suurte koormuste rakendamisel (kahe Midori brauseri käitamine ja Youtube'i video esitamine) on protsessori temperatuur tõusnud kuni 57,9 ° C.

11. samm: alternatiivne tegemine (NPN -transistori kasutamine) ja edasiarendamine

Alternatiivne tegemine (NPN -transistori kasutamine) ja edasiarendus
Alternatiivne tegemine (NPN -transistori kasutamine) ja edasiarendus

See on eelmine näide projektist INDICATOR, mis kasutab NPN -transistore (2N3904 ja BD139).

Nagu näete, on NPN -transistori juhtimiseks vaja veel ühte IC -d (74HC04, neljainverterid), kuna transistori sisselülitamiseks tuleks NPN -i alusele rakendada kõrget pinget.

Kokkuvõttes lisab NPN -transistori kasutamine INDICATOR -ahela tegemiseks tarbetut keerukust.

Selle projekti edasiarendamiseks lisan INDICATOR -ahela kasulikumaks muutmiseks jahutusventilaatori, nagu on näidatud ülaltoodud pildil.

Soovitan: