Obsah:

Indikátor teploty procesora Raspberry Pi: 11 krokov (s obrázkami)
Indikátor teploty procesora Raspberry Pi: 11 krokov (s obrázkami)

Video: Indikátor teploty procesora Raspberry Pi: 11 krokov (s obrázkami)

Video: Indikátor teploty procesora Raspberry Pi: 11 krokov (s obrázkami)
Video: Микрокомпьютер Raspberry Pi 3 b+ / Не запускается 2024, November
Anonim
Indikátor teploty procesora Raspberry Pi
Indikátor teploty procesora Raspberry Pi

Predtým som predstavil jednoduchý obvod indikátora prevádzkového stavu Raspberry Pi (ďalej len RPI).

Dnes vysvetlím niekoľko užitočnejších indikačných obvodov pre RPI bežiacich bezhlavým spôsobom (bez monitora).

Vyššie uvedený obvod zobrazuje teplotu procesora v 4 rôznych úrovniach, ako napríklad:

- Zelená LED dióda sa rozsvieti, keď je teplota CPU v rozmedzí 30 ~ 39 stupňov

- Žltá LED dióda indikuje zvýšenie teploty v rozsahu 40 až 45 stupňov

- 3. červená LED dióda ukazuje, že procesor je trochu horúci, keď dosiahol 46 ~ 49 stupňov

- Ďalšia červená LED dióda začne blikať, keď teplota prekročí 50 stupňov

Vyššie uvedené teplotné rozsahy CPU sú mojím osobným návrhovým konceptom (Ostatné teplotné rozsahy je možné nakonfigurovať zmenou testovacích podmienok programu python, ktorý riadi tento obvod).

Použitím tohto obvodu nemusíte nevyhnutne vykonávať príkaz „vcgencmd measure_temp“často na konzolovom termináli.

Tento obvod bude nepretržite a pohodlne informovať o aktuálnej teplote CPU.

Krok 1: Príprava schém

Príprava schém
Príprava schém

Aj keď môžete ovládať 4 diódy LED priamo pomocou iba kódov pythonu, logika riadenia programu načíta RPI a v dôsledku toho sa teplota procesora zvýši viac, pretože by ste mali nepretržite spúšťať trochu zložitejší kód pythonu.

Preto minimalizujem čo najjednoduchšiu zložitosť kódu pythonu a vykladám logiku riadenia LED do externého hardvérového obvodu.

Obvod indikátora teploty CPU (ďalej len INICATOR) pozostáva z nasledujúcich hlavných častí.

-K pinom RPI GPIO sú pripojené dva optočleny, aby sa získali údaje o teplote, napríklad 00-> LOW, 01-> Medium, 10-> High, 11-> Need chlazení.

-74LS139 (alebo 74HC139, 2-to-4 dekodér a de-multiplexor) riadiace výstupy (Y0, Y1, Y2, Y3) podľa vstupov (A, B)

- Keď je teplota v rozmedzí 30 až 39 stupňov, výstup kódu pythonu 00 na kolíky GPIO. Preto 74LS139 získa vstupné údaje 00 (A-> 0, B-> 0)

- Keď je zadaná 00, výstup Y0 sa zmení na NÍZKU. (Pozrite si tabuľku pravdy 74LS139)

- Keď je výstup Y0 NÍZKY, aktivuje sa tranzistor 2N3906 PNP a v dôsledku toho sa rozsvieti zelená LED dióda

- Rovnako tak Y1 (01 -> médium teploty CPU) rozsvieti žltú diódu LED atď

- Keď sa Y3 zmení na NÍZKU, DB140 aktivuje LED blikajúci obvod NE555 (to je bežný LED blinker na báze 555 IC), čo je záťaž tranzistora BD140 PNP

Najdôležitejšou súčasťou tohto obvodu je 74LS139, ktorý dekóduje dvojciferný vstup do 4 rôznych jednotlivých výstupov, ako je uvedené v tabuľke pravdy nižšie.

Vstup | Výkon

G (Povoliť) | 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 |

Keď sa výstup 74LS139 stane NÍZKY, tranzistor typu PNP môže celkový obvod zjednodušiť, pretože tranzistor PNP sa zapne, keď sa svorka základne stane NÍZKOU. (Verziu NPN ukážem na konci tohto príbehu)

Pretože do okruhu LED blinkrov NE555 je zahrnutý potenciometer 100 K, čas zapnutia/vypnutia červenej LED diódy je možné voľne nastaviť podľa potrieb.

Krok 2: Vytvorenie kresby DPS

Výroba kresby DPS
Výroba kresby DPS

Keď je vysvetlená prevádzková schéma INDIKÁTORA, začnime vytvárať obvod.

Pred spájkovaním niečoho na univerzálnu dosku pomôže príprava výkresu plošného spoja uvedeného vyššie minimalizovať chyby.

Výkres je urobený pomocou power-pointu na lokalizáciu každej časti na univerzálnej doske a vytvorenia schém zapojenia medzi časťami s drôtmi.

Pretože obrazy vývodov IC a tranzistorov sú umiestnené spoločne so vzorom zapojenia DPS, spájkovanie je možné vykonať pomocou tohto obrázku.

Krok 3: Spájkovanie

Spájkovanie
Spájkovanie

Napriek tomu, že pôvodný výkres plošných spojov je vyrobený tak, že na pripojenie komponentov na doske plošných spojov sa nepoužívajú jednotlivé vodiče, spájkujem trochu inak.

Použitím jedného vodiča vodičov (nie cínového drôtu) sa pokúšam zmenšiť univerzálnu veľkosť dosky plošných spojov, ktorá obsahuje obvod INDIKÁTORA.

Ale ako vidíte na spájkovacej strane DPS, používam cínový drôt aj podľa vzorov znázornených na výkrese DPS.

Keď je každý komponent zapojený podľa pôvodného návrhu výkresu DPS, spájkovanie dokončenej dosky DPS vrátane obvodu INDIKÁTORA bude fungovať správne.

Krok 4: Príprava na testovanie

Príprava na testovanie
Príprava na testovanie

Pred pripojením RPI vyžaduje dokončený obvod testovanie.

Pretože môžu existovať akékoľvek chyby pri spájkovaní, dodávateľ napájania jednosmerným prúdom sa používa na zabránenie poškodenia v prípade skratov alebo nesprávneho zapojenia.

Na testovanie INDIKÁTORA sú dva ďalšie napájacie káble pripojené k 5V konektoru napájania obvodu.

Krok 5: Testovanie (teplota CPU je stredná úroveň)

Testovanie (teplota CPU je stredná úroveň)
Testovanie (teplota CPU je stredná úroveň)

Ak nie je zapojený žiadny vstup 5 V, potom dekódovací vstup 74LS139 a aktivačný výstup Y0 ako NÍZKY (zelená LED dióda svieti).

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

Preto sa rozsvieti žltá dióda LED, ako je znázornené na obrázku vyššie.

Krok 6: Testovanie (CPU potrebuje chladiaci stupeň)

Testovanie (CPU potrebuje chladiaci stupeň)
Testovanie (CPU potrebuje chladiaci stupeň)

Keď je na 5V zapojený obidva vstupy (A a B) 74LS139, 4. červená LED dióda bliká.

Rýchlosť blikania je možné zmeniť nastavením 100K VR, ako je znázornené na obrázku vyššie.

Po dokončení testovania je možné odpojiť dva 3 -kolíkové káble Molex.

Krok 7: Napájanie obvodu INDIKÁTORA

Napájanie obvodu INDIKÁTORA
Napájanie obvodu INDIKÁTORA

Na napájanie obvodu INDIKÁTORA používam bežnú nabíjačku pre telefón, ktorá napája 5 V a adaptér USB typu B, ako je znázornené na obrázku vyššie.

Aby sa predišlo problémom s RPI pripojením obvodu 3.3 V GPIO a 5 V napájaného INDIKÁTORA, sú signálové rozhranie a napájanie navzájom úplne izolované.

Krok 8: Zapojenie RPI

RPI zapojenie
RPI zapojenie

Na prepojenie obvodu INDIKÁTORA s RPI by mali byť vyhradené dva piny GPIO spolu s dvoma uzemňovacími kolíkmi.

Neexistujú žiadne konkrétne požiadavky na výber pinov GPIO.

Na pripojenie INDIKÁTORA môžete použiť akékoľvek piny GPIO.

Káblové piny by však mali byť v programe python určené ako vstupy do 74LS139 (napr. A, B).

Krok 9: Program Python

Program Python
Program Python

Keď je obvod dokončený, na použitie funkcie INDIKÁTOR je potrebný program Python.

Podrobnejšie informácie o logike programu nájdete v postupovom grafe vyššie.

#-*-kódovanie: utf-8-*-

importný podproces, signál, sys

čas importu, re

importujte RPi. GPIO ako g

A = 12

B = 16

g.setmode (g. BCM)

g.setup (A, g. OUT)

g.setup (B, g. OUT)

##

def signal_handler (sig, rámec):

vytlačiť ('Stlačili ste Ctrl+C!')

g.výstup (A, nepravda)

g.výstup (B, False)

f.close ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

kým je pravda:

f = otvorené ('/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', errors = 'strict')

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

# extrahovanie aktuálnej teploty CPU

current_temp = float (CPU_temp [0])

ak current_temp> 30 a current_temp <40:

# nízka teplota A = 0, B = 0

g.výstup (A, nepravda)

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, nepravda)

g.výstup (B, True)

time.sleep (5)

elif current_temp> = 45 a current_temp <50:

# vysoká teplota A = 1, B = 0

g.výstup (A, pravda)

g.výstup (B, False)

time.sleep (5)

elif current_temp> = 50:

# Vyžaduje sa chladenie CPU vysoké A = 1, B = 1

g.výstup (A, pravda)

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á funkcia programu python je nasledovná.

- Najprv nastavte GPIO 12, 16 ako výstupný port

- Definovanie obsluhy prerušenia Ctrl+C na zatvorenie súboru denníka a vypnutie GPIO 12, 16

- Keď vstúpite do nekonečnej slučky, otvorte súbor denníka ako režim pripojenia

- Prečítajte si teplotu CPU spustením príkazu „/opt/vc/bin/vcgencmd Measure_temp“

- Keď je teplota v rozsahu 30 ~ 39, potom výstup 00 rozsvieti zelenú LED

- Keď je teplota v rozsahu 40 ~ 44, potom výstup 01 rozsvieti žltú LED

- Keď je teplota v rozsahu 45 ~ 49, potom na výstupe 10 zapnite červenú LED diódu

- Keď je teplota vyššia ako 50, potom na výstupe 11 začne červená LED blikať

- Zapíšte časové údaje a údaje o teplote do súboru denníka

Krok 10: Prevádzka INDIKÁTORA

Prevádzka INDIKÁTORA
Prevádzka INDIKÁTORA

Keď je všetko v poriadku, môžete vidieť, že každá LED dióda svieti alebo bliká podľa teploty CPU.

Na kontrolu aktuálnej teploty nemusíte zadávať príkaz shell.

Po zhromaždení údajov v súbore denníka a vykreslení textových údajov do grafu pomocou programu Excel je výsledok zobrazený na obrázku vyššie.

Pri použití vysokého zaťaženia (spustenie dvoch prehliadačov Midori a prehrávanie videa z YouTube) teplota procesora stúpne až na 57,9 ° C.

Krok 11: Alternatívna výroba (pomocou tranzistora NPN) a ďalší vývoj

Alternatívna výroba (pomocou tranzistora NPN) a ďalší vývoj
Alternatívna výroba (pomocou tranzistora NPN) a ďalší vývoj

Toto je predchádzajúci príklad projektu INDICATOR využívajúci tranzistory NPN (2N3904 a BD139).

Ako vidíte, na pohon tranzistora NPN je potrebný ešte jeden integrovaný obvod (74HC04, Quad invertory), pretože na zapnutie tranzistora by malo byť na základňu NPN aplikované VYSOKÉ napätie.

Stručne povedané, použitie tranzistora NPN zvyšuje zbytočnosť na vytváranie obvodu INDIKÁTORA.

Pre ďalší rozvoj tohto projektu pridám chladiaci ventilátor, ako je znázornené na obrázku vyššie, aby bol obvod INDIKÁTORU užitočnejší.

Odporúča: