Sisukord:

Raspberry Pi jahutusventilaatori kast CPU temperatuurinäidikuga: 10 sammu (piltidega)
Raspberry Pi jahutusventilaatori kast CPU temperatuurinäidikuga: 10 sammu (piltidega)

Video: Raspberry Pi jahutusventilaatori kast CPU temperatuurinäidikuga: 10 sammu (piltidega)

Video: Raspberry Pi jahutusventilaatori kast CPU temperatuurinäidikuga: 10 sammu (piltidega)
Video: BTT Manta M8P v2 - Basics with CB1 v2.2 2024, Juuli
Anonim
Raspberry Pi jahutusventilaatori kast CPU temperatuurinäidikuga
Raspberry Pi jahutusventilaatori kast CPU temperatuurinäidikuga

Olin eelmises projektis kasutusele võtnud vaarika pi (edaspidi RPI) protsessori temperatuuri indikaatori ahela.

Ahel näitab lihtsalt RPI 4 erinevat CPU temperatuuri taset järgmiselt.

- Roheline LED süttib, kui protsessori temperatuur on 30–39 kraadi

- Kollane LED näitab temperatuuri tõusu vahemikus 40 kuni 45 kraadi

- Kolmas punane LED näitab, et protsessor muutub veidi kuumaks, saavutades 46-49 kraadi

- Veel üks punane LED hakkab vilkuma, kui temperatuur ületab 50 kraadi

***

Kui temperatuur ületab 50 ° C, on vaja vähest RPI -d, mis ei ole liiga pingeline.

Vastavalt teabele, mida nägin mitmel veebilehel, kus räägitakse RPI maksimaalsest talutavast temperatuuritasemest, on arvamusi erinevaid, näiteks keegi mainib, et üle 60 ° C on jahutusradiaatori kasutamisel siiski täiesti OK.

Kuid minu isiklik kogemus ütleb midagi muud, et edastusserver (kasutades RPI-d koos jahutusradiaatoriga) muutub aeglaseks ja käitub lõpuks nagu zombie, kui lülitan selle mitmeks tunniks sisse.

Seetõttu on see täiendav ahel ja jahutusventilaator lisatud CPU temperatuuri reguleerimiseks alla 50 ° C, et toetada RPI stabiilset tööd.

***

Ka varem kasutusele võetud protsessori temperatuuri indikaatoriahel (edaspidi INDICATOR) on integreeritud, et toetada mugavat temperatuuri taseme kontrollimist ilma konsooli terminalis käsku „vcgencmd meet_temp” täitmata.

Samm: skeemide koostamine

Skeemide koostamine
Skeemide koostamine

Kahes eelmises projektis olin maininud toiteallika täielikku eraldamist RPI ja väliste ahelate vahel.

Jahutusventilaatori puhul on sõltumatu toide üsna oluline, kuna alalisvoolu 5 V ventilaator (mootor) on suhteliselt raske koormusega ja töö ajal üsna mürarikas.

Seetõttu rõhutatakse selle vooluahela kujundamisel järgmisi kaalutlusi.

- Opto-sidureid kasutatakse liideseks RPI GPIO tihvtiga, et saada jahutusventilaatori aktiveeriv signaal

- RPI-lt ei võeta voolu ja selle vooluahela toiteallikaks kasutatakse tavalist käsitelefonilaadijat.

- LED -indikaatorit kasutatakse jahutusventilaatori töö teavitamiseks

- 5 V releed kasutatakse jahutusventilaatori mehaaniliseks aktiveerimiseks

***

See vooluahel töötab koos python-programmi juhtimisega protsessori temperatuuri indikaatoriahelaga (edaspidi INDICATOR).

Kui indikaator hakkab vilkuma (temperatuur ületab 50 ° C), hakkab see jahutusventilaatori ahel tööle.

Samm: osade ettevalmistamine

Nagu ka teisi varasemaid projekte, kasutatakse jahutusventilaatori vooluringi valmistamiseks väga levinud komponente, nagu allpool loetletud.

- Opto-sidestus: PC817 (SHARP) x 1

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

- TQ2-5V (Panasonic) 5V relee

- diood 1N4148

- Takistid (1/4 W): 220 oomi x 2 (voolu piirav), 2,2 K (transistori lülitamine) x 2

- LED x 1

- 5V jahutusventilaator 200mA

- Universaalne plaat, mille suurus on üle 20 (W) 20 (H) auku (vooluringi sobitamiseks saate lõigata mis tahes suurusega universaalse plaadi)

- Plekist traat (palun vaadake minu projekti „Raspberry Pi sulgemise indikaator” postitust, et saada rohkem teavet plekktraadi kasutamise kohta)

- kaabel (ühine punane ja sinine ühikaabel)

- mis tahes käsitelefonilaadija 220V sisend ja 5V väljund (USB-tüüpi B-pistik)

- tihvtipea (3 tihvti) x 2

***

Jahutusventilaatori füüsiline mõõde peaks olema piisavalt väike, et seda saaks paigaldada RPI ülaosale.

Mis tahes tüüpi relee saab kasutada, kui see võib töötada 5 V pingel ja sellel on rohkem kui üks mehaaniline kontakt.

3. samm: PCB joonise tegemine

PCB joonise tegemine
PCB joonise tegemine

Kuna komponentide arv on väike, pole nõutav universaalne trükkplaadi suurus suur.

Palun hoolitsege TQ2-5V tihvtide polaarsuse paigutuse eest, nagu on näidatud ülaltoodud pildil. (Vastupidiselt tavapärasele mõtlemisele on tegelik pluss/maa paigutus vastupidiselt paigutatud)

Isiklikult on mul pärast jootmist ootamatu probleem, mis on tingitud TQ2-5V vastupidise asukohaga (võrreldes teiste releetoodetega) polaarsusnõelte tõttu.

4. samm: jootmine

Jootmine
Jootmine

Kuna vooluring ise on üsna lihtne, ei ole juhtmestik eriti keeruline.

Ma kruvin L -kujulise kinnitusklambri, et fikseerida trükkplaat püsti.

Nagu hiljem näete, on akrüülist šassii, mille kõik kinnitused on pisut väikesed.

Seetõttu on vaja kitsendada jalajälge, kuna akrüülist šassii on trükkplaatide ja muude alaosadega väga rahvarohke.

Ventilaatori töö hõlpsaks tuvastamiseks on LED esiküljel.

5. samm: jahutusventilaatori mütsi valmistamine ja paigaldamine

Jahutusventilaatori valmistamine ja paigaldamine
Jahutusventilaatori valmistamine ja paigaldamine

Ma arvan, et universaalne trükkplaat on väga kasulik osa, mida saab kasutada erinevatel eesmärkidel.

Jahutusventilaator on paigaldatud universaalsele trükkplaadile ning paigaldatud ja kinnitatud poltide ja mutritega.

Õhuvoolu võimaldamiseks teen PCB puurimisega suure augu.

Ka hüppakaablite hõlpsaks ühendamiseks avatakse GIPO 40 tihvtide ala trükkplaadi lõikamise teel.

Samm: koguge trükkplaate

Pange PCBd kokku
Pange PCBd kokku

Nagu eespool mainitud, plaanisin koondada kaks erinevat vooluahelat üheks üksuseks.

Varem valmistatud CPU temperatuurinäidiku ahel ühendatakse uue jahutusventilaatori ahelaga, nagu on näidatud ülaltoodud pildil.

Kõik on kokku pakitud läbipaistvasse ja väikese suurusega (15 cm x 10 cm D) akrüülkarkassi.

Kuigi umbes pool šassii ruumist on tühi ja saadaval, paigutatakse lisakomponent allesjäänud ruumi hiljem.

Samm 7: RPI ühendamine ahelatega

RPI juhtmestik ahelatega
RPI juhtmestik ahelatega

Kaks vooluahelat on ühendatud RPI-ga isoleeritud viisil, kasutades optilisi sidureid.

Samuti ei võeta RPI-lt energiat, kuna välise käsitelefonilaadijaga varustatakse vooluahelaid.

Hiljem teate, et selline isoleeritud liidese skeem on üsna tasuv, kui hiljem lisakomponendid akrüülraamile rohkem integreeritakse.

Samm 8: Pythoni programm juhib kõiki ahelaid

Pythoni programm juhib kõiki ahelaid
Pythoni programm juhib kõiki ahelaid

Protsessori temperatuurinäidiku ahela lähtekoodist on vaja ainult väikest koodi lisamist.

Kui temperatuur ületab 50 ° C, algab ventilaatori 10 sekundiks sisselülitamise ja 3 sekundi väljalülitamise kakskümmend (20) kordus.

Kuna ventilaatori väike mootor vajab töötamise ajal maksimaalselt 200 mA voolu, kasutatakse PWM (impulsi laiuse modulatsioon) tüüpi mootori aktiveerimismeetodit vähem koormavaks käsitelefonilaadijaks.

Muudetud lähtekood on selline nagu allpool.

***

#-*-kodeerimine: utf-8-*-

##

impordi alamprotsess, signaal, süsteem

impordi aeg, re

import RPi. GPIO g

##

A = 12

B = 16

Ventilaator = 25

##

g.setmode (g. BCM)

g.seadistus (A, g. OUT)

g. seadistamine (B, g. OUT)

g.seadistus (FAN, g. OUT)

##

def signal_handler (sig, frame):

print ('Sa vajutasid Ctrl+C!')

g. väljund (A, vale)

g. väljund (B, vale)

g. väljund (FAN, False)

f. sulge ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

kuigi tõsi:

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

temp_str = alamprotsess.check_output ('/opt/vc/bin/vcgencmd meet_temp', kest = tõene)

temp_str = temp_str.decode (kodeering = 'UTF-8', vead = 'range')

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

# CPU praeguse temperatuuri eraldamine

##

current_temp = float (CPU_temp [0])

kui praegune_temperatuur> 30 ja praegune_temperatuur <40:

# madal temperatuur A = 0, B = 0

g. väljund (A, vale)

g. väljund (B, vale)

uneaeg (5)

elif current_temp> = 40 ja current_temp <45:

# temperatuurikeskkond A = 1, B = 0

g. väljund (A, tõene)

g. väljund (B, vale)

uneaeg (5)

elif current_temp> = 45 ja current_temp <50:

# kõrge temperatuur A = 0, B = 1

g. väljund (A, vale)

g. väljund (B, tõene)

uneaeg (5)

elif current_temp> = 50:

# CPU jahutus on vajalik kõrge A = 1, B = 1

g. väljund (A, tõene)

g. väljund (B, tõene)

i jaoks vahemikus (1, 20):

g. väljund (FAN, True)

aeg. uni (10)

g. väljund (FAN, False)

aeg. uni (3)

praegune_aeg = aeg.aeg ()

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

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

f. sulge ()

##

Kuna selle python -koodi toimimisloogika on peaaegu sarnane CPU temperatuurinäidiku vooluringiga, ei hakka ma siin üksikasju kordama.

9. samm: Ventilaatori vooluahela toimimine

Ventilaatori vooluahela töö
Ventilaatori vooluahela töö

Graafikut vaadates ületab temperatuur ilma ventilaatorita 50 ° C.

Tundub, et protsessori keskmine temperatuur on RPI töötamise ajal umbes 40–47 ° C.

Kui rakendatakse suurt süsteemi koormust, näiteks veebibrauseris Youtube'i mängimist, tõuseb temperatuur tavaliselt kiiresti kuni 60 ° C -ni.

Kuid ventilaatori vooluahela korral vähendatakse jahutusventilaatori abil temperatuuri vähem kui 50 ° C 5 sekundi jooksul.

Selle tulemusena saate RPI kogu päeva sisse lülitada ja teha mis tahes tööd, mis teile meeldivad, muretsemata ülekuumenemise pärast.

10. samm: edasiarendamine

Edasine areng
Edasine areng

Nagu näete, jääb pool akrüülist šassii tühjaks.

Panen sinna lisakomponente ja laiendan seda RPI kasti põhiplokki millekski kasulikumaks.

Muidugi tähendab suurem lisamine ka pisut keerukuse suurenemist.

Igatahes integreerin selles projektis kaks vooluahelat ühte kasti.

Täname, et lugesite seda lugu.

Soovitan: