Obsah:
- Krok 1: Príprava schém
- Krok 2: Vytvorenie kresby DPS
- Krok 3: Spájkovanie
- Krok 4: Príprava na testovanie
- Krok 5: Testovanie (teplota CPU je stredná úroveň)
- Krok 6: Testovanie (CPU potrebuje chladiaci stupeň)
- Krok 7: Napájanie obvodu INDIKÁTORA
- Krok 8: Zapojenie RPI
- Krok 9: Program Python
- Krok 10: Prevádzka INDIKÁTORA
- Krok 11: Alternatívna výroba (pomocou tranzistora NPN) a ďalší vývoj
Video: Indikátor teploty procesora Raspberry Pi: 11 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
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
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
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
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
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ň)
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ň)
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
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
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
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
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
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:
Indikátor zaťaženia procesora Raspberry Pi: 13 krokov
Indikátor zaťaženia procesora Raspberry Pi: Keď beží Raspberry Pi (RPI) ako bezhlavý bez monitora konzoly, nie sú k dispozícii žiadne konkrétne vizuálne indikácie, ktoré by rozpoznali, že RPI v skutočnosti niečo robí. Napriek tomu, že sa s SSH používa vzdialený terminál, čas od času vykonanie príkazu Linux
Indikátor teploty a vlhkosti Arduino: 7 krokov (s obrázkami)
Indikátor teploty a vlhkosti od spoločnosti Arduino: Tento návod ukáže, ako vytvoriť box, ktorý môže pomocou Arduina indikovať teplotu a vlhkosť. Tento box môžete položiť na stôl na meranie teploty a vlhkosti vo vašej miestnosti. Vďaka vysokej kvalite MDF boxu rezaného laserom je každá vec zhutnený pre
Meranie teploty pomocou snímača teploty LM35 s Arduino Uno: 4 kroky
Čítanie teploty pomocou snímača teploty LM35 s Arduino Uno: Ahoj chlapci, v tomto návode sa naučíme používať LM35 s Arduino. Lm35 je teplotný senzor, ktorý dokáže čítať hodnoty teploty od -55 ° C do 150 ° C. Jedná sa o 3-terminálne zariadenie, ktoré poskytuje analógové napätie úmerné teplote. Hig
Indikátor teploty RGB (s XinaBoxom): 5 krokov (s obrázkami)
Indikátor teploty RGB (s XinaBoxom): Toto je oficiálne môj prvý článok Instructables, takže priznávam, že práve teraz využívam túto príležitosť na vyskúšanie. Získajte prehľad o tom, ako platforma funguje, o celej stránke používateľských skúseností. Ale keď to robím, zistil som, že môžem
Iron Man Reactor for Fun (joystick digitálneho pohybového procesora): 7 krokov (s obrázkami)
Iron Man Reactor for Fun (joystick s digitálnym pohybovým procesorom): Ahoj milí! Toto je moja prvá inštrukcia, takže dúfajte vo vašu priazeň a spätnú väzbu! Projekt je interaktívnou platformou pre domáce párty, súťaže, akcie - len tak pre zábavu. Ide o dva snímače pohybu vyrobené v konštrukcii železného reaktora.