Satura rādītājs:

Raspberry Pi CPU temperatūras indikators: 11 soļi (ar attēliem)
Raspberry Pi CPU temperatūras indikators: 11 soļi (ar attēliem)

Video: Raspberry Pi CPU temperatūras indikators: 11 soļi (ar attēliem)

Video: Raspberry Pi CPU temperatūras indikators: 11 soļi (ar attēliem)
Video: 20 товаров для автомобиля с Алиэкспресс, автотовары №29 2024, Novembris
Anonim
Raspberry Pi CPU temperatūras indikators
Raspberry Pi CPU temperatūras indikators

Iepriekš es biju iepazīstinājis ar vienkāršu aveņu pi (turpmāk RPI) darbības statusa indikatora ķēdi.

Šoreiz es paskaidrošu kādu noderīgāku indikatoru shēmu RPI, kas darbojas kā bez galvas (bez monitora).

Iepriekšējā shēma parāda CPU temperatūru 4 dažādos līmeņos, piemēram:

- Zaļā gaismas diode iedegas, kad CPU temperatūra ir 30 ~ 39 grādu robežās

- Dzeltena gaismas diode norāda, ka temperatūra ir paaugstināta no 40 līdz 45 grādiem

- Trešā sarkanā gaismas diode parāda, ka CPU kļūst nedaudz karsts, sasniedzot 46-49 grādus

- Vēl viena sarkana gaismas diode mirgos, ja temperatūra pārsniedz 50 grādus

Iepriekš minētie CPU temperatūras diapazoni ir mana personīgā dizaina koncepcija (citus temperatūras diapazonus var konfigurēt, mainot šīs ķēdes kontrolējošās python programmas pārbaudes nosacījumus).

Izmantojot šo shēmu, jūs ne vienmēr bieži izpildāt komandu “vcgencmd intézkedés_temp” konsoles terminālī.

Šī shēma nepārtraukti un ērti informē pašreizējo CPU temperatūru.

1. darbība: shēmu sagatavošana

Shēmu sagatavošana
Shēmu sagatavošana

Lai gan jūs varat kontrolēt 4 gaismas diodes tieši, izmantojot tikai python kodus, programmas vadības loģika ielādēs RPI, un tāpēc CPU temperatūra tiks paaugstināta vairāk, jo jums vajadzētu nepārtraukti palaist mazliet sarežģītu pitona kodu.

Tāpēc es maksimāli samazinu python koda sarežģītību un izslēdzu LED vadības loģiku ārējai aparatūras shēmai.

CPU temperatūras indikatora (turpmāk INICATOR) ķēde sastāv no šādām galvenajām daļām.

-Divi opto-savienotāji ir pievienoti RPI GPIO tapām, lai iegūtu tādus temperatūras līmeņa datus kā 00-> LOW, 01-> Medium, 10-> High, 11-> Nepieciešama dzesēšana.

-74LS139 (vai 74HC139, 2 līdz 4 dekodētājs un de multipleksētājs) vadības izejas (Y0, Y1, Y2, Y3) atbilstoši ieejām (A, B)

- Ja temperatūra ir 30 ~ 39 grādu robežās, pitona koda izeja 00 uz GPIO tapām. Tāpēc 74LS139 iegūst ievades datus 00 (A-> 0, B-> 0)

- Ievadot 00, Y0 izeja kļūst LOW. (Lūdzu, skatiet 74LS139 patiesības tabulu)

- Kad Y0 izeja kļūst LOW, tā aktivizē 2N3906 PNP tranzistoru un rezultātā iedegas zaļā gaismas diode

- Tāpat Y1 (01 -> CPU temperatūras vide) ieslēdz dzelteno gaismas diodi utt

- Kad Y3 kļūst LOW, DB140 aktivizē NE555 LED mirgojošo ķēdi (tas ir parasts 555 IC balstīts LED mirgojošs ķēde), kas ir BD140 PNP tranzistora slodze

Šīs ķēdes vissvarīgākā sastāvdaļa ir 74LS139, kas atšifrē 2 ciparu ievadi 4 dažādās atsevišķās izejās, kā parādīts tālāk esošajā patiesības tabulā.

Ievadiet | Izeja

G (Iespējot) | 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 |

Tā kā 74LS139 izeja kļūst LOW, PNP tipa tranzistors var padarīt ķēdi vienkāršu, jo PNP tranzistors ir ieslēgts, kad bāzes terminālis kļūst LOW. (Šī stāsta beigās es parādīšu NPN versiju)

Tā kā 100K potenciometrs ir iekļauts gaismas diodes mirgošanas ķēdē NE555, sarkano LED ieslēgšanas/izslēgšanas laiku var brīvi pielāgot atbilstoši vajadzībām.

2. solis: PCB zīmējuma izgatavošana

PCB zīmēšanas izgatavošana
PCB zīmēšanas izgatavošana

Kā paskaidrota INDIKATORA darbības shēma, sāksim veidot ķēdi.

Pirms kaut ko pielodēt uz universālās plates, iepriekš norādītā PCB rasējuma sagatavošana ir noderīga, lai samazinātu visas kļūdas.

Zīmējums tiek veikts, izmantojot power-point, lai atrastu katru daļu uz universālā dēļa, un veidojot elektroinstalācijas modeļus starp detaļām ar vadiem.

Tā kā IC un tranzistora piespraudes attēli atrodas kopā ar PCB vadu shēmu, lodēšanu var veikt, izmantojot šo zīmējumu.

3. solis: lodēšana

Lodēšana
Lodēšana

Lai gan oriģinālais PCB zīmējums nav izgatavots, neizmantojot atsevišķus vadus, lai savienotu komponentus PCB, es lodēju nedaudz savādāk.

Izmantojot vienu vadu vadītāju (nevis alvas vadu), es cenšos samazināt universālo PCB izmēru, kurā ir INDIKATORA ķēde.

Bet, kā jūs varat redzēt PCB lodēšanas pusē, es izmantoju alvas stiepli arī saskaņā ar shēmām, kas attēlotas PCB zīmējumā.

Kad katrs komponents ir pievienots saskaņā ar sākotnējo PCB zīmējuma dizainu, pabeigta PCB plates, ieskaitot INDIKATORA ķēdi, lodēšana darbosies pareizi.

4. solis: testēšanas sagatavošana

Pārbaudes sagatavošana
Pārbaudes sagatavošana

Pirms RPI savienojuma pabeigšanas shēma ir jāpārbauda.

Tā kā var būt jebkuras lodēšanas kļūdas, līdzstrāvas barošanas avots tiek izmantots, lai novērstu bojājumus, ja rodas īssavienojumi vai nepareiza elektroinstalācija.

INDIKATORA testēšanai divi papildu barošanas kabeļi ir pievienoti ķēdes 5V barošanas avota savienotājam.

5. darbība: pārbaude (CPU temperatūra ir vidēja līmeņa)

Pārbaude (CPU temperatūra ir vidēja līmeņa)
Pārbaude (CPU temperatūra ir vidēja līmeņa)

Ja netiek izmantota 5V ieeja, 74LS139 dekodēšanas ieeja un izejas Y0 aktivizēšana kā LOW (ieslēgta zaļā gaismas diode).

Bet 5V tika piemērots A ieejai, 74LS139 izejas Y1 aktivizēšanai (LOW).

Tāpēc dzeltenā gaismas diode tiek ieslēgta, kā parādīts attēlā.

6. darbība: pārbaude (CPU nepieciešams dzesēšanas līmenis)

Pārbaude (CPU nepieciešams dzesēšanas līmenis)
Pārbaude (CPU nepieciešams dzesēšanas līmenis)

Kad 5V izmantoja 74LS139 abas ieejas (A un B), mirgo 4. sarkanā gaismas diode.

Mirgošanas ātrumu var mainīt, noregulējot 100K VR, kā parādīts attēlā.

Kad pārbaude ir pabeigta, var noņemt divus Molex 3 kontaktu kabeļus.

7. solis: barošanas avots indikatora ķēdei

Barošanas avots indikatora ķēdei
Barošanas avots indikatora ķēdei

INDIKATORA ķēdes barošanai es izmantoju parasto rokas tālruņa lādētāju, kas izvada 5V un USB tipa B adapteri, kā parādīts attēlā.

Lai izvairītos no problēmām ar RPI, pievienojot 3.3V GPIO un 5V darbināmu INDIKATORA ķēdi, signāla saskarne un barošanas avots ir pilnībā izolēti.

8. solis: RPI elektroinstalācija

RPI elektroinstalācija
RPI elektroinstalācija

Lai savienotu INDIKATORA ķēdi ar RPI, divas GPIO tapas ir jāpiešķir kopā ar divām zemējuma tapām.

Nav īpašu prasību izvēlēties GPIO tapas.

INDIKATORA pievienošanai varat izmantot jebkuru GPIO tapu.

Bet vadu tapas ir jānorāda kā 74LS139 (piemēram, A, B) ieejas python programmā.

9. solis: Python programma

Python programma
Python programma

Kad ķēde ir pabeigta, lai izveidotu funkciju INDICATOR, ir jāizveido python programma.

Lūdzu, skatiet iepriekš minēto plūsmas diagrammu, lai iegūtu sīkāku informāciju par programmas loģiku.

#-*-kodēšana: utf-8-*-

importēt apakšprocesu, signālu, sistēmu

importēšanas laiks, re

importēt RPi. GPIO kā g

A = 12

B = 16

g.setmode (g. BCM)

g. iestatīšana (A, g. OUT)

g. iestatīšana (B, g. OUT)

##

def signal_handler (sig, frame):

drukāt ('Jūs nospiedāt Ctrl+C!')

g. izvade (A, nepatiesa)

g. izvade (B, nepatiesa)

f. tuvu ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

kamēr taisnība:

f = atvērts ('/home/pi/My_project/CPU_temperature_log.txt', 'a+')

temp_str = apakšprocess.check_output ('/opt/vc/bin/vcgencmd meet_temp', apvalks = True)

temp_str = temp_str.decode (kodējums = 'UTF-8', kļūdas = 'stingrs')

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

# iegūst pašreizējo CPU temperatūru

current_temp = peldēt (CPU_temp [0])

ja pašreizējais_temps> 30 un pašreizējais_temps <40:

# zemākā temperatūra A = 0, B = 0

g. izvade (A, nepatiesa)

g. izvade (B, nepatiesa)

laiks. miegs (5)

elif current_temp> = 40 un current_temp <45:

# temperatūras vide A = 0, B = 1

g. izvade (A, nepatiesa)

g. izvade (B, True)

laiks. miegs (5)

elif current_temp> = 45 un current_temp <50:

# augsta temperatūra A = 1, B = 0

g. izvade (A, True)

g. izvade (B, nepatiesa)

laiks. miegs (5)

elif current_temp> = 50:

# Nepieciešama CPU dzesēšana augsta A = 1, B = 1

g. izvade (A, True)

g. izvade (B, True)

laiks. miegs (5)

current_time = time.time ()

formated_time = time.strftime ("%H:%M:%S", laiks.gmlaiks (pašreizējais_laiks))

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

f. tuvu ()

Python programmas galvenā funkcija ir tāda kā zemāk.

- Vispirms iestatiet GPIO 12, 16 kā izejas portu

- Ctrl+C pārtraukuma apstrādātāja definēšana žurnāla faila aizvēršanai un GPIO 12, 16 izslēgšanai

- Ieejot bezgalīgā ciklā, atveriet žurnālfailu kā pievienošanas režīmu

- Lasiet CPU temperatūru, izpildot komandu "/opt/vc/bin/vcgencmd meet_temp"

- Ja temperatūra ir diapazonā no 30 līdz 39, tad izvadiet 00, lai ieslēgtu zaļo LED

- Ja temperatūra ir diapazonā no 40 līdz 44, tad izvadiet 01, lai ieslēgtu dzelteno LED

- Ja temperatūra ir diapazonā no 45 līdz 49, izvadiet 10, lai ieslēgtu sarkano LED

- Ja temperatūra ir augstāka par 50, izvadiet 11, lai sarkanā gaismas diode mirgo

- Ierakstiet laika zīmoga un temperatūras datus žurnāla failā

10. darbība: INDIKATORA darbība

INDIKATORS Darbība
INDIKATORS Darbība

Kad viss ir kārtībā, jūs varat redzēt, ka katra gaismas diode ir ieslēgta vai mirgo atbilstoši CPU temperatūrai.

Jums nav jāievada apvalka komanda, lai pārbaudītu pašreizējo temperatūru.

Pēc datu savākšanas žurnāla failā un teksta datu pārveidošanas grafikā, izmantojot Excel, rezultāts tiek parādīts iepriekš redzamajā attēlā.

Pielietojot lielas slodzes (palaižot divus Midori pārlūkprogrammas un atskaņojot Youtube video), CPU temperatūra ir palielinājusies līdz 57.9C.

11. solis: Alternatīva izgatavošana (izmantojot NPN tranzistoru) un tālāka attīstība

Alternatīva izgatavošana (izmantojot NPN tranzistoru) un tālāka attīstība
Alternatīva izgatavošana (izmantojot NPN tranzistoru) un tālāka attīstība

Šis ir iepriekšējais INDICATOR projekta piemērs, kurā izmantoti NPN tranzistori (2N3904 un BD139).

Kā redzat, vēl viens IC (74HC04, Quad invertori) ir nepieciešams, lai vadītu NPN tranzistoru, jo, lai ieslēgtu tranzistoru, NPN pamatnei jāpieliek augsts spriegums.

Rezumējot, izmantojot NPN tranzistoru, INDICATOR shēmas izveidei ir nevajadzīga sarežģītība.

Lai tālāk attīstītu šo projektu, es pievienošu dzesēšanas ventilatoru, kā parādīts attēlā, lai padarītu INDIKATORA ķēdi noderīgāku.

Ieteicams: