INHOUDSOPGAWE:

Raspberry Pi -boks met koelventilator met CPU -temperatuuraanwyser: 10 stappe (met foto's)
Raspberry Pi -boks met koelventilator met CPU -temperatuuraanwyser: 10 stappe (met foto's)

Video: Raspberry Pi -boks met koelventilator met CPU -temperatuuraanwyser: 10 stappe (met foto's)

Video: Raspberry Pi -boks met koelventilator met CPU -temperatuuraanwyser: 10 stappe (met foto's)
Video: Machen Raspberry Pis Bock? Ich teste 3 Anfänger-Projekte | Selbstexperiment 2024, November
Anonim
Framboos Pi -boks met koelwaaier met CPU -temperatuuraanwyser
Framboos Pi -boks met koelwaaier met CPU -temperatuuraanwyser

Ek het in die vorige projek raspberry pi (hierna RPI) CPU -temperatuuraanwyserbaan bekendgestel.

Die stroombaan toon eenvoudig RPI 4 verskillende CPU -temperatuurvlak soos volg.

- Groen LED aangeskakel wanneer die CPU -temperatuur binne 30 ~ 39 grade is

- Geel LED dui aan dat die temperatuur binne 40 tot 45 grade verhoog word

- Die derde rooi LED wys dat die CPU 'n bietjie warm word deur 'n temperatuur van 46 ~ 49 grade te bereik

- 'n Ander rooi LED sal knip as die temperatuur meer as 50 grade oorskry

***

As die temperatuur meer as 50C oorskry, sal enige hulp nodig wees vir min RPI wat nie te veel spanning het nie.

Volgens die inligting wat ek op verskeie webblaaie gesien het wat praat oor die maksimum draagbare temperatuur van RPI, is menings uiteenlopend, soos iemand noem dat meer as 60C nog steeds goed is as 'n hittebak gebruik word.

Maar my persoonlike ervaring sê iets anders dat die oordragbediener (met behulp van RPI met 'n koellichaam) stadig word en uiteindelik soos 'n zombie optree as ek dit 'n paar uur aanskakel.

Daarom word hierdie ekstra kring- en verkoeling -waaier bygevoeg vir die regulering van die CPU -temperatuur onder 50C om die stabiele werking van RPI te ondersteun.

***

Die voorheen ingestelde CPU -temperatuuraanwyserbaan (hierna aangedui as INDIKATOR) is saam geïntegreer om 'n maklike temperatuurpeil te kontroleer sonder om 'vcgencmd measure_temp' opdrag op die konsole -terminaal uit te voer.

Stap 1: Skemas voorberei

Skemas voorberei
Skemas voorberei

In twee vorige projekte het ek melding gemaak van volledige isolasie van die kragtoevoer tussen RPI en eksterne kringe.

In geval van ventilator afkoel, is onafhanklike kragtoevoer baie belangrik, aangesien DC 5V -waaier (motor) relatief swaar is en baie raserig is tydens werking.

Daarom word die volgende oorwegings beklemtoon vir die ontwerp van hierdie stroombaan.

- Opto-koppelaars word gebruik om met die RPI GPIO-pin te koppel om 'n verkoelende FAN-aktiveersein te kry

- Daar word geen krag uit RPI getrek en 'n gewone selfoonlaaier gebruik vir die kragbron van hierdie kring nie.

- LED -aanwyser word gebruik om die ventilasie van die ventilator in te lig

- 5V -relais word gebruik om die koelventilator op meganiese wyse te aktiveer

***

Hierdie stroombaan werk met die CPU temperatuur aanwyser stroombaan (hierna INDICATOR) deur middel van python program beheer.

As die AANWYSER begin knip (die temperatuur is meer as 50C), begin die koelventilatorstroombaan.

Stap 2: Voorbereiding van onderdele

Soos ander vorige projekte, word baie algemene komponente gebruik vir die vervaardiging van 'n FAN -stroombaan soos hieronder gelys.

- Opto-koppelaar: PC817 (SHARP) x 1

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

- TQ2-5V (Panasonic) 5V aflos

- 1N4148 diode

Weerstands (1/4Watt): 220ohm x 2 (stroombeperking), 2.2K (transistor skakel) x 2

- LED x 1

- 5V verkoeling FAN 200mA

- Universele bord meer as 20 (W) by 20 (H) gate grootte (u kan enige grootte van die universele bord sny volgens die stroombaan)

- Blikkiesdraad (Raadpleeg my "Raspberry Pi -afsluitindikator" -projek vir meer inligting oor die gebruik van blikdraad)

- Kabel (rooi en blou gewone enkeldraad kabel)

- Enige selfoonlaaier 220V-ingang en 5V-uitset (USB-tipe B-aansluiting)

- Speldkop (3 penne) x 2

***

Die fisiese afmeting van die ventilator moet klein genoeg wees om aan die bokant van die RPI gemonteer te word.

Enige tipe relais kan gebruik word as dit op 5V kan werk en meer as een meganiese kontak het.

Stap 3: Maak PCB -tekening

Maak PCB -tekening
Maak PCB -tekening

Aangesien die aantal komponente klein is, is die vereiste universele PCB -grootte nie groot nie.

Let op die uitleg van die penpolariteit van TQ2-5V, soos op die foto hierbo getoon. (In teenstelling met die konvensionele denke, word die werklike plus/grond -uitleg omgekeerd gerangskik)

Persoonlik het ek 'n onverwagte probleem na soldeer as gevolg van die omgekeerde (by vergelyking met ander aflosprodukte) polariteitspenne van TQ2-5V.

Stap 4: Soldeer

Soldeer
Soldeer

Aangesien die kring self redelik eenvoudig is, is die bedradingspatroon nie baie kompleks nie.

Ek draai 'n "L" -vormige bevestigingsbeugel vas om die printplaat regop te hou.

Soos u later kan sien, is die akriel onderstel wat alles monteer, 'n bietjie klein.

Daarom is vernouing van die voetafdruk nodig, aangesien akriel onderstel baie druk is met PCB's en ander onderdele.

LED is aan die voorkant geleë om FAN -werking maklik te herken.

Stap 5: Maak en monteer koelventilatorhoed

Maak en monteer Cooling FAN HAT
Maak en monteer Cooling FAN HAT

Ek veronderstel dat universele PCB 'n baie nuttige deel is wat vir uiteenlopende doeleindes gebruik kan word.

Cooling FAN word op universele printplaat gemonteer en vasgemaak met boute en moere.

Om lugvloei toe te laat, maak ek 'n groot gat deur PCB te boor.

Die GIPO 40 -penne -area word ook oopgemaak vir die maklik aansluit van die kabels, deur die PCB te sny.

Stap 6: Monteer PCB's

Monteer PCB's
Monteer PCB's

Soos hierbo genoem, was ek van plan om twee verskillende stroombane in 'n enkele eenheid te konsolideer.

Voorheen gemaakte CPU -temperatuuraanwyserbaan word saamgesmelt met 'n nuwe koelventilator -stroombaan, soos in die prent hierbo getoon., Alles word verpak in 'n deursigtige en klein grootte (15 cm x 10 cm D) akriel onderstel.

Alhoewel ongeveer die helfte van die onderstelruimte leeg en beskikbaar is, word daar later 'n ekstra komponent in die oorblywende ruimte gehuisves.

Stap 7: Bedrading van RPI met stroombane

Bedrading RPI met stroombane
Bedrading RPI met stroombane

Twee stroombane is op 'n geïsoleerde manier met RPI verbind.

Daar word ook geen krag by RPI getrek nie, aangesien die eksterne laaier van die selfoon die stroombane voorsien.

Later sal u weet dat hierdie soort geïsoleerde koppelvlakskema baie voordelig is as bykomende komponente later meer by die akriel-onderstel geïntegreer word.

Stap 8: Python -programbeheer alle kringe

Python -programbeheer alle stroombane
Python -programbeheer alle stroombane

Slegs 'n geringe toevoeging van kode is nodig uit die bronkode van die CPU -temperatuuraanwyserbaan.

As die temperatuur 50C oorskry, begin twintig (20) herhaling om FAN vir 10 sekondes aan te skakel en 3 sekondes af te skakel.

Aangesien 'n klein motor van FAN maksimum 200mA stroom benodig tydens werking, word die PWM (Pulse Width Modulation) tipe motoraktiveringsmetode gebruik vir 'n laer selfoonlaaier.

Die gewysigde bronkode is soos hieronder.

***

#-*-kodering: utf-8-*-

##

invoer subproses, sein, sys

invoer tyd, re

voer RPi. GPIO in as g

##

A = 12

B = 16

FAN = 25

##

g.setmodus (g. BCM)

g.opstelling (A, g. OUT)

g.opstelling (B, g. OUT)

g.opstelling (FAN, g. OUT)

##

def signal_handler (sig, raam):

print ('U het op Ctrl+C gedruk!')

g. uitvoer (A, onwaar)

g. uitvoer (B, onwaar)

g. uitvoer (FAN, Onwaar)

f.close ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

terwyl dit waar is:

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 (kodering = 'UTF-8', foute = 'streng')

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

# die huidige CPU -temperatuur onttrek

##

current_temp = float (CPU_temp [0])

as huidige_temp> 30 en huidige_temp <40:

# temperatuur laag A = 0, B = 0

g. uitvoer (A, onwaar)

g. uitvoer (B, onwaar)

tyd. slaap (5)

elif current_temp> = 40 en current_temp <45:

# temperatuurmedium A = 1, B = 0

g. uitvoer (A, waar)

g. uitvoer (B, onwaar)

tyd. slaap (5)

elif current_temp> = 45 en current_temp <50:

# temperatuur hoog A = 0, B = 1

g. uitvoer (A, onwaar)

g. uitvoer (B, waar)

tyd. slaap (5)

elif current_temp> = 50:

# CPU -verkoeling word vereis hoog A = 1, B = 1

g. uitvoer (A, waar)

g. uitvoer (B, waar)

vir i in reeks (1, 20):

g. uitvoer (FAN, True)

tyd. slaap (10)

g. uitvoer (FAN, vals)

tyd. slaap (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 ()

##

Aangesien die logika van hierdie python -kode byna dieselfde is as die van die CPU -temperatuuraanwyserbaan, herhaal ek nie die besonderhede hier nie.

Stap 9: FAN Circuit Operation

FAN Circuit Operation
FAN Circuit Operation

As ons na die grafiek kyk, is die temperatuur meer as 50C sonder FAN -kring.

Dit lyk asof die gemiddelde CPU -temperatuur ongeveer 40 ~ 47C is terwyl RPI werk.

As 'n groot stelsellading soos die speel van Youtube in die webblaaier toegepas word, styg die temperatuur gewoonlik vinnig tot 60C.

Maar met 'n FAN -stroombaan, sal die temperatuur binne 5 sekondes minder as 50C verlaag word deur die koelventilator.

As gevolg hiervan kan u RPI die hele dag aanskakel en werk doen wat u wil, sonder om bekommerd te wees oor oorverhitting.

Stap 10: Verdere ontwikkeling

Verdere ontwikkeling
Verdere ontwikkeling

Soos u kan sien, bly die helfte van die akriel onderstel leeg.

Ek sal ekstra komponente daar sit en hierdie basiese blok RPI -boks uitbrei tot iets nuttigs.

Meer toevoeging beteken natuurlik ook 'n bietjie toenemende kompleksiteit.

Ek integreer in elk geval twee stroombane in 'n enkele boks in hierdie projek.

Dankie dat u hierdie verhaal gelees het.

Aanbeveel: