Innholdsfortegnelse:

Raspberry Pi -eske med kjølevifte med CPU -temperaturindikator: 10 trinn (med bilder)
Raspberry Pi -eske med kjølevifte med CPU -temperaturindikator: 10 trinn (med bilder)

Video: Raspberry Pi -eske med kjølevifte med CPU -temperaturindikator: 10 trinn (med bilder)

Video: Raspberry Pi -eske med kjølevifte med CPU -temperaturindikator: 10 trinn (med bilder)
Video: Топ 5 скрытых полезных программ Windows 10 2024, November
Anonim
Bringebær Pi -eske med kjølevifte med CPU -temperaturindikator
Bringebær Pi -eske med kjølevifte med CPU -temperaturindikator

Jeg hadde introdusert bringebær pi (heretter som RPI) CPU -temperaturindikator krets i det forrige prosjektet.

Kretsen viser ganske enkelt RPI 4 forskjellige CPU -temperaturnivå som følger.

- 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

***

Når temperaturen overstiger mer enn 50C, skal all hjelp være nødvendig for lite RPI ikke stresses for mye.

I følge informasjonen jeg så på flere nettsider som snakker om maksimalt tolerabelt temperaturnivå for RPI, er meninger forskjellige, for eksempel at noen nevner at mer enn 60C fortsatt er helt OK når varmeavleder brukes.

Men min personlige erfaring sier noe annet at overføringsserveren (ved bruk av RPI med kjøleribbe) blir treg og til slutt fungerer som zombie når jeg slår den på i flere timer.

Derfor er denne ekstra kretsen og kjøleviften lagt til for å regulere CPU -temperaturen under 50C for å støtte stabil drift av RPI.

***

Også tidligere introdusert CPU -temperaturindikator krets (heretter som INDIKATOR) er integrert sammen for å støtte praktisk temperaturnivåkontroll uten å utføre kommandoen "vcgencmd measure_temp" på konsollterminalen.

Trinn 1: Utarbeide skjemaer

Forbereder skjemaer
Forbereder skjemaer

I to tidligere prosjekter hadde jeg nevnt fullstendig isolasjon av strømforsyningen mellom RPI og eksterne kretser.

Ved kjøling av FAN er uavhengig strømforsyning ganske viktig ettersom DC 5V Vifte (motor) er relativt tung belastning og ganske bråkete under drift.

Derfor vektlegges følgende hensyn for å designe denne kretsen.

- Optokoblere brukes til å koble til RPI GPIO-pinne for å få kjøling FAN-aktiverende signal

- Ingen strøm trekkes fra RPI og bruker vanlig telefonlader for strømkilden til denne kretsen.

- LED -indikator brukes for å informere kjølingsviften

- 5V -relé brukes til å aktivere kjølevifte som mekanisk

***

Denne kretsen vil fungere sammen med CPU-temperaturindikatorkretsen (heretter INDIKATOR) ved hjelp av python-programkontroll.

Når INDIKATOR begynner å blinke (temperaturen overstiger 50C), skal denne kjøleviftekretsen begynne å fungere.

Trinn 2: Klargjøring av deler

Som andre tidligere prosjekter, brukes svært vanlige komponenter for å lage kjøle -FAN -krets som listet nedenfor.

- Optokobling: PC817 (SHARP) x 1

- 2N3904 (NPN) x 1, BD139 (NPN) x 1

- TQ2-5V (Panasonic) 5V relé

- 1N4148 diode

- Motstander (1/4Watt): 220ohm x 2 (strømbegrensning), 2,2K (transistorbryter) x 2

- LED x 1

- 5V kjøling FAN 200mA

- Universalbrett mer enn 20 (W) x 20 (H) hullstørrelse (Du kan kutte alle størrelser på universalbordet for å passe krets)

- Tinntråd (Vennligst se prosjektet "Raspberry Pi shutdown indicator" for mer detaljert informasjon om bruk av tinntråd)

- Kabel (rød og blå vanlig enkelt ledningskabel)

Enhver håndtelefonlader 220V inngang og 5V utgang (USB type B-kontakt)

- Pinnehode (3 pinner) x 2

***

Kjøling FANs fysiske dimensjon skal være liten nok til å monteres på toppen av RPI.

Enhver type relé kan brukes når det kan fungere ved 5V og ha mer enn en mekanisk kontakt.

Trinn 3: Lag PCB -tegning

Lage PCB -tegning
Lage PCB -tegning

Siden antall komponenter er lite, er nødvendig universell PCB -størrelse ikke stor.

Vær oppmerksom på pinpolaritetsoppsettet til TQ2-5V som vist på bildet ovenfor. (I motsetning til konvensjonell tenkning, er faktisk pluss/bakkeoppsett omvendt arrangert)

Personlig har jeg et uventet problem etter lodding på grunn av den omvendte plasseringen (ved sammenligning med andre reléprodukter) polaritetspinner av TQ2-5V.

Trinn 4: Lodding

Lodding
Lodding

Siden kretsen i seg selv er ganske enkel, er ikke kablingsmønster mye komplisert.

Jeg bolter "L" -formet monteringsbrakett for å fikse kretskortet i oppreist retning.

Som du kan se senere, er akrylrammen som monterer alt litt liten.

Derfor er innsnevring av fotavtrykk nødvendig, ettersom akrylchassis er veldig overfylt med PCB og andre underdeler.

LED er plassert på forsiden for lett gjenkjenning av VIFTE -drift.

Trinn 5: Lage og montere kjøling VIFTEHAT

Lage og montere kjøling FAN HAT
Lage og montere kjøling FAN HAT

Jeg antar at universell PCB er en veldig nyttig del som kan brukes til forskjellige bruksområder.

Cooling FAN er montert på universal -kretskort og montert og festet med bolter og muttere.

For å tillate luftstrøm, gjør jeg et stort hull ved å bore PCB.

Også for enkel tilkobling av jumperkabler, åpnes GIPO 40 pins området ved å kutte PCB.

Trinn 6: Monter kretskort

Monter PCB
Monter PCB

Som nevnt ovenfor planla jeg å konsolidere to forskjellige kretser til en enhet.

Tidligere laget CPU -temperaturindikator krets er slått sammen med ny kjøling FAN krets som vist på bildet ovenfor., Alt er pakket sammen i gjennomsiktig og liten størrelse på (15cm B x 10cm D) akrylchassis.

Selv om omtrent halvparten av chassisplassen er tom og tilgjengelig, vil ytterligere komponent bli plassert i den gjenværende plassen senere.

Trinn 7: Kabling av RPI med kretser

Kabling av RPI med kretser
Kabling av RPI med kretser

To kretser er sammenkoblet med RPI på isolert måte ved bruk av optokoblere.

Det trekkes heller ikke strøm fra RPI da ekstern håndtelefonlader leverer strøm til kretsene.

Senere vil du vite at denne typen isolerte grensesnittoppsett er ganske lønnsomt når flere komponenter blir integrert mer i akrylrammen senere.

Trinn 8: Python -programkontroll alle kretser

Python -programkontroll alle kretser
Python -programkontroll alle kretser

Bare liten tillegg av kode er nødvendig fra kildekoden til CPU -temperaturindikatorkretsen.

Når temperaturen overstiger 50C, starter tjue (20) iterasjon av å slå på VIFT i 10 sekunder og slå av 3 sekunder.

Siden liten motor på FAN krever maks 200mA strøm under drift, brukes PWM (Pulse Width Modulation) type motoraktiveringsmetode for mindre belastende håndtelefonlader.

Den endrede kildekoden er som nedenfor.

***

#-*-koding: utf-8-*-

##

importere delprosess, signal, sys

importtid, re

importer RPi. GPIO som g

##

A = 12

B = 16

VIFTE = 25

##

g.setmode (g. BCM)

g. oppsett (A, g. OUT)

g. oppsett (B, g. OUT)

g. oppsett (FAN, g. OUT)

##

def signal_handler (sig, frame):

print ('Du trykket Ctrl+C!')

g. utgang (A, usann)

g. utgang (B, usann)

g. output (FAN, False)

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 = 1, B = 0

g. output (A, True)

g. utgang (B, usann)

tid. sover (5)

elif current_temp> = 45 og current_temp <50:

# temperatur høy A = 0, B = 1

g. utgang (A, usann)

g. output (B, True)

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)

for jeg i rekkevidde (1, 20):

g. utgang (FAN, True)

tid. sover (10)

g. output (FAN, False)

time.sleep (3)

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

##

Siden driftslogikken for denne pythonkoden er nesten lik den for CPU -temperaturindikatorkretsen, vil jeg ikke gjenta detaljer her.

Trinn 9: Vifte krets drift

FAN Circuit Operation
FAN Circuit Operation

Når du ser på grafen, overstiger temperaturen 50C uten viftekrets.

Det ser ut til at gjennomsnittlig CPU -temperatur er rundt 40 ~ 47C mens RPI er i drift.

Hvis det brukes stor systembelastning, for eksempel å spille Youtube på nettleseren, stiger temperaturen vanligvis raskt opp til 60C.

Men med FAN -krets vil temperaturen reduseres mindre enn 50C innen 5 sekunder ved drift av kjølevifte.

Som et resultat kan du slå på RPI hele dagen og gjøre alt du liker uten å bekymre deg for overoppheting.

Trinn 10: Videreutvikling

Videre utvikling
Videre utvikling

Som du kan se, er halvparten av akrylrammen tom.

Jeg vil legge til flere komponenter der og utvide denne grunnleggende blokken av RPI -boksen til noe mer nyttig.

Selvfølgelig betyr mer tillegg også litt økende kompleksitet.

Uansett, jeg integrerer to kretser i en enkelt boks i dette prosjektet.

Takk for at du leste denne historien.

Anbefalt: