Innholdsfortegnelse:
- Trinn 1: Utarbeide skjemaer
- Trinn 2: Lag PCB -tegning
- Trinn 3: Lodding
- Trinn 4: Testing av forberedelser
- Trinn 5: Testing (CPU -temperaturen er middels nivå)
- Trinn 6: Testing (CPU trenger kjøleenivå)
- Trinn 7: Strømforsyning til INDIKATOR -krets
- Trinn 8: RPI -ledninger
- Trinn 9: Python -program
- Trinn 10: INDIKATOR -drift
- Trinn 11: Alternativ produksjon (ved hjelp av NPN -transistor) og videre utvikling
Video: Raspberry Pi CPU -temperaturindikator: 11 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:20
Tidligere hadde jeg introdusert enkel bringebær pi (heretter kalt RPI) driftsstatusindikator krets.
Denne gangen vil jeg forklare en mer nyttig indikatorkrets for RPI som kjører på en hodeløs måte (uten skjerm).
Kretsen ovenfor viser CPU -temperaturen i 4 forskjellige nivåer, for eksempel:
- Grønn LED slått på når CPU -temperaturen er innenfor 30 ~ 39 grader
- Gul LED indikerer at temperaturen er økt i området 40 til 45 grader
- Tredje røde LED viser at CPU blir litt varm ved å nå 46 ~ 49 grader
- En annen rød LED vil blinke når temperaturen overstiger mer enn 50 grader
CPU -temperaturområdene ovenfor er mitt personlige designkonsept (Andre temperaturområder kan konfigureres ved å endre testbetingelsene for pythonprogrammet som styrer denne kretsen).
Ved å bruke denne kretsen utfører du ikke nødvendigvis kommandoen "vcgencmd measure_temp" ofte på konsollterminalen.
Denne kretsen skal informere gjeldende CPU -temperatur kontinuerlig og praktisk.
Trinn 1: Utarbeide skjemaer
Selv om du kan styre 4 lysdioder direkte ved å bare bruke pythonkoder, vil kontrolllogikkene i programmet laste RPI, og som et resultat vil CPU -temperaturen økes mer fordi du bør kjøre litt kompleks pythonkode kontinuerlig.
Derfor minimerer jeg kompleksiteten av python-koder så enkelt som mulig og avlaster LED-kontrolllogikk til ekstern maskinvarekrets.
CPU -temperaturindikatorkretsen (heretter INICATOR) består av følgende hoveddeler.
-To optokoblere er koblet til RPI GPIO-pinner for å få temperaturnivådata som 00-> LAV, 01-> Middels, 10-> Høy, 11-> Trenger kjøling.
-74LS139 (eller 74HC139, 2-til-4 dekoder og de-multiplexer) kontrollutganger (Y0, Y1, Y2, Y3) i henhold til inngangene (A, B)
- Når temperaturen er innenfor 30 ~ 39 grader, sender python -kode 00 til GPIO -pinner. Derfor får 74LS139 inndata 00 (A-> 0, B-> 0)
- Når 00 er angitt, blir Y0 -utgangen LAV. (Se sannhetstabellen til 74LS139)
- Når Y0 -utgangen blir LAV, aktiverer den 2N3906 PNP -transistoren, og som et resultat er grønn LED slått på
- På samme måte skal Y1 (01 -> CPU -temperaturmedium) slå på gul LED og så videre
- Når Y3 blir LAV, aktiverer DB140 NE555 LED -blinkende krets (dette er vanlig 555 IC -basert LED -blink) som er belastning på BD140 PNP -transistor
Den viktigste komponenten i denne kretsen er 74LS139 som dekoder 2 siffer input til 4 forskjellige enkeltutganger som vist i sannhetstabellen nedenfor.
Inngang | Produksjon
G (Aktiver) | 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 |
Etter hvert som 74LS139 -utgangen blir LAV, kan transistoren av PNP -typen gjøre den generelle kretsen enkel, ettersom PNP -transistoren slås på når baseterminalen blir LAV. (Jeg viser NPN -versjon på slutten av denne historien)
Ettersom 100K potensiometer er inkludert i NE555 LED blinker krets, kan rød LED PÅ/AV tid justeres fritt i henhold til behovene.
Trinn 2: Lag PCB -tegning
Som driftsopplegget til INDIKATOREN er forklart, la oss begynne å lage kretsen.
Før du lodder noe på universalbord, er det nyttig å forberede PCB -tegningen som vist ovenfor for å minimere eventuelle feil.
Tegningen er laget ved å bruke power-point til å lokalisere hver del på universalbordet og lage ledningsmønstre blant deler med ledninger.
Ettersom IC og transistor pin-out-bilder samlokaliseres sammen med PCB-ledningsmønster, kan lodding utføres ved hjelp av denne tegningen.
Trinn 3: Lodding
Selv om original PCB -tegning er laget uten å bruke enkeltledninger for å koble komponenter på PCB, lodder jeg noe annerledes.
Ved å bruke en enkelt leder av ledninger (ikke tinntråd), prøver jeg å redusere universell PCB -størrelse som inneholder INDIKATOR -krets.
Men som du kan se på loddesiden av PCB, bruker jeg tinntråd også i henhold til mønstrene som er avbildet i PCB -tegningen.
Når hver komponent er tilkoblet i henhold til den opprinnelige utformingen av PCB -tegning, vil lodding av ferdig PCB -kort inkludert INDIKATOR -krets fungere korrekt.
Trinn 4: Testing av forberedelser
Før RPI -tilkobling krever den ferdige kretsen testing.
Siden det kan oppstå loddefeil, brukes DC -strømleverandør for å forhindre skader når det oppstår kortslutning eller feil ledninger.
For testing av INDIKATOR er to ekstra strømkabler koblet til kretsens 5V strømforsyningskontakt.
Trinn 5: Testing (CPU -temperaturen er middels nivå)
Når det ikke brukes noen 5V -inngang, dekoder 74LS139 inngang og aktiverer utgang Y0 som LAV (grønn LED slått på).
Men 5V brukes på inngang A, utgang Y1 på 74LS139 aktiveres (LAV).
Derfor er gul LED slått på som vist på bildet ovenfor.
Trinn 6: Testing (CPU trenger kjøleenivå)
Når 5V brukte begge inngangene (A og B) på 74LS139, blinker den fjerde røde lysdioden.
Blinkende hastighet kan endres ved å justere 100K VR som vist på bildet ovenfor.
Når testen er fullført, kan to Molex 3 -pinners hunnkabler fjernes.
Trinn 7: Strømforsyning til INDIKATOR -krets
For å drive INDICATOR-kretsen bruker jeg vanlig håndtelefonlader som sender ut 5V og USB type-B-adapter som vist på bildet ovenfor.
For å unngå problemer med RPI ved å koble til 3.3V GPIO og 5V drevet INDICATOR -krets, er signalgrensesnittet og strømforsyningen totalt isolert.
Trinn 8: RPI -ledninger
For tilkobling av INDIKATOR -krets med RPI, bør to GPIO -pinner være dedikert sammen med to bakkepinner.
Det er ikke noe spesifikt krav for å velge GPIO -pinner.
Du kan bruke alle GPIO -pinner for å koble til INDIKATOR.
Men kablede pinner bør angis som innganger til 74LS139 (f.eks. A, B) i python -programmet.
Trinn 9: Python -program
Etter hvert som kretsen er fullført, kreves det et python -program for å bruke INDIKATOR -funksjonen.
Se flytdiagrammet ovenfor for mer detaljert informasjon om programlogikk.
#-*-koding: utf-8-*-
importere delprosess, signal, sys
importtid, re
importer RPi. GPIO som g
A = 12
B = 16
g.setmode (g. BCM)
g. oppsett (A, g. OUT)
g. oppsett (B, g. OUT)
##
def signal_handler (sig, frame):
print ('Du trykket Ctrl+C!')
g. utgang (A, usann)
g. utgang (B, usann)
f.close ()
sys.exit (0)
signal.signal (signal. SIGINT, signal_handler)
##
mens det er sant:
f = open ('/home/pi/My_project/CPU_temperature_log.txt', 'a+')
temp_str = subprocess.check_output ('/opt/vc/bin/vcgencmd measure_temp', shell = True)
temp_str = temp_str.decode (koding = 'UTF-8', feil = 'streng')
CPU_temp = re.findall ("\ d+\. / D+", temp_str)
# trekke ut gjeldende CPU -temperatur
current_temp = float (CPU_temp [0])
hvis current_temp> 30 og current_temp <40:
# temperatur lav A = 0, B = 0
g. utgang (A, usann)
g. utgang (B, usann)
tid. sover (5)
elif current_temp> = 40 og current_temp <45:
# temperaturmedium A = 0, B = 1
g. utgang (A, usann)
g. output (B, True)
tid. sover (5)
elif current_temp> = 45 og current_temp <50:
# temperatur høy A = 1, B = 0
g. output (A, True)
g. utgang (B, usann)
tid. sover (5)
elif current_temp> = 50:
# CPU -kjøling kreves høy A = 1, B = 1
g. output (A, True)
g. output (B, True)
tid. sover (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 ()
Hovedfunksjonen til python -programmet er som nedenfor.
- Innstiller først GPIO 12, 16 som utgangsport
- Definere Ctrl+C avbryterbehandler for å lukke loggfil og slå av GPIO 12, 16
- Når du går inn i uendelig sløyfe, åpner du loggfilen som vedleggsmodus
- Les CPU -temperaturen ved å utføre kommandoen "/opt/vc/bin/vcgencmd measure_temp"
- Når temperaturen er i området 30 ~ 39, send deretter ut 00 for å slå på grønn LED
- Når temperaturen er i området 40 ~ 44, send deretter ut 01 for å slå på gul LED
- Når temperaturen er i området 45 ~ 49, send deretter ut 10 for å slå på rød LED
- Når temperaturen er over 50, send deretter ut 11 for å få rød LED til å blinke
- Skriv tidsstempel og temperaturdata til loggfil
Trinn 10: INDIKATOR -drift
Når alt er OK, kan du se at hver LED lyser eller blinker i henhold til CPU -temperaturen.
Du trenger ikke å skrive inn skallkommando for å kontrollere gjeldende temperatur.
Etter å ha samlet data i loggfilen og gjengitt tekstdata til graf ved hjelp av Excel, vises resultatet på bildet ovenfor.
Når du bruker høye belastninger (kjører to Midori -nettlesere og spiller Youtube -video), er CPU -temperaturen en økning på opptil 57,9C.
Trinn 11: Alternativ produksjon (ved hjelp av NPN -transistor) og videre utvikling
Dette er et tidligere INDIKATORprosjekteksempel som bruker NPN -transistorer (2N3904 og BD139).
Som du kan se, er det nødvendig med en annen IC (74HC04, Quad inverter) for å drive NPN -transistor, ettersom HIGH -nivåspenning bør påføres basen på NPN for å slå på transistoren.
Som et sammendrag, bruker du NPN -transistor til unødvendig kompleksitet for å lage INDIKATOR -krets.
For videre utvikling av dette prosjektet vil jeg legge til kjølevifte som vist på bildet ovenfor for å gjøre INDICATOR -kretsen mer nyttig.
Anbefalt:
$ 3 Datamaskin CPU inntak vifte kanal: 7 trinn (med bilder)
$ 3 Datamaskin CPU -inntaksviftekanal: Å ha en inntakskanal rett fra siden av datamaskinhuset til CPU -viften kan gi deg mye bedre kjøling enn noe annet (luft) kjølingalternativ. I stedet for å bruke luft hentet fra en port foran, som har tid til å varme opp fra en annen komponent
Hold deg varm i vinter: CPU -håndvarmer: 4 trinn (med bilder)
Hold deg varm i vinter: CPU -håndvarmer: I dette lille prosjektet vil jeg vise deg hvordan jeg brukte en gammel AMD -CPU til å lage en liten, lett og brukervennlig elektrisk håndvarmer. Ved hjelp av en liten bærbar strømbank kan denne gadgeten varme deg opp i rundt to og en halv time og kan lette
PWM -regulert vifte basert på CPU -temperatur for Raspberry Pi: 4 trinn (med bilder)
PWM -regulert vifte basert på CPU -temperatur for Raspberry Pi: Mange tilfeller for Raspberry Pi kommer med en liten 5V vifte for å hjelpe med å kjøle CPUen. Imidlertid er disse viftene vanligvis ganske bråkete, og mange kobler den til 3V3 -pinnen for å redusere støyen. Disse viftene er vanligvis vurdert til 200mA, noe som er ganske
CPU- og GPU -drevet viftekontroller: 6 trinn (med bilder)
CPU- og GPU -drevet viftekontroller: Jeg har nylig oppgradert grafikkortet mitt. Ny GPU -modell har høyere TDP enn CPU -en min og en gammel GPU, så jeg ønsket også å installere ekstra vifter. Dessverre har min MOBO bare 3 viftekontakter med hastighetskontroll, og de kan bare kobles til
DIY CPU vannblokk: 11 trinn (med bilder)
DIY CPU Waterblock: Jeg har hatt lyst til å lage en CPU -vannkjøleblokk en stund, og etter å ha sett Linus fra LinusTechTips lage en i Scrapyard Wars -serien, bestemte jeg meg for at det var på tide at jeg begynte å lage min egen. blokken ble inspirert av Linus