Orodha ya maudhui:

Kiashiria cha Joto la Raspberry Pi CPU: Hatua 11 (na Picha)
Kiashiria cha Joto la Raspberry Pi CPU: Hatua 11 (na Picha)

Video: Kiashiria cha Joto la Raspberry Pi CPU: Hatua 11 (na Picha)

Video: Kiashiria cha Joto la Raspberry Pi CPU: Hatua 11 (na Picha)
Video: BTT - Manta E3EZ - CB1 with EMMc install 2024, Novemba
Anonim
Kiashiria cha Joto la Raspberry Pi CPU
Kiashiria cha Joto la Raspberry Pi CPU

Hapo awali nilikuwa nimeanzisha rasipiberi rahisi pi (Hapa baadaye kama RPI) mzunguko wa kiashiria cha hali ya utendaji.

Wakati huu, nitaelezea mzunguko muhimu zaidi wa kiashiria kwa RPI inayoendesha bila kichwa (bila mfuatiliaji).

Mzunguko hapo juu unaonyesha joto la CPU katika viwango 4 tofauti kama vile:

- LED ya kijani imewashwa wakati joto la CPU liko ndani ya digrii 30 ~ 39

- LED ya manjano inaonyesha joto limeongezeka kwa kiwango cha 40 hadi 45 digrii

- 3 ya LED Nyekundu inaonyesha CPU kuwa moto kidogo kwa kufikia digrii 46 ~ 49

- Mwangaza mwingine mwekundu utawaka wakati joto linazidi digrii zaidi ya 50

Viwango vya joto vya CPU hapo juu ni dhana yangu ya kibinafsi ya kubuni (Viwango vingine vya joto vinaweza kusanidiwa kwa kubadilisha hali ya mtihani wa programu ya chatu ambayo inadhibiti mzunguko huu).

Kwa kutumia mzunguko huu, sio lazima utekeleze amri ya "vcgencmd measure_temp" mara kwa mara kwenye kituo cha kiweko.

Mzunguko huu utafahamisha joto la sasa la CPU kuendelea na kwa urahisi.

Hatua ya 1: Kuandaa Skematiki

Kuandaa Schematics
Kuandaa Schematics

Ingawa unaweza kudhibiti LED 4 moja kwa moja kwa kutumia nambari tu za chatu, mantiki ya kudhibiti programu hiyo itapakia RPI na kwa sababu hiyo, joto la CPU litaongezwa zaidi kwa sababu unapaswa kutumia nambari ngumu kidogo ya chatu kila wakati.

Kwa hivyo, ninapunguza ugumu wa msimbo wa chatu rahisi iwezekanavyo na kupakua mantiki ya kudhibiti LED kwa mzunguko wa vifaa vya nje.

Kiashiria cha joto cha CPU (Baadaye INICATOR) mzunguko una sehemu kuu zifuatazo.

- Viboreshaji viwili vya macho vimeunganishwa na pini za RPI GPIO kupata data ya kiwango cha joto kama vile 00-> LOW, 01-> Medium, 10-> High, 11-> Haja ya kupoza.

- 74LS139 (au 74HC139, 2-to-4 decoder na de-multiplexer) matokeo ya kudhibiti (Y0, Y1, Y2, Y3) kulingana na pembejeo (A, B)

- Wakati joto liko ndani ya digrii 30 ~ 39, python code pato 00 hadi pini za GPIO. Kwa hivyo, 74LS139 hupata data ya ingizo 00 (A-> 0, B-> 0)

- Kama 00 imeingizwa, pato la Y0 linakuwa chini. (Tafadhali rejelea meza ya ukweli ya 74LS139)

- Wakati pato la Y0 linakuwa chini, inawasha transistor ya 2N3906 PNP na kama matokeo, Green LED imewashwa

- Vivyo hivyo, Y1 (01 -> wastani wa joto la CPU) itawasha LED ya Njano na kadhalika

- Wakati Y3 inakuwa LOW, DB140 inayowasha NE555 LED blinking mzunguko (hii ni kawaida 555 IC msingi LED blinker) ambayo ni mzigo wa BD140 PNP transistor

Sehemu muhimu zaidi ya mzunguko huu ni 74LS139 ambayo inaamua nambari 2 za kuingiza katika pato 4 tofauti kama inavyoonyeshwa kwenye jedwali la ukweli hapa chini.

Ingizo | Pato

G (Wezesha) | B | A | Y0 | Y1 | Y2 | Y3 |

H | X | X | H | H | H | H |

L | L | L | L | H | H | H |

L | L | H | H | L | H | H |

L | H | L | H | H | L | H |

L | H | H | H | H | H | L |

Kwa kuwa pato la 74LS139 linakuwa chini, transistor ya aina ya PNP inaweza kufanya mzunguko kuwa rahisi kama transistor ya PNP imewashwa wakati kituo cha msingi kinakuwa CHINI. (Nitaonyesha toleo la NPN mwisho wa hadithi hii)

Kama potentiometer 100K imejumuishwa kwenye mzunguko wa blinker wa NE555, wakati wa LED Nyekundu ON / OFF unaweza kubadilishwa kwa uhuru kulingana na mahitaji.

Hatua ya 2: Kufanya Mchoro wa PCB

Kufanya Kuchora PCB
Kufanya Kuchora PCB

Kama mpango wa uendeshaji wa INDICATOR unavyoelezwa, wacha tuanze kufanya mzunguko.

Kabla ya kuuza kitu kwenye bodi ya ulimwengu, kuandaa uchoraji wa PCB iliyoonyeshwa hapo juu inasaidia kupunguza makosa yoyote.

Mchoro huo unafanywa kwa kutumia nguvu-nguvu ili kupata kila sehemu kwenye ubao wa ulimwengu na kutengeneza mifumo ya wiring kati ya sehemu zilizo na waya.

Kama picha za IC na transistor zilizopigwa pamoja ziko pamoja na muundo wa wiring wa PCB, utaftaji unaweza kufanywa kwa kutumia mchoro huu.

Hatua ya 3: Kufunga

Kufundisha
Kufundisha

Ingawa uchoraji wa asili wa PCB umetengenezwa bila kutumia waya moja kuunganisha vifaa kwenye PCB, ninaunganisha tofauti.

Kwa kutumia kondakta moja wa waya (sio waya wa bati), ninajaribu kupunguza ukubwa wa PCB wa ulimwengu wote ambao una mzunguko wa INDICATOR.

Lakini kama unavyoona kwa upande wa soldering wa PCB, ninatumia waya wa bati pia kulingana na mifumo iliyoonyeshwa kwenye uchoraji wa PCB.

Wakati kila sehemu imeunganishwa kulingana na muundo wa asili wa uchoraji wa PCB, bodi ya PCB iliyokamilishwa ikiwa ni pamoja na mzunguko wa INDICATOR itafanya kazi kwa usahihi.

Hatua ya 4: Kuandaa Maandalizi

Maandalizi ya Upimaji
Maandalizi ya Upimaji

Kabla ya unganisho la RPI, mzunguko uliomalizika unahitaji upimaji.

Kama makosa yoyote ya kuuza yanaweza kuwepo, muuzaji wa umeme wa DC hutumiwa kuzuia uharibifu wakati kaptula au wiring isiyofaa imetokea.

Kwa kupima INDICATOR, nyaya mbili za ziada za usambazaji wa umeme zimeunganishwa na kontakt ya usambazaji wa umeme wa 5V.

Hatua ya 5: Upimaji (Joto la CPU ni Kiwango cha Kati)

Upimaji (Joto la CPU ni Kiwango cha Kati)
Upimaji (Joto la CPU ni Kiwango cha Kati)

Wakati hakuna pembejeo ya 5V inatumika basi 74LS139 ya kuweka pembejeo na kuwezesha pato Y0 kama LOW (Green LED imewashwa).

Lakini 5V ilitumika kwa kuingiza A, pato Y1 ya 74LS139 inayowasha (LOW).

Kwa hivyo, LED ya Njano imewashwa kama inavyoonekana kwenye picha hapo juu.

Hatua ya 6: Upimaji (CPU Inahitaji Kiwango cha kupoza)

Upimaji (CPU Inahitaji Kiwango cha kupoza)
Upimaji (CPU Inahitaji Kiwango cha kupoza)

Wakati 5V ilitumia pembejeo zote mbili (A na B) za 74LS139, 4 ya Nyekundu ya LED inaangaza.

Kiwango cha kupepesa kinaweza kubadilishwa kwa kurekebisha 100K VR kama inavyoonekana kwenye picha hapo juu.

Wakati upimaji umekamilika, nyaya mbili za kike za Molex 3 zinaweza kuondolewa.

Hatua ya 7: Ugavi wa Nguvu kwa Mzunguko wa kiashiria

Ugavi wa Umeme kwa Mzunguko wa kiashiria
Ugavi wa Umeme kwa Mzunguko wa kiashiria

Ili kuwezesha mzunguko wa INDICATOR, ninatumia chaja ya kawaida ya mkono inayotoa 5V na adapta ya USB-B kama inavyoonekana kwenye picha hapo juu.

Ili kuzuia shida na RPI kwa kuunganisha 3.3V GPIO na 5V inayoendeshwa na mzunguko wa INDICATOR, kiwambo cha ishara na usambazaji wa umeme zimetengwa kabisa kwa kila mmoja.

Hatua ya 8: RPI Wiring

Wiring wa RPI
Wiring wa RPI

Kwa kuingiliana kwa mzunguko wa INDICATOR na RPI, pini mbili za GPIO zinapaswa kuwekwa wakfu pamoja na pini mbili za ardhini.

Hakuna mahitaji maalum ya kuchagua pini za GPIO.

Unaweza kutumia pini yoyote ya GPIO kuunganisha INDICATOR.

Lakini pini zenye waya zinapaswa kuteuliwa kama pembejeo kwa 74LS139 (k.v. A, B) katika mpango wa chatu.

Hatua ya 9: Programu ya Python

Programu ya chatu
Programu ya chatu

Mzunguko ukikamilika, kutengeneza programu ya chatu inahitajika kutumia kazi ya INDICATOR.

Tafadhali rejelea chati ya mtiririko hapo juu kwa undani zaidi juu ya mantiki ya programu.

# - * - kuorodhesha: utf-8 - * -

kuagiza subprocess, ishara, sys

muda wa kuagiza, re

kuagiza RPi. GPIO kama g

A = 12

B = 16

g.setmode (g. BCM)

kuanzisha. (A, g. OUT)

g kuanzisha (B, g. OUT)

##

def signal_handler (sig, fremu):

chapisha ('Umebonyeza Ctrl + C!')

g. Pato (A, Uongo)

g. pato (B, Uongo)

f. karibu ()

tembea (0)

ishara.saini (ishara. SIGINT, signal_handler)

##

wakati Kweli:

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

temp_str = subprocess.check_output ('/ opt / vc / bin / vcgencmd kipimo_temp', ganda = Kweli)

temp_str = temp_str.decode (encoding = 'UTF-8', makosa = 'kali')

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

# kutoa joto la sasa la CPU

sasa_temp = kuelea (CPU_temp [0])

ikiwa sasa_temp> 30 na sasa_temp <40:

# joto chini A = 0, B = 0

g. Pato (A, Uongo)

g. pato (B, Uongo)

saa. kulala (5)

elif current_temp> = 40 na sasa_temp <45:

# joto kati A = 0, B = 1

g. Pato (A, Uongo)

g. Pato (B, Kweli)

saa. kulala (5)

elif current_temp> = 45 na sasa_temp <50:

# joto la juu A = 1, B = 0

g. pato (A, Kweli)

g. pato (B, Uongo)

saa. kulala (5)

elif ya sasa_temp> = 50:

# CPU baridi inahitajika juu A = 1, B = 1

g. pato (A, Kweli)

g. Pato (B, Kweli)

saa. kulala (5)

wakati_wa sasa = wakati. wakati ()

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

f. andika (str (formated_time) + '\ t' + str (sasa_temp) + '\ n')

f. karibu ()

Kazi kuu ya mpango wa chatu ni kama ilivyo hapo chini.

- Kwanza kuweka GPIO 12, 16 kama bandari ya pato

- Kufafanua Ctrl + C usumbue kidhibiti kwa kufunga faili ya logi na uzime GPIO 12, 16

- Unapoingia kwa kitanzi kisicho na mwisho, fungua faili ya kumbukumbu kama hali ya kuongeza

- Soma joto la CPU kwa kutekeleza amri ya "/ opt / vc / bin / vcgencmd measure_temp"

- Wakati joto liko katika kiwango cha 30 ~ 39 kisha pato 00 kuwasha LED ya Kijani

- Wakati joto liko katika kiwango cha 40 ~ 44 kisha pato 01 kuwasha LED ya Njano

- Wakati joto liko katika kiwango cha 45 ~ 49 kisha pato la 10 kuwasha LED Nyekundu

- Wakati joto ni zaidi ya 50 basi pato la 11 kufanya Nyekundu ya LED kupepesa

- Andika muda wa stempu na data ya joto kuingia faili

Hatua ya 10: Operesheni ya kiashiria

Operesheni ya kiashiria
Operesheni ya kiashiria

Wakati kila kitu ni sawa, unaweza kuona kila LED ikiwasha au kupepesa kulingana na joto la CPU.

Huna haja ya kuingiza amri ya ganda kuangalia joto la sasa.

Baada ya kukusanya data kwenye faili ya logi na kutoa data ya maandishi kwenye grafu kwa kutumia Excel, matokeo yanaonyeshwa picha hapo juu.

Wakati wa kutumia mizigo ya juu (Kuendesha Kivinjari cha Midori mbili na kucheza video ya Youtube), joto la CPU limeongezeka hadi 57.9C.

Hatua ya 11: Uundaji Mbadala (Kutumia NPN Transistor) na Maendeleo zaidi

Uundaji Mbadala (Kutumia NPN Transistor) na Maendeleo zaidi
Uundaji Mbadala (Kutumia NPN Transistor) na Maendeleo zaidi

Huu ni mfano wa mradi uliopita wa INDICATOR unaotumia transistors za NPN (2N3904 na BD139).

Kama unaweza kuona IC moja zaidi (74HC04, Quad invertors) ni muhimu kuendesha transistor ya NPN kwani voltage ya kiwango cha juu inapaswa kutumika kwa msingi wa NPN kuwasha transistor.

Kama muhtasari, kutumia transistor ya NPN ongeza ugumu usiohitajika ili kufanya mzunguko wa INDICATOR.

Kwa maendeleo zaidi ya mradi huu, nitaongeza shabiki wa kupoza kama inavyoonyeshwa kwenye picha hapo juu kwa kufanya mzunguko wa INDICATOR uwe muhimu zaidi.

Ilipendekeza: