Tartalomjegyzék:

Raspberry Pi CPU hőmérséklet kijelző: 11 lépés (képekkel)
Raspberry Pi CPU hőmérséklet kijelző: 11 lépés (képekkel)

Videó: Raspberry Pi CPU hőmérséklet kijelző: 11 lépés (képekkel)

Videó: Raspberry Pi CPU hőmérséklet kijelző: 11 lépés (képekkel)
Videó: #15 - Hogyan tervezzünk meg egy projektet? |Telefonnal irányítható jármű tervezése (1.rész) 2024, Július
Anonim
Raspberry Pi CPU hőmérséklet -jelző
Raspberry Pi CPU hőmérséklet -jelző

Korábban bemutattam az egyszerű málna pi (továbbiakban RPI) működési állapotjelző áramkört.

Ezúttal elmagyarázok néhány hasznos jelzőáramkört az RPI fej nélküli (monitor nélküli) módon történő működéséhez.

A fenti áramkör a CPU hőmérsékletét négy különböző szintre mutatja, például:

- A zöld LED akkor világít, ha a CPU hőmérséklete 30-39 fok

- A sárga LED azt jelzi, hogy a hőmérséklet 40 és 45 fok között emelkedik

- A 3. piros LED azt mutatja, hogy a CPU kissé felmelegszik, elérve a 46-49 fokot

- Egy másik piros LED villog, ha a hőmérséklet meghaladja az 50 fokot

A fenti CPU hőmérsékleti tartományok az én személyes tervezési koncepcióm (Más hőmérsékleti tartományok konfigurálhatók az áramkört vezérlő python program tesztfeltételeinek megváltoztatásával).

Ennek az áramkörnek a használatával nem feltétlenül hajt végre gyakran „vcgencmd intézkedés_temp” parancsot a konzol terminálján.

Ez az áramkör folyamatosan és kényelmesen tájékoztatja a CPU aktuális hőmérsékletét.

1. lépés: A rajzok elkészítése

Sémák készítése
Sémák készítése

Bár 4 LED -et közvetlenül vezérelhet, csak python -kódokat használva, a program vezérlőlogikája betölti az RPI -t, és ennek eredményeképpen a CPU hőmérséklete jobban emelkedik, mert egy kicsit bonyolult python -kódot kell futtatnia.

Ezért a lehető legegyszerűbbre minimalizálom a python kód bonyolultságát, és a LED vezérlő logikát a külső hardver áramkörre helyezem.

A CPU hőmérséklet kijelző (a továbbiakban INICATOR) áramkör a következő fő részekből áll.

-Két optocsatlakozó csatlakozik az RPI GPIO csapokhoz, hogy hőmérsékleti adatokat kapjon, például 00-> LOW, 01-> Medium, 10-> High, 11-> Hűtést igényel.

-74LS139 (vagy 74HC139, 2-4 dekóder és de-multiplexer) vezérlő kimenetek (Y0, Y1, Y2, Y3) a bemeneteknek megfelelően (A, B)

- Ha a hőmérséklet 30 ~ 39 fok, a python kód 00 -at ad ki a GPIO csapokhoz. Ezért a 74LS139 00 bemeneti adatokat kap (A-> 0, B-> 0)

- A 00 megadása után az Y0 kimenet LOW lesz. (Lásd a 74LS139 igazságtáblázatát)

- Ha az Y0 kimenet LOW lesz, akkor aktiválja a 2N3906 PNP tranzisztort, és ennek eredményeként a zöld LED bekapcsol

- Hasonlóképpen, az Y1 (01 -> CPU hőmérsékleti közeg) bekapcsolja a sárga LED -et és így tovább

- Amikor az Y3 alacsony lesz, a DB140 aktiválja az NE555 LED villogó áramkört (ez az általános 555 IC alapú LED villogó), amely BD140 PNP tranzisztor terhelése

Ennek az áramkörnek a legfontosabb alkotóeleme a 74LS139, amely 2 számjegyből álló bemenetet dekódol 4 különböző kimenetre, az alábbi igazságtáblázat szerint.

Bemenet | Kimenet

G (Engedélyezés) | 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 |

Mivel a 74LS139 kimenet LOW értékűvé válik, a PNP típusú tranzisztor egyszerűvé teheti az áramkört, mivel a PNP tranzisztor be van kapcsolva, amikor a bázisállomás LOW lesz. (A történet végén megmutatom az NPN verziót)

Mivel az NE555 LED villogó áramkörhöz 100K potenciométer tartozik, a piros LED BE/KI ideje szabadon állítható az igényeknek megfelelően.

2. lépés: PCB rajz készítése

PCB rajz készítése
PCB rajz készítése

Az INDICATOR működési sémájának magyarázatával kezdjük az áramkör létrehozását.

Mielőtt valamit forrasztana az univerzális táblán, a fent bemutatott NYÁK -rajz elkészítése hasznos a hibák minimalizálása érdekében.

A rajz a power-point használatával készül, hogy megkeressen minden alkatrészt az univerzális táblán, és kábelezési mintákat készítsen a vezetékes alkatrészek között.

Mivel az IC és a tranzisztor pin-out képei együtt vannak elhelyezve a NYÁK kábelezési mintájával, a forrasztás ezen rajz segítségével végezhető el.

3. lépés: Forrasztás

Forrasztás
Forrasztás

Bár az eredeti NYÁK -rajz nem egyetlen vezetéket használ az alkatrészek PCB -hez való csatlakoztatásához, némileg máshogy forrasztom.

Egyetlen vezeték (nem ónhuzal) használatával próbálom csökkenteni az univerzális NYÁK -méretet, amely INDICATOR áramkört tartalmaz.

De amint az a NYÁK forrasztási oldalán látható, ónhuzalt is használok a NYÁK -rajzon ábrázolt minták szerint.

Ha az egyes alkatrészeket a PCB rajz eredeti tervezése szerint csatlakoztatja, a befejezett NYÁK -lap forrasztása, beleértve az INDICATOR áramkört is, megfelelően fog működni.

4. lépés: A tesztelés előkészítése

A tesztelés előkészítése
A tesztelés előkészítése

Az RPI csatlakozás előtt a kész áramkört tesztelni kell.

Mivel forrasztási hibák is előfordulhatnak, az egyenáramú tápegységet a rövidzárlat vagy rossz bekötés esetén fellépő sérülések megelőzésére használják.

Az INDICATOR teszteléséhez két további tápkábelt kell csatlakoztatni az áramkör 5 V -os tápcsatlakozójához.

5. lépés: Tesztelés (a CPU hőmérséklete közepes)

Tesztelés (a CPU hőmérséklete közepes)
Tesztelés (a CPU hőmérséklete közepes)

Ha nincs 5V -os bemenet, akkor a 74LS139 dekódoló bemenet és az Y0 kimenet aktiválása LOW -ként (zöld LED világít).

De az 5V az A bemenetre vonatkozik, a 74LS139 Y1 kimenete aktiválódik (LOW).

Ezért a sárga LED a fenti képen látható módon világít.

6. lépés: Tesztelés (a CPU hűtési szintre van szüksége)

Tesztelés (CPU -nak hűtési szintre van szüksége)
Tesztelés (CPU -nak hűtési szintre van szüksége)

Amikor az 5V a 74LS139 mindkét bemenetét (A és B) alkalmazta, a 4. piros LED villog.

A villogási sebesség megváltoztatható a 100K VR beállításával, a fenti képen látható módon.

A tesztelés befejezése után két Molex 3 tűs női kábel eltávolítható.

7. lépés: Tápellátás az INDICATOR áramkörhöz

Tápegység az INDICATOR áramkörhöz
Tápegység az INDICATOR áramkörhöz

Az INDICATOR áramkör táplálásához szokásos kézi telefon töltőt használok, amely 5V kimenetet és B típusú USB adaptert használ, a fenti képen látható módon.

Hogy elkerülje az RPI -vel kapcsolatos problémákat a 3.3V GPIO és az 5V -os INDICATOR áramkör csatlakoztatásával, a jel interfész és a tápegység teljesen el vannak szigetelve.

8. lépés: RPI bekötés

RPI huzalozás
RPI huzalozás

Az INDICATOR áramkör RPI -vel való összekapcsolásához két GPIO -tűt és két földelőcsapot kell dedikálni.

Nincs külön követelmény a GPIO csapok kiválasztására.

Az INDICATOR csatlakoztatásához bármilyen GPIO tűt használhat.

De a vezetékes csapokat a 74LS139 (pl. A, B) bemenetének kell kijelölni a python programban.

9. lépés: Python program

Python program
Python program

Amint az áramkör befejeződött, az INDICATOR funkció használatához python program szükséges.

A program logikájáról részletesebben a fenti folyamatábrán olvashat.

#-*-kódolás: utf-8-*-

alfolyamat, jel, rendszer importálása

importálási idő, re

import RPi. GPIO g

A = 12

B = 16

g.setmode (g. BCM)

g.beállítás (A, g. OUT)

g.beállítás (B, g. OUT)

##

def signal_handler (sig, frame):

print ('Nyomtad a Ctrl+C!')

g. kimenet (A, hamis)

g. kimenet (B, hamis)

f. bezár ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

míg igaz:

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

temp_str = subprocess.check_output ('/opt/vc/bin/vcgencmd meet_temp', shell = igaz)

temp_str = temp_str.decode (kódolás = 'UTF-8', hibák = 'szigorú')

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

# a CPU aktuális hőmérsékletének kinyerése

current_temp = lebegés (CPU_temp [0])

ha jelenlegi_temp> 30 és jelenlegi_temp <40:

# alacsony hőmérséklet A = 0, B = 0

g. kimenet (A, hamis)

g. kimenet (B, hamis)

time.sleep (5)

elif current_temp> = 40 és current_temp <45:

# hőmérsékleti közeg A = 0, B = 1

g. kimenet (A, hamis)

g. kimenet (B, igaz)

time.sleep (5)

elif current_temp> = 45 és current_temp <50:

# magas hőmérséklet A = 1, B = 0

g. output (A, True)

g. kimenet (B, hamis)

time.sleep (5)

elif current_temp> = 50:

# CPU hűtés szükséges magas A = 1, B = 1

g. output (A, True)

g. kimenet (B, igaz)

time.sleep (5)

current_time = time.time ()

formated_time = time.strftime ("%H:%M:%S", time.gmtime (aktuális_idő))

f.write (str (formated_time)+'\ t'+str (current_temp)+'\ n')

f. bezár ()

A python program fő funkciója az alábbi.

- Először a GPIO 12, 16 beállítása kimeneti portként

- A Ctrl+C megszakításkezelő meghatározása a naplófájl bezárásához és a GPIO 12, 16 kikapcsolásához

- Amikor végtelen ciklusba lép, nyissa meg a naplófájlt hozzáfűzési módként

- Olvassa le a CPU hőmérsékletét a „/opt/vc/bin/vcgencmd intézkedés_temp” parancs végrehajtásával

- Ha a hőmérséklet a 30 ~ 39 tartományban van, akkor a 00 jelzéssel kapcsolja be a zöld LED -et

- Ha a hőmérséklet a 40-44 tartományban van, akkor a 01 -es kimenettel kapcsolja be a sárga LED -et

- Ha a hőmérséklet 45 ~ 49 tartományban van, akkor 10 -es kimenettel kapcsolja be a piros LED -et

- Ha a hőmérséklet meghaladja az 50 -et, akkor a 11 -es kimeneten villogni kezd a piros LED

- Írjon időbélyegző és hőmérséklet adatokat a naplófájlba

10. lépés: MUTATÓ működése

MUTATÓ Működés
MUTATÓ Működés

Ha minden rendben van, láthatja, hogy minden LED bekapcsol vagy villog a CPU hőmérsékletének megfelelően.

Az aktuális hőmérséklet ellenőrzéséhez nem kell shell parancsot megadnia.

Miután összegyűjtötte az adatokat a naplófájlban, és a szöveges adatokat grafikonokká alakította az Excel segítségével, az eredmény a fenti képen látható.

Nagy terhelés esetén (két Midori böngésző futtatása és Youtube videó lejátszása) a CPU hőmérséklete 57,9 ° C -ra emelkedik.

11. lépés: Alternatív készítés (NPN tranzisztor használata) és további fejlesztés

Alternatív készítés (NPN tranzisztor használata) és továbbfejlesztés
Alternatív készítés (NPN tranzisztor használata) és továbbfejlesztés

Ez a korábbi INDICATOR projektpélda NPN tranzisztorok felhasználásával (2N3904 és BD139).

Amint láthatja, még egy IC (74HC04, Quad inverterek) szükséges az NPN tranzisztor meghajtásához, mivel a tranzisztor bekapcsolásához HIGH szintű feszültséget kell alkalmazni az NPN bázisára.

Összefoglalva, az NPN tranzisztor használata szükségtelenül bonyolítja az INDICATOR áramkört.

Ennek a projektnek a továbbfejlesztése érdekében hozzáadok hűtőventilátort a fenti képen látható módon, hogy az INDICATOR áramkört hasznosabbá tegyük.

Ajánlott: