Obsah:

Indikátor teploty procesoru Raspberry Pi: 11 kroků (s obrázky)
Indikátor teploty procesoru Raspberry Pi: 11 kroků (s obrázky)

Video: Indikátor teploty procesoru Raspberry Pi: 11 kroků (s obrázky)

Video: Indikátor teploty procesoru Raspberry Pi: 11 kroků (s obrázky)
Video: ПК внутри клавиатуры! Обзор Raspberry Pi 400 за $70 2024, Červenec
Anonim
Indikátor teploty procesoru Raspberry Pi
Indikátor teploty procesoru Raspberry Pi

Dříve jsem zavedl jednoduchý obvod indikátoru provozního stavu Raspberry Pi (dále jen RPI).

Tentokrát vysvětlím některé užitečnější indikační obvody pro RPI běžící bezhlavě (bez monitoru).

Výše uvedený obvod ukazuje teplotu CPU na 4 různých úrovních, jako například:

- Zelená LED se rozsvítí, když je teplota CPU v rozmezí 30 ~ 39 stupňů

- Žlutá LED indikuje zvýšení teploty v rozsahu 40 až 45 stupňů

- 3. červená LED dioda ukazuje, že CPU se trochu zahřívá, když dosáhne 46 ~ 49 stupňů

- Další červená LED bliká, když teplota překročí 50 stupňů

Výše uvedené teplotní rozsahy CPU jsou mým osobním návrhovým konceptem (Jiné teplotní rozsahy lze konfigurovat změnou testovacích podmínek programu python, který řídí tento obvod).

Použitím tohoto obvodu nemusíte nutně často provádět příkaz „vcgencmd Measure_temp“na konzolovém terminálu.

Tento obvod bude průběžně a pohodlně informovat o aktuální teplotě CPU.

Krok 1: Příprava schémat

Příprava schémat
Příprava schémat

Přestože můžete 4 LED diody ovládat přímo pomocí pouze kódů pythonu, řídicí logika programu načte RPI a v důsledku toho se teplota procesoru zvýší více, protože byste měli nepřetržitě spouštět trochu složitější kód pythonu.

Proto minimalizuji co nejjednodušší složitost kódu pythonu a vykládám logiku ovládání LED na externí hardwarový obvod.

Obvod indikátoru teploty CPU (dále jen INICATOR) se skládá z následujících hlavních částí.

-K pinům RPI GPIO jsou připojeny dva optočleny, které získávají údaje o teplotě, například 00-> LOW, 01-> Medium, 10-> High, 11-> Need chlazení.

-74LS139 (nebo 74HC139, 2-to-4 dekodér a de-multiplexer) řídící výstupy (Y0, Y1, Y2, Y3) podle vstupů (A, B)

- Když je teplota v rozmezí 30 ~ 39 stupňů, výstup kódu pythonu 00 na piny GPIO. Proto 74LS139 získá vstupní data 00 (A-> 0, B-> 0)

- Když je zadáno 00, výstup Y0 se změní na NÍZKÝ. (Viz tabulka pravdivosti 74LS139)

- Když se výstup Y0 stane NÍZKÝ, aktivuje se tranzistor 2N3906 PNP a v důsledku toho se rozsvítí zelená LED

- Podobně Y1 (01 -> teplotní médium CPU) rozsvítí žlutou LED a tak dále

- Když se Y3 změní na NÍZKOU, DB140 aktivuje blikající obvod LED NE555 LED (toto je běžný LED blinkr na bázi 555 IC), což je zátěž tranzistoru BD140 PNP

Nejdůležitější součástí tohoto obvodu je 74LS139, který dekóduje 2místný vstup na 4 různé jednotlivé výstupy, jak je uvedeno v tabulce pravdivosti níže.

Vstup | Výstup

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

Jak se výstup 74LS139 stává LOW, tranzistor typu PNP může celý obvod zjednodušit, protože tranzistor PNP se zapne, když se svorka základny stane LOW. (Verzi NPN ukážu na konci tohoto příběhu)

Jelikož je do obvodu LED blinkru NE555 zahrnut potenciometr 100K, lze dobu zapnutí/vypnutí červené LED libovolně upravit podle potřeb.

Krok 2: Vytvoření kresby DPS

Vytváření kresby DPS
Vytváření kresby DPS

Když je vysvětleno provozní schéma INDIKÁTORU, začněme vytvářet obvod.

Před pájením něčeho na univerzální desku pomůže příprava výkresu DPS ukázaného výše minimalizovat případné chyby.

Výkres je vytvořen pomocí power-pointu k vyhledání každé části na univerzální desce a vytvoření schémat zapojení mezi částmi s dráty.

Vzhledem k tomu, že obrazy vývodů IC a tranzistorů jsou umístěny společně se vzorem zapojení desky plošných spojů, lze pájení provést pomocí tohoto výkresu.

Krok 3: Pájení

Pájení
Pájení

Ačkoli původní kresba DPS je vyrobena bez použití jednotlivých vodičů pro připojení součástek na DPS, pájím trochu jinak.

Použitím jednoho vodiče vodičů (ne cínového drátu) se snažím zmenšit univerzální velikost DPS, která obsahuje obvod INDIKÁTOR.

Ale jak vidíte na straně pájení PCB, používám cínový drát také podle vzorů znázorněných na výkrese PCB.

Když je každý komponent připojen podle původního návrhu výkresu DPS, pájení dokončené desky DPS včetně obvodu INDIKÁTORU bude fungovat správně.

Krok 4: Příprava na testování

Příprava na testování
Příprava na testování

Před připojením RPI vyžaduje hotový obvod testování.

Protože mohou existovat jakékoli chyby při pájení, dodavatel stejnosměrného proudu se používá k prevenci poškození v případě zkratů nebo nesprávného zapojení.

Pro testování INDIKÁTORU jsou ke konektoru napájení 5 V obvodu připojeny dva další napájecí kabely.

Krok 5: Testování (teplota procesoru je střední úroveň)

Testování (teplota procesoru je střední úroveň)
Testování (teplota procesoru je střední úroveň)

Pokud není použit žádný vstup 5V, pak dekódovací vstup 74LS139 a aktivační výstup Y0 jako NÍZKÝ (zelená LED svítí).

Ale 5V aplikované na vstup A, výstup Y1 74LS139 aktivující (LOW).

Žlutá LED se proto rozsvítí, jak je znázorněno na obrázku výše.

Krok 6: Testování (CPU potřebuje chladicí úroveň)

Testování (Úroveň chlazení chlazení CPU)
Testování (Úroveň chlazení chlazení CPU)

Když 5V použije oba vstupy (A a B) 74LS139, 4. červená LED bliká.

Rychlost blikání lze změnit nastavením 100K VR, jak je znázorněno na obrázku výše.

Po dokončení testování lze odebrat dva 3kolíkové samičí kabely Molex.

Krok 7: Napájení obvodu INDIKÁTORU

Napájení obvodu INDIKÁTORU
Napájení obvodu INDIKÁTORU

K napájení obvodu INDIKÁTORU používám běžnou nabíječku do ruky, která má výstup 5 V a USB adaptér typu B, jak je znázorněno na obrázku výše.

Aby se předešlo problémům s RPI připojením 3,3 V GPIO a 5 V napájeného obvodu INDIKÁTOR, jsou signálové rozhraní a napájecí zdroje navzájem zcela izolované.

Krok 8: Zapojení RPI

RPI zapojení
RPI zapojení

Pro propojení obvodu INDIKÁTORU s RPI by měly být vyhrazeny dva GPIO piny spolu se dvěma zemními piny.

Neexistuje žádný konkrétní požadavek na výběr pinů GPIO.

K připojení INDIKÁTORU můžete použít jakékoli GPIO piny.

Ale drátové piny by měly být označeny jako vstupy pro 74LS139 (např. A, B) v programu python.

Krok 9: Program Python

Program Python
Program Python

Když je obvod dokončen, je k použití funkce INDICATOR zapotřebí program Python.

Bližší informace o logice programu naleznete výše ve vývojovém diagramu.

#-*-kódování: utf-8-*-

importní podproces, signál, sys

čas importu, re

importujte RPi. GPIO jako g

A = 12

B = 16

g.setmode (g. BCM)

g.setup (A, g. OUT)

g.setup (B, g. OUT)

##

def signal_handler (sig, frame):

tisk ('Stiskli jste Ctrl+C!')

g. výstup (A, False)

g. výstup (B, False)

f.close ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

zatímco pravda:

f = otevřeno ('/home/pi/My_project/CPU_temperature_log.txt', 'a+')

temp_str = subprocess.check_output ('/opt/vc/bin/vcgencmd opatření_temp', shell = True)

temp_str = temp_str.decode (encoding = 'UTF-8', errors = 'strict')

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

# extrahování aktuální teploty CPU

current_temp = float (CPU_temp [0])

pokud current_temp> 30 a current_temp <40:

# nízká teplota A = 0, B = 0

g. výstup (A, False)

g. výstup (B, False)

time.sleep (5)

elif current_temp> = 40 a current_temp <45:

# teplotní médium A = 0, B = 1

g. výstup (A, False)

g. výstup (B, True)

time.sleep (5)

elif current_temp> = 45 a current_temp <50:

# teplota vysoká A = 1, B = 0

g. výstup (A, True)

g. výstup (B, False)

time.sleep (5)

elif current_temp> = 50:

# Je vyžadováno chlazení CPU vysoké A = 1, B = 1

g. výstup (A, True)

g. výstup (B, True)

time.sleep (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 ()

Hlavní funkce programu python je níže.

- Nejprve nastavte GPIO 12, 16 jako výstupní port

- Definování obsluhy přerušení Ctrl+C pro zavření souboru protokolu a vypnutí GPIO 12, 16

- Při vstupu do nekonečné smyčky otevřete soubor protokolu jako režim připojení

- Odečtěte teplotu CPU spuštěním příkazu „/opt/vc/bin/vcgencmd Measure_temp“

- Když je teplota v rozsahu 30 ~ 39, pak výstup 00 rozsvítí zelenou LED

- Když je teplota v rozsahu 40 ~ 44, pak výstup 01 rozsvítí žlutou LED

- Když je teplota v rozsahu 45 ~ 49, pak výstup 10 rozsvítí červenou LED

- Je -li teplota vyšší než 50, pak se na výstupu 11 rozsvítí červená LED dioda

- Zapište si do souboru protokolu časové razítko a údaje o teplotě

Krok 10: Provoz INDIKÁTORU

Provoz INDIKÁTORU
Provoz INDIKÁTORU

Když je vše v pořádku, můžete vidět, že každá LED svítí nebo bliká podle teploty CPU.

Ke kontrole aktuální teploty nemusíte zadávat příkazy shellu.

Po shromáždění dat v souboru protokolu a vykreslení textových dat do grafu pomocí aplikace Excel je výsledek zobrazen na obrázku výše.

Při použití vysoké zátěže (spuštění dvou prohlížečů Midori a přehrávání videa z YouTube) se teplota procesoru zvýší až na 57,9 ° C.

Krok 11: Alternativní tvorba (pomocí NPN tranzistoru) a další vývoj

Alternativní výroba (pomocí NPN tranzistoru) a další vývoj
Alternativní výroba (pomocí NPN tranzistoru) a další vývoj

Toto je předchozí příklad projektu INDICATOR využívající tranzistory NPN (2N3904 a BD139).

Jak vidíte, k ovládání tranzistoru NPN je zapotřebí ještě jeden IC (74HC04, Quad invertory), protože k zapnutí tranzistoru by mělo být na základnu NPN aplikováno VYSOKÉ napětí.

Stručně řečeno, použití tranzistoru NPN přidává zbytečnou složitost k vytvoření obvodu INDICATOR.

Pro další vývoj tohoto projektu přidám chladicí ventilátor, jak je znázorněno na obrázku výše, aby byl obvod INDIKÁTORU užitečnější.

Doporučuje: