Turinys:

„Raspberry Pi“aušinimo ventiliatoriaus dėžutė su procesoriaus temperatūros indikatoriumi: 10 žingsnių (su paveikslėliais)
„Raspberry Pi“aušinimo ventiliatoriaus dėžutė su procesoriaus temperatūros indikatoriumi: 10 žingsnių (su paveikslėliais)

Video: „Raspberry Pi“aušinimo ventiliatoriaus dėžutė su procesoriaus temperatūros indikatoriumi: 10 žingsnių (su paveikslėliais)

Video: „Raspberry Pi“aušinimo ventiliatoriaus dėžutė su procesoriaus temperatūros indikatoriumi: 10 žingsnių (su paveikslėliais)
Video: BigTreeTech - SKR 3 - TMC2130 with Sensorless Homing 2024, Liepa
Anonim
„Raspberry Pi“aušinimo ventiliatoriaus dėžutė su procesoriaus temperatūros indikatoriumi
„Raspberry Pi“aušinimo ventiliatoriaus dėžutė su procesoriaus temperatūros indikatoriumi

Ankstesniame projekte buvau pristatęs „Raspberry pi“(toliau RPI) procesoriaus temperatūros indikatoriaus grandinę.

Grandinė tiesiog rodo RPI 4 skirtingą procesoriaus temperatūros lygį, kaip nurodyta toliau.

- Žalias šviesos diodas įsijungia, kai procesoriaus temperatūra yra 30–39 laipsnių

- Geltonas šviesos diodas rodo, kad temperatūra pakyla nuo 40 iki 45 laipsnių

- Trečiasis raudonas šviesos diodas rodo, kad procesorius šiek tiek įkaista, pasiekdamas 46–49 laipsnius

- Kitas raudonas šviesos diodas mirksi, kai temperatūra viršija 50 laipsnių

***

Kai temperatūra viršija 50 ° C, maža RPI neturi būti per daug įtempta.

Remiantis informacija, kurią mačiau keliuose tinklalapiuose, kuriuose kalbama apie maksimalų leistiną RPI temperatūros lygį, nuomonės yra įvairios, pavyzdžiui, kažkas pamini, kad naudojant aukštesnę nei 60 ° C temperatūrą vis dar yra gerai, kai naudojamas radiatorius.

Tačiau mano asmeninė patirtis sako ką kita, kad perdavimo serveris (naudojant RPI su radiatoriumi) tampa lėtas ir galiausiai veikia kaip zombis, kai jį įjungiu kelias valandas.

Todėl ši papildoma grandinė ir aušinimo ventiliatorius pridedami norint reguliuoti procesoriaus temperatūrą iki 50 ° C, kad būtų užtikrintas stabilus RPI veikimas.

***

Taip pat anksčiau pristatyta procesoriaus temperatūros indikatoriaus grandinė (toliau - INDIKATORIUS) yra integruota kartu, kad palaikytų patogų temperatūros lygio patikrinimą, konsolės terminale nevykdant komandos „vcgencmd meet_temp“.

1 žingsnis: schemų paruošimas

Schemų paruošimas
Schemų paruošimas

Dviejuose ankstesniuose projektuose minėjau visišką maitinimo izoliaciją tarp RPI ir išorinių grandinių.

Aušinimo ventiliatoriaus atveju nepriklausomas maitinimo šaltinis yra gana svarbus, nes nuolatinės srovės 5 V ventiliatorius (variklis) yra gana didelė apkrova ir gana triukšmingas.

Todėl kuriant šią grandinę pabrėžiami šie aspektai.

- Opto jungtys naudojamos sąsajai su RPI GPIO kaiščiu gauti aušinimo ventiliatoriaus aktyvavimo signalą

- Maitinimas nėra gaunamas iš RPI ir naudojant įprastą rankinio telefono įkroviklį šios grandinės maitinimo šaltiniui.

- LED indikatorius naudojamas informuoti apie aušinimo ventiliatoriaus veikimą

- 5V relė naudojama aušinimo ventiliatoriui suaktyvinti kaip mechaninis būdas

***

Ši grandinė sąveikauja su procesoriaus temperatūros indikatoriaus grandine (toliau INDICATOR), valdydama python programą.

Kai indikatorius pradeda mirksėti (temperatūra viršija 50 ° C), ši aušinimo ventiliatoriaus grandinė pradeda veikti.

2 žingsnis: dalių paruošimas

Kaip ir kiti ankstesni projektai, aušinimo ventiliatoriaus grandinei gaminti naudojami labai įprasti komponentai, kaip nurodyta toliau.

- Opto jungtis: PC817 (SHARP) x 1

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

- TQ2-5V („Panasonic“) 5V relė

- 1N4148 diodas

- Rezistoriai (1/4 vatai): 220 omų x 2 (srovės ribojimas), 2,2 K (tranzistoriaus perjungimas) x 2

- šviesos diodas x 1

- 5 V aušinimo ventiliatorius 200 mA

- Universali plokštė, kurios dydis didesnis nei 20 (W) iki 20 (H) (galite iškirpti bet kokio dydžio universaliąją plokštę, kad ji atitiktų grandinę)

- Alavo viela (daugiau informacijos apie alavo vielos naudojimą rasite mano projekto „Raspberry Pi“išjungimo indikatorius) paskelbime.

- Kabelis (raudonas ir mėlynas bendras vieno laido kabelis)

- Bet koks rankinio telefono įkroviklio 220 V įėjimas ir 5 V išėjimas (B tipo USB jungtis)

- smeigtuko galvutė (3 kaiščiai) x 2

***

Fizinis aušinimo ventiliatoriaus matmuo turėtų būti pakankamai mažas, kad jį būtų galima pritvirtinti RPI viršuje.

Galima naudoti bet kokio tipo relę, kai ji gali veikti esant 5 V įtampai ir turėti daugiau nei vieną mechaninį kontaktą.

3 žingsnis: PCB piešimo padarymas

PCB brėžinys
PCB brėžinys

Kadangi komponentų skaičius yra mažas, reikalingas universalus PCB dydis nėra didelis.

Prašome pasirūpinti TQ2-5V kaiščių poliškumu, kaip parodyta aukščiau esančiame paveikslėlyje. (Priešingai nei įprastas mąstymas, faktinis pliuso/žemės išdėstymas yra atvirkščiai išdėstytas)

Asmeniškai aš turiu netikėtą problemą po litavimo dėl atvirkščiai (lyginant su kitais relės gaminiais) TQ2-5V poliškumo kaiščių.

4 žingsnis: litavimas

Litavimas
Litavimas

Kadangi pati grandinė yra gana paprasta, laidų schema nėra labai sudėtinga.

Aš tvirtinu „L“formos tvirtinimo laikiklį, kad PCB būtų pritvirtinta vertikaliai.

Kaip matote vėliau, akrilo važiuoklė, kuri viską sumontuoja, yra šiek tiek maža.

Todėl būtina susiaurinti pėdsaką, nes akrilo važiuoklė yra labai perpildyta PCB ir kitų dalių.

Šviesos diodas yra priekinėje pusėje, kad būtų galima lengvai atpažinti ventiliatoriaus veikimą.

5 žingsnis: aušinimo ventiliatoriaus skrybėlės gamyba ir montavimas

Aušinimo ventiliatoriaus skrybėlės gamyba ir montavimas
Aušinimo ventiliatoriaus skrybėlės gamyba ir montavimas

Manau, kad universali PCB yra labai naudinga dalis, kuri gali būti naudojama įvairiems tikslams.

Aušinimo ventiliatorius yra sumontuotas ant universalios PCB ir sumontuotas bei pritvirtintas varžtais ir veržlėmis.

Kad oro srautas būtų lengvas, aš darau didelę skylę gręždamas PCB.

Taip pat, norint lengvai prijungti trumpiklius, GIPO 40 kaiščių zona atidaroma pjaunant PCB.

6 žingsnis: Surinkite PCB

Surinkite PCB
Surinkite PCB

Kaip minėta aukščiau, aš planavau sujungti dvi skirtingas grandines į vieną įrenginį.

Anksčiau sukurta procesoriaus temperatūros indikatoriaus grandinė sujungiama su nauja aušinimo ventiliatoriaus grandine, kaip parodyta paveikslėlyje aukščiau., Viskas supakuota į skaidrią ir mažo dydžio (15 cm x 10 cm gylio) akrilo važiuoklę.

Nors maždaug pusė važiuoklės vietos tuščios ir prieinamos, vėliau likusi vieta bus patalpinta papildomame komponente.

7 žingsnis: RPI prijungimas prie grandinių

Laidų RPI su grandinėmis
Laidų RPI su grandinėmis

Dvi grandinės yra atskirai sujungtos su RPI, naudojant opto jungtis.

Be to, iš RPI energija netaikoma, nes išorinis rankinio telefono įkroviklis maitina grandines.

Vėliau žinosite, kad tokia izoliuotos sąsajos schema yra gana naudinga, kai vėliau papildomi komponentai bus labiau integruoti į akrilo korpusą.

8 žingsnis: „Python“programa valdo visas grandines

„Python“programa valdo visas grandines
„Python“programa valdo visas grandines

Iš procesoriaus temperatūros indikatoriaus grandinės šaltinio kodo reikia pridėti tik nedidelį kodą.

Kai temperatūra viršija 50 ° C, pradedama dvidešimt (20) VENTILIATORIO įjungimo 10 sekundžių ir 3 sekundžių išjungimo iteracija.

Kadangi mažam ventiliatoriaus varikliui reikia maksimalios 200 mA srovės veikimo metu, PWM (impulso pločio moduliacijos) tipo variklio aktyvinimo metodas naudojamas mažiau apkraunamam rankinio telefono įkrovikliui.

Pakeistas šaltinio kodas yra toks, kaip parodyta žemiau.

***

#-*-kodavimas: utf-8-*-

##

importuoti papildomą procesą, signalą, sistemą

importo laikas, pakart

importuoti RPi. GPIO kaip g

##

A = 12

B = 16

VENTILIATORIUS = 25

##

g.setmode (g. BCM)

g. sąranka (A, g. OUT)

g. nustatymas (B, g. OUT)

g. nustatymas (FAN, g. OUT)

##

def signal_handler (sig, frame):

spausdinti ('Paspaudėte Ctrl+C!')

g. išvestis (A, klaidinga)

g. išvestis (B, klaidinga)

g. išvestis (FAN, False)

f. uždaryti ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

nors tiesa:

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

temp_str = subprocess.check_output ('/opt/vc/bin/vcgencmd meet_temp', apvalkalas = tiesa)

temp_str = temp_str.decode (kodavimas = 'UTF-8', klaidos = 'griežta')

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

# išgaunama dabartinė procesoriaus temperatūra

##

current_temp = plūdė (CPU_temp [0])

jei dabartinis_tempas> 30 ir dabartinis_tempas <40:

# žema temperatūra A = 0, B = 0

g. išvestis (A, klaidinga)

g. išvestis (B, klaidinga)

laikas miegoti (5)

elif current_temp> = 40 ir current_temp <45:

# temperatūros terpė A = 1, B = 0

g. išvestis (A, tiesa)

g. išvestis (B, klaidinga)

laikas miegoti (5)

elif current_temp> = 45 ir current_temp <50:

# aukšta temperatūra A = 0, B = 1

g. išvestis (A, klaidinga)

g. išvestis (B, tiesa)

laikas miegoti (5)

elif current_temp> = 50:

# CPU aušinimas reikalingas aukštas A = 1, B = 1

g. išvestis (A, tiesa)

g. išvestis (B, tiesa)

i diapazone (1, 20):

g. išvestis (FAN, tiesa)

laikas. miegas (10)

g. išvestis (FAN, False)

laikas. miegas (3)

current_time = time.time ()

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

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

f. uždaryti ()

##

Kadangi šio „python“kodo veikimo logika yra beveik panaši į procesoriaus temperatūros indikatoriaus grandinės logiką, čia detalių nekartosiu.

9 veiksmas: ventiliatoriaus grandinės veikimas

Ventiliatoriaus grandinės veikimas
Ventiliatoriaus grandinės veikimas

Žiūrint į grafiką temperatūra viršija 50C be ventiliatoriaus grandinės.

Atrodo, kad vidutinė procesoriaus temperatūra yra apie 40–47 ° C, kol veikia RPI.

Jei naudojama didelė sistemos apkrova, pvz., „Youtube“paleidimas žiniatinklio naršyklėje, paprastai temperatūra greitai pakyla iki 60 ° C.

Tačiau naudojant ventiliatoriaus grandinę, per 5 sekundes temperatūra bus sumažinta mažiau nei 50 ° C, veikiant aušinimo ventiliatoriui.

Dėl to galite visą dieną įjungti RPI ir atlikti bet kokius jums patinkančius darbus, nesijaudindami dėl perkaitimo.

10 žingsnis: tolesnė plėtra

Tolimesnis vystymas
Tolimesnis vystymas

Kaip matote, pusė akrilo važiuoklės liko tuščia.

Ten įdėsiu papildomų komponentų ir išplėsiu šį pagrindinį RPI dėžutės bloką į kažką naudingesnio.

Žinoma, daugiau papildymo taip pat reiškia šiek tiek didėjantį sudėtingumą.

Bet kokiu atveju šiame projekte aš integruoju dvi grandines į vieną dėžutę.

Dėkojame, kad perskaitėte šią istoriją.

Rekomenduojamas: