Innehållsförteckning:

Raspberry Pi Box med kylfläkt med CPU -temperaturindikator: 10 steg (med bilder)
Raspberry Pi Box med kylfläkt med CPU -temperaturindikator: 10 steg (med bilder)

Video: Raspberry Pi Box med kylfläkt med CPU -temperaturindikator: 10 steg (med bilder)

Video: Raspberry Pi Box med kylfläkt med CPU -temperaturindikator: 10 steg (med bilder)
Video: 320 TERABYTES in a normal case!! - The DIY 4k editing NAS 2024, November
Anonim
Raspberry Pi Box med kylfläkt med CPU -temperaturindikator
Raspberry Pi Box med kylfläkt med CPU -temperaturindikator

Jag hade introducerat hallon pi (nedan kallad RPI) CPU -temperaturindikeringskrets i det föregående projektet.

Kretsen visar helt enkelt RPI 4 olika CPU -temperaturnivå enligt följande.

- Grön lysdiod tänds när CPU -temperaturen ligger inom 30 ~ 39 grader

- Gul lysdiod indikerar att temperaturen har ökat inom intervallet 40 till 45 grader

- Den tredje röda lysdioden visar att CPU: n blir lite varm genom att nå 46 ~ 49 grader

- En annan röd lysdiod blinkar när temperaturen överstiger mer än 50 grader

***

När temperaturen överstiger mer än 50C, ska all hjälp vara nödvändig för lite RPI inte stressas för mycket.

Enligt den information jag såg på flera webbsidor som talar om högsta tolerabla temperaturnivå för RPI, är åsikterna olika, till exempel att någon nämner att mer än 60C fortfarande är helt OK när kylfläns används.

Men min personliga erfarenhet säger något annat att överföringsservern (med RPI med kylfläns) blir långsam och slutligen fungerar som zombie när jag slår på den i flera timmar.

Därför läggs denna extra krets och kylfläkt till för att reglera CPU -temperaturen under 50C för att stödja stabil drift av RPI.

***

Också tidigare introducerad CPU -temperaturindikeringskrets (hädanefter INDIKATOR) är integrerad tillsammans för att stödja bekväm temperaturkontroll utan att utföra kommandot "vcgencmd measure_temp" på konsolterminalen.

Steg 1: Förbereda scheman

Förbereder scheman
Förbereder scheman

I två tidigare projekt hade jag nämnt fullständig isolering av strömförsörjningen mellan RPI och externa kretsar.

Vid kylning FAN är oberoende strömförsörjning ganska viktigt eftersom DC 5V FAN (motor) är relativt tung belastning och ganska bullriga under drift.

Därför betonas följande överväganden för att utforma denna krets.

- Optokopplare används för att ansluta till RPI GPIO-stift för att få kylande FAN-aktiverande signal

- Ingen ström dras från RPI och använder en vanlig telefonladdare för strömkällan till denna krets.

- LED -indikator används för att informera kylfläkten

- 5V -relä används för att aktivera kylfläkt som mekaniskt sätt

***

Denna krets kommer att samverka med CPU-temperaturindikeringskretsen (hädanefter INDIKATOR) med hjälp av pythonprogramstyrning.

När INDIKATORN börjar blinka (temperaturen överstiger 50C) ska denna kylfläktskrets börja fungera.

Steg 2: Förbereda delar

Liksom andra tidigare projekt används mycket vanliga komponenter för att göra kylfläktar enligt nedan.

- Optokopplare: PC817 (SHARP) x 1

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

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

- 1N4148 diod

- Motstånd (1/4Watt): 220ohm x 2 (strömbegränsning), 2,2K (transistoromkoppling) x 2

- LED x 1

- 5V kylfläkt 200mA

- Universalkort mer än 20 (W) x 20 (H) hålstorlek (Du kan klippa valfri storlek på universalkortet för att passa kretsen)

- Tenntråd (Se min "Raspberry Pi -avstängningsindikator" -projektpost för mer detaljerad användning av tenntrådsanvändning)

- Kabel (röd och blå vanlig enkeltrådskabel)

- Varje handtelefonladdare 220V ingång och 5V utgång (USB typ B-kontakt)

- Stifthuvud (3 stift) x 2

***

Kylning FAN: s fysiska dimension bör vara tillräckligt liten för att kunna monteras ovanpå RPI.

Varje typ av relä kan användas när det kan fungera vid 5V och ha mer än en mekanisk kontakt.

Steg 3: Gör PCB -ritning

Gör PCB -ritning
Gör PCB -ritning

Eftersom antalet komponenter är litet är den nödvändiga universella PCB -storleken inte stor.

Var försiktig med stiftpolaritetslayouten för TQ2-5V som visas på bilden ovan. (I motsats till det konventionella tänkandet är den faktiska pluss/mark -layouten omvänd)

Personligen har jag oväntat problem efter lödning på grund av den omvända placeringen (vid jämförelse med andra reläprodukter) polaritetsstift på TQ2-5V.

Steg 4: Lödning

Lödning
Lödning

Eftersom kretsen i sig är ganska enkel är ledningsmönstret inte mycket komplext.

Jag skruvar fast monteringsfästet "L" för att fixera kretskortet i upprätt riktning.

Som du kan se senare är akrylchassit som monterar allt lite smått.

Därför är det nödvändigt att minska fotavtrycket eftersom akrylchassit är mycket trångt med kretskort och andra underdelar.

LED är placerad på framsidan för att enkelt känna igen FAN -drift.

Steg 5: Tillverkning och montering av kylfläkt HAT

Tillverkning och montering av kylfläkt FAN HAT
Tillverkning och montering av kylfläkt FAN HAT

Jag antar att universellt kretskort är en mycket användbar del som kan användas för olika användningsändamål.

Cooling FAN monteras på universal -kretskort och monteras och fixeras med bultar och muttrar.

För att tillåta luftflöde gör jag ett stort hål genom att borra PCB.

Även för enkel anslutning av bygelkablar öppnas GIPO 40 -stiftsområdet genom att skära PCB.

Steg 6: Montera kretskort

Montera PCB
Montera PCB

Som nämnts ovan planerade jag att konsolidera två olika kretsar till en enhet.

Tidigare tillverkad CPU -temperaturindikatorkrets slås samman med en ny kylfläkt som visas på bilden ovan., Allt är packat ihop till transparent och liten storlek (15cm B x 10cm D) akrylchassi.

Även om ungefär hälften av chassiutrymmet är tomt och tillgängligt, kommer ytterligare komponent att placeras i det kvarvarande utrymmet senare.

Steg 7: Anslutning av RPI med kretsar

Kabeldragning RPI med kretsar
Kabeldragning RPI med kretsar

Två kretsar är sammankopplade med RPI på isolerat sätt med optokopplare.

Ingen ström dras från RPI eftersom extern telefonladdare levererar ström till kretsarna.

Senare kommer du att veta att den här typen av isolerade gränssnittssystem är ganska lönsamt när ytterligare komponenter integreras mer i akrylchassit senare.

Steg 8: Python Program Control All Circuits

Python Program Control All Circuits
Python Program Control All Circuits

Endast mindre tillägg av kod krävs från källkoden för CPU -temperaturindikeringskretsen.

När temperaturen överstiger 50C startar tjugo (20) iteration av att slå på FAN i 10 sekunder och stänga av 3 sekunder.

Eftersom en liten motor på FAN kräver max 200mA ström under drift, används PWM (Pulse Width Modulation) typ av motoraktiveringsmetod för en mindre belastande handtelefonladdare.

Den modifierade källkoden är som nedan.

***

#-*-kodning: utf-8-*-

##

importera delprocess, signal, sys

importtid, re

importera RPi. GPIO som g

##

A = 12

B = 16

FLÄKT = 25

##

g.setmode (g. BCM)

g. inställning (A, g. OUT)

g. inställning (B, g. OUT)

g. inställning (FAN, g. OUT)

##

def signal_handler (sig, frame):

print ('Du tryckte på Ctrl+C!')

g. utmatning (A, falsk)

g. utmatning (B, falsk)

g. utmatning (FAN, falskt)

f.close ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

medan det är 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 (kodning = 'UTF-8', fel = 'strikt')

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

# extrahera aktuell CPU -temperatur

##

current_temp = float (CPU_temp [0])

om aktuell_temp> 30 och aktuell_temp <40:

# temperatur låg A = 0, B = 0

g. utmatning (A, falsk)

g. utmatning (B, falsk)

tid. sover (5)

elif current_temp> = 40 och current_temp <45:

# temperaturmedium A = 1, B = 0

g. utmatning (A, sant)

g. utmatning (B, falsk)

tid. sover (5)

elif current_temp> = 45 och current_temp <50:

# temperatur hög A = 0, B = 1

g. utmatning (A, falsk)

g. utmatning (B, sant)

tid. sover (5)

elif current_temp> = 50:

# CPU -kylning krävs hög A = 1, B = 1

g. utmatning (A, sant)

g. utmatning (B, sant)

för i inom intervallet (1, 20):

g. utmatning (FAN, True)

tid. sover (10)

g. utmatning (FAN, falskt)

tid. sover (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 ()

##

Eftersom driftslogiken för denna pythonkod nästan liknar den för CPU -temperaturindikeringskretsen, kommer jag inte att upprepa detaljer här.

Steg 9: FAN -kretsdrift

FAN -kretsdrift
FAN -kretsdrift

När man tittar på grafen överstiger temperaturen 50C utan FAN -krets.

Det verkar som om den genomsnittliga CPU -temperaturen är runt 40 ~ 47C medan RPI fungerar.

Om tung systembelastning som att spela Youtube i webbläsaren tillämpas, brukar temperaturen stiga snabbt upp till 60C.

Men med FAN -krets kommer temperaturen att minska mindre än 50C inom 5 sekunder genom drift av kylfläkt.

Som ett resultat kan du slå på RPI hela dagen och göra alla arbeten du vill utan att oroa dig för överhettning.

Steg 10: Vidareutveckling

Ytterligare utveckling
Ytterligare utveckling

Som du kan se är hälften av akrylchassit tomt.

Jag lägger till ytterligare komponenter där och utökar detta grundläggande block av RPI -låda till något mer användbart.

Naturligtvis innebär mer tillägg också lite ökande komplexitet.

Hur som helst integrerar jag två kretsar i en enda låda i det här projektet.

Tack för att du läste denna berättelse.

Rekommenderad: