Talaan ng mga Nilalaman:

Tagapagpahiwatig ng Temperatura ng Raspberry Pi CPU: 11 Mga Hakbang (na may Mga Larawan)
Tagapagpahiwatig ng Temperatura ng Raspberry Pi CPU: 11 Mga Hakbang (na may Mga Larawan)

Video: Tagapagpahiwatig ng Temperatura ng Raspberry Pi CPU: 11 Mga Hakbang (na may Mga Larawan)

Video: Tagapagpahiwatig ng Temperatura ng Raspberry Pi CPU: 11 Mga Hakbang (na may Mga Larawan)
Video: ВСЯ НОЧЬ С ПОЛТЕРГЕЙСТОМ В ЖИЛОМ ДОМЕ, я заснял жуткую активность. 2024, Hulyo
Anonim
Tagapagpahiwatig ng Temperatura ng Raspberry Pi CPU
Tagapagpahiwatig ng Temperatura ng Raspberry Pi CPU

Dati ipinakilala ko ang simpleng raspberry pi (Hereinafter as RPI) na pagpapatakbo ng circuit ng tagapagpahiwatig ng katayuan.

Sa oras na ito, ipapaliwanag ko ang ilang mas kapaki-pakinabang na circuit ng tagapagpahiwatig para sa RPI na tumatakbo bilang walang ulo (nang walang monitor) na paraan.

Ipinapakita ng circuit sa itaas ang temperatura ng CPU sa 4 na magkakaibang mga antas tulad ng:

- Naka-on ang Green LED kapag ang temperatura ng CPU ay nasa loob ng 30 ~ 39 degree

- Ipinapahiwatig ng Dilaw na LED ang temperatura ay nadagdagan sa saklaw na 40 hanggang 45 degree

- Ipinapakita ng ika-3 Pula na LED ang CPU na medyo naging mainit sa pamamagitan ng pag-abot sa 46 ~ 49 degree

- Ang isa pang Red LED ay magpapikit kapag ang temperatura ay lumalagpas sa higit sa 50 degree

Ang mga saklaw sa temperatura ng CPU sa itaas ay ang aking personal na konsepto ng disenyo (Ang iba pang mga saklaw ng temperatura ay maaaring mai-configure sa pamamagitan ng pagbabago ng mga kundisyon ng pagsubok ng python program na kinokontrol ang circuit na ito).

Sa pamamagitan ng paggamit ng circuit na ito, hindi mo kinakailangang isinasagawa ang "vcgencmd measure_temp" na utos ng madalas sa terminal ng console.

Ang circuit na ito ay dapat ipaalam sa kasalukuyang temperatura ng CPU na tuloy-tuloy at maginhawa.

Hakbang 1: Paghahanda ng Skema

Paghahanda ng Skema
Paghahanda ng Skema

Bagaman maaari mong kontrolin ang 4 na LED nang direkta sa pamamagitan ng paggamit lamang ng mga code ng sawa, ang mga lohika ng kontrol ng programa ay maglo-load ng RPI at bilang isang resulta, ang temperatura ng CPU ay mas tataas dahil dapat mong patuloy na magpatakbo ng isang maliit na kumplikadong python code.

Samakatuwid, binabawasan ko ang pagiging kumplikado ng code ng python nang simple hangga't maaari at off-loading na LED control logic sa panlabas na circuit ng hardware.

Ang tagapagpahiwatig ng temperatura ng CPU (Hereinafter INICATOR) circuit ay binubuo ng mga sumusunod na pangunahing bahagi.

- Dalawang opto-coupler ay nakakonekta sa RPI GPIO pin upang makakuha ng data sa antas ng temperatura tulad ng 00-> LOW, 01-> Medium, 10-> Mataas, 11-> Kailangan ng paglamig.

- 74LS139 (o 74HC139, 2-to-4 decoder at de-multiplexer) na output na kontrol (Y0, Y1, Y2, Y3) alinsunod sa mga input (A, B)

- Kapag ang temperatura ay nasa loob ng 30 ~ 39 degree, output ng python code 00 sa mga GPIO pin. Samakatuwid, 74LS139 makakuha ng input data 00 (A-> 0, B-> 0)

- Bilang ng ipinasok na 00, magiging mababa ang output ng Y0. (Mangyaring mag-refer sa talahanayan ng katotohanan ng 74LS139)

- Kapag naging mababa ang output ng Y0, pinapagana nito ang 2N3906 PNP transistor at bilang isang resulta, naka-on ang Green LED

- Gayundin, ang Y1 (01 -> medium na temperatura ng CPU) ay dapat i-on ang Yellow LED at iba pa

- Kapag naging Mababa ang Y3, inaaktibo ng DB140 ang NE555 LED blinking circuit (ito ay karaniwang 555 IC based LED blinker) na kung saan ay naglo-load ng BD140 PNP transistor

Ang pinakamahalagang sangkap ng circuit na ito ay 74LS139 na kung saan ang pag-decode ng 2 digit na input sa 4 na magkakaibang solong output tulad ng ipinakita sa talahanayan ng katotohanan sa ibaba.

Input | Paglabas

G (Paganahin) | 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 |

Tulad ng 74LS139 output ay naging LOW, ang uri ng transistor ng PNP ay maaaring gawing simple ang pangkalahatang circuit habang ang PNP transistor ay nakabukas kapag ang base terminal ay naging LOW. (Ipapakita ko ang bersyon ng NPN sa pagtatapos ng kuwentong ito)

Tulad ng 100K potentiometer ay kasama sa NE555 LED blinker circuit, ang oras ng Red LED ON / OFF ay maaaring malayang ayusin ayon sa mga pangangailangan.

Hakbang 2: Paggawa ng pagguhit ng PCB

Paggawa ng pagguhit ng PCB
Paggawa ng pagguhit ng PCB

Tulad ng ipinaliwanag na operating scheme ng INDICATOR, magsimula tayong gumawa ng circuit.

Bago maghinang ng isang bagay sa pangkalahatang board, ang paghahanda ng pagguhit ng PCB na ipinakita sa itaas ay kapaki-pakinabang upang mabawasan ang anumang mga pagkakamali.

Ang pagguhit ay ginawa sa pamamagitan ng paggamit ng power-point upang hanapin ang bawat bahagi sa unibersal na board at paggawa ng mga pattern ng mga kable sa mga bahagi na may mga wire.

Tulad ng mga imahe ng IC at transistor pin-out na magkasama na matatagpuan kasama ang pattern ng mga kable ng PCB, maaaring maisagawa ang paghihinang gamit ang pagguhit na ito.

Hakbang 3: Paghihinang

Paghihinang
Paghihinang

Bagaman ang orihinal na pagguhit ng PCB ay ginawa na hindi gumagamit ng solong mga wire upang ikonekta ang mga bahagi sa PCB, medyo nag-iiba ako.

Sa pamamagitan ng paggamit ng solong conductor ng mga wires (hindi tin wire), sinusubukan kong bawasan ang pangkalahatang laki ng PCB na naglalaman ng INDICATOR circuit.

Ngunit tulad ng nakikita mo sa bahagi ng paghihinang ng PCB, gumagamit ako ng tin wire na naaayon din sa mga pattern na nakalarawan sa pagguhit ng PCB.

Kapag ang bawat sangkap ay konektado ayon sa orihinal na disenyo ng pagguhit ng PCB, ang soldering na nakumpleto na PCB board kabilang ang INDICATOR circuit ay gagana nang wasto.

Hakbang 4: Paghahanda ng Pagsubok

Paghahanda ng Pagsubok
Paghahanda ng Pagsubok

Bago sa koneksyon sa RPI, ang tapos na circuit ay nangangailangan ng pagsubok.

Tulad ng anumang mga pagkakamali ng paghihinang na maaaring mayroon, ang DC power supplier ay ginagamit para sa pag-iwas sa mga pinsala kapag naganap ang mga shorts o maling mga kable.

Para sa pagsubok ng INDICATOR, dalawang karagdagang mga power supply cable ay konektado sa 5V power supply konektor ng circuit.

Hakbang 5: Pagsubok (Ang Temperatura ng CPU Ay Katamtamang Antas)

Pagsubok (Ang Temperatura ng CPU Ay Katamtamang Antas)
Pagsubok (Ang Temperatura ng CPU Ay Katamtamang Antas)

Kapag walang inilapat na 5V input pagkatapos ay 74LS139 decoding input at paganahin ang output Y0 bilang LOW (Green LED naka-on).

Ngunit inilapat ang 5V sa input A, output Y1 ng 74LS139 na nagpapagana (LOW).

Samakatuwid, ang Yellow LED ay naka-on tulad ng ipinakita sa larawan sa itaas.

Hakbang 6: Pagsubok (Kailangan ng CPU Antas ng Paglamig)

Pagsubok (Kailangan ng CPU Antas ng Paglamig)
Pagsubok (Kailangan ng CPU Antas ng Paglamig)

Kapag inilapat ng 5V ang parehong mga input (A at B) ng 74LS139, kumikislap ang 4th Red LED.

Maaaring mabago ang blinking rate sa pamamagitan ng pag-aayos ng 100K VR tulad ng ipinakita sa larawan sa itaas.

Kapag nakumpleto ang pagsubok, maaaring alisin ang dalawang Molex 3 pin na mga kable na babae.

Hakbang 7: Supply ng Lakas sa INDICATOR Circuit

Power Supply sa INDICATOR Circuit
Power Supply sa INDICATOR Circuit

Para sa pagpapagana ng circuit ng INDICATOR, gumagamit ako ng karaniwang charger ng hand-phone na naglalabas ng 5V at USB type-B adapter tulad ng ipinakita sa larawan sa itaas.

Upang maiwasan ang problema sa RPI sa pamamagitan ng pagkonekta ng 3.3V GPIO at 5V pinalakas na circuit ng INDICATOR, ang interface ng signal at supply ng kuryente ay lubos na nahiwalay sa bawat isa.

Hakbang 8: Mga Kable ng RPI

Mga Kable ng RPI
Mga Kable ng RPI

Para sa interfacing INDICATOR circuit na may RPI, ang dalawang mga GPIO pin ay dapat na nakatuon kasama ang dalawang ground pin.

Walang tiyak na kinakailangan para sa pagpili ng mga GPIO pin.

Maaari mong gamitin ang anumang mga GPIO pin para sa pagkonekta sa INDICATOR.

Ngunit ang mga wired pin ay dapat italaga bilang mga input sa 74LS139 (hal. A, B) sa python program.

Hakbang 9: Program sa Python

Program sa Python
Program sa Python

Bilang circuit ay nakumpleto, ang paggawa ng python program ay kinakailangan upang magamit ang INDICATOR function.

Mangyaring mag-refer sa tsart ng daloy sa itaas para sa karagdagang detalye tungkol sa lohika ng programa.

# - * - coding: utf-8 - * -

i-import ang subprocess, signal, sys

oras ng pag-import, muli

i-import ang RPi. GPIO bilang g

A = 12

B = 16

g.setmode (g. BCM)

g.setup (A, g. OUT)

g.setup (B, g. OUT)

##

def signal_handler (sig, frame):

i-print ('Pinindot mo ang Ctrl + C!')

g.output (A, Mali)

g.output (B, Mali)

f.close ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

habang Totoo:

f = bukas ('/ 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 (encoding = 'UTF-8', mga error = 'mahigpit')

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

# pagkuha ng kasalukuyang temperatura ng CPU

current_temp = float (CPU_temp [0])

kung kasalukuyang_temp> 30 at kasalukuyang_temp <40:

# temperatura mababa A = 0, B = 0

g.output (A, Mali)

g.output (B, Mali)

oras. tulog (5)

elif current_temp> = 40 at kasalukuyang_temp <45:

# temperatura daluyan A = 0, B = 1

g.output (A, Mali)

g.output (B, True)

oras. tulog (5)

elif current_temp> = 45 at kasalukuyang_temp <50:

# temperatura mataas A = 1, B = 0

g.output (A, Totoo)

g.output (B, Mali)

oras. tulog (5)

elif current_temp> = 50:

Ang # CPU paglamig ay kinakailangan mataas A = 1, B = 1

g.output (A, Totoo)

g.output (B, True)

oras. tulog (5)

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 ()

Ang pangunahing pagpapaandar ng programa ng sawa ay tulad sa ibaba.

- Una sa pagtatakda ng GPIO 12, 16 bilang output port

- Ang pagtukoy sa Ctrl + C makagambala handler para sa pagsasara ng log file at i-off ang GPIO 12, 16

- Kapag pumasok sa walang katapusang loop, buksan ang log file bilang append mode

- Basahin ang temperatura ng CPU sa pamamagitan ng pagpapatupad ng "/ opt / vc / bin / vcgencmd measure_temp" na utos

- Kapag ang temperatura ay nasa saklaw na 30 ~ 39 pagkatapos ay output 00 upang i-on ang Green LED

- Kapag ang temperatura ay nasa saklaw na 40 ~ 44 pagkatapos ay output 01 upang i-on ang Yellow LED

- Kapag ang temperatura ay nasa saklaw na 45 ~ 49 pagkatapos ay output 10 upang i-on ang Red LED

- Kapag ang temperatura ay higit sa 50 pagkatapos output 11 upang gumawa ng Red LED blinking

- Sumulat ng time stamp at data ng temperatura upang mag-log file

Hakbang 10: Operasyon ng INDICATOR

INDICATOR Pagpapatakbo
INDICATOR Pagpapatakbo

Kapag ang lahat ay OK, maaari mong makita ang bawat LED ay nakabukas o kumukurap ayon sa temperatura ng CPU.

Hindi mo kailangang ipasok ang shell command upang suriin ang kasalukuyang temperatura.

Matapos ang pagkolekta ng data sa log file at pag-render ng data ng teksto sa grap sa pamamagitan ng paggamit ng Excel, ipinakita ang resulta sa larawan sa itaas.

Kapag naglalapat ng matataas na pag-load (Pagpapatakbo ng dalawang Midori Browser at pag-play ng video sa Youtube), ang temperatura ng CPU ay pataas hanggang 57.9C.

Hakbang 11: Alternatibong Paggawa (Paggamit ng NPN Transistor) at Karagdagang Pag-unlad

Alternatibong Paggawa (Paggamit ng NPN Transistor) at Karagdagang Pag-unlad
Alternatibong Paggawa (Paggamit ng NPN Transistor) at Karagdagang Pag-unlad

Ito ay dating halimbawa ng proyekto ng INDICATOR na gumagamit ng NPN transistors (2N3904 at BD139).

Tulad ng makikita mo ang isa pang IC (74HC04, Quad invertors) ay kinakailangan upang himukin ang NPN transistor dahil ang mataas na boltahe sa antas na dapat ilapat sa base ng NPN upang i-on ang transistor.

Bilang buod, ang paggamit ng NPN transistor ay nagdaragdag ng hindi kinakailangang pagiging kumplikado upang makagawa ng INDICATOR circuit.

Para sa karagdagang pag-unlad ng proyektong ito, magdaragdag ako ng cool fan tulad ng ipinakita sa larawan sa itaas para gawing mas kapaki-pakinabang ang circuit ng INDICATOR.

Inirerekumendang: