INHOUDSOPGAWE:

Raspberry Pi CPU -temperatuuraanwyser: 11 stappe (met foto's)
Raspberry Pi CPU -temperatuuraanwyser: 11 stappe (met foto's)

Video: Raspberry Pi CPU -temperatuuraanwyser: 11 stappe (met foto's)

Video: Raspberry Pi CPU -temperatuuraanwyser: 11 stappe (met foto's)
Video: Installeer Windows 11 op Raspberry Pi 2024, Julie
Anonim
Raspberry Pi CPU -temperatuuraanwyser
Raspberry Pi CPU -temperatuuraanwyser

Ek het voorheen 'n eenvoudige framboos -pi (hierna RPI) ingebring vir die operasionele status.

Hierdie keer verduidelik ek 'n meer bruikbare aanwyserbaan vir RPI wat op 'n koplose (sonder monitor) manier werk.

Die kring hierbo toon die CPU -temperatuur in 4 verskillende vlakke, soos:

- Groen LED aangeskakel wanneer die CPU -temperatuur binne 30 ~ 39 grade is

- Geel LED dui aan dat die temperatuur binne 40 tot 45 grade verhoog word

- Die derde rooi LED wys dat die CPU 'n bietjie warm word deur 'n temperatuur van 46 ~ 49 grade te bereik

- 'n Ander rooi LED sal knip as die temperatuur meer as 50 grade oorskry

Bogenoemde CPU -temperatuurreekse is my persoonlike ontwerpkonsep (ander temperatuurreekse kan gekonfigureer word deur die toetsomstandighede van die pythonprogram wat hierdie stroombaan beheer, te verander).

Deur hierdie kring te gebruik, voer u nie noodwendig die opdrag "vcgencmd measure_temp" gereeld op die konsole -terminaal uit nie.

Hierdie kring sal die huidige CPU -temperatuur deurlopend en gemaklik inlig.

Stap 1: Skemas voorberei

Skemas voorberei
Skemas voorberei

Alhoewel u 4 LED's direk kan beheer deur slegs pythonkodes te gebruik, laai die beheerslogika van die program RPI, en gevolglik word die CPU -temperatuur meer verhoog omdat u 'n bietjie komplekse luislangkode voortdurend moet uitvoer.

Daarom minimaliseer ek die kompleksiteit van python-kode so eenvoudig as moontlik en is die aflaai van LED-kontrolelogika na 'n eksterne hardeware kring.

Die CPU temperatuur aanwyser (hierna INICATOR) kring bestaan uit die volgende hoofdele.

-Twee opto-koppelaars is gekoppel aan RPI GPIO-penne om data op temperatuurvlak te kry, soos 00-> LOW, 01-> Medium, 10-> Hoog, 11-> Koelings benodig.

-74LS139 (of 74HC139, 2-tot-4-dekodeerder en de-multiplexer) beheeruitsette (Y0, Y1, Y2, Y3) volgens die insette (A, B)

- As die temperatuur binne 30 ~ 39 grade is, gee die python -kode 00 uit na GPIO -penne. Daarom kry 74LS139 insetdata 00 (A-> 0, B-> 0)

- As 00 ingevoer word, word die Y0 -uitset LAAG. (Raadpleeg die waarheidstabel van 74LS139)

- As die Y0 -uitset laag word, aktiveer dit 2N3906 PNP -transistor en as gevolg hiervan word die groen LED aangeskakel

- Net so moet Y1 (01 -> CPU temperatuurmedium) geel LED aanskakel, ens

- As Y3 LAAG word, aktiveer DB140 die NE555 LED -flitsstroom (dit is 'n algemene 555 IC -gebaseerde LED -flikker), wat 'n groot hoeveelheid BD140 PNP -transistor is

Die belangrikste komponent van hierdie stroombaan is 74LS139, wat 2 syfers insette dek in 4 verskillende enkele uitsette, soos in die waarheidstabel hieronder getoon.

Invoer | Uitset

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

Aangesien die uitset van 74LS139 LAAG word, kan die transistor van die PNP -tipe die algehele stroombaan eenvoudig maak, aangesien die PNP -transistor aangeskakel word wanneer die basisterminaal LOW word. (Ek sal die NPN -weergawe aan die einde van hierdie verhaal wys)

Aangesien 100K potensiometer ingesluit is in die NE555 LED -blinkerstroom, kan die rooi LED -AAN/UIT -tyd vrylik aangepas word volgens die behoeftes.

Stap 2: Maak PCB -tekening

Maak PCB -tekening
Maak PCB -tekening

Soos die bedryfskema van die INDIKATOR verduidelik word, laat ons die kring begin.

Voordat u iets op universele bord soldeer, is dit handig om die PCB -tekening voor te berei om foute te verminder.

Die tekening word gemaak deur die kragpunt te gebruik om elke onderdeel op die universele bord op te spoor en bedradingspatrone tussen dele met drade te maak.

Aangesien IC- en transistor-pin-out-beelde saam met die PCB-bedradingspatroon geleë is, kan soldeer word met behulp van hierdie tekening.

Stap 3: soldeer

Soldeer
Soldeer

Alhoewel die oorspronklike PCB -tekening gemaak word sonder om enkele drade te gebruik om komponente op PCB aan te sluit, soldeer ek ietwat anders.

Deur die gebruik van 'n enkele geleier van drade (nie blikdraad nie), probeer ek die universele PCB -grootte wat die INDICATOR -stroombaan bevat, verminder.

Maar soos u aan die soldeerkant van PCB kan sien, gebruik ek blikdraad ook volgens die patrone in die PCB -tekening.

As elke komponent gekoppel is volgens die oorspronklike ontwerp van die PCB -tekening, sal die voltooide PCB -bord, insluitend die INDICATOR -stroombaan, soldeer.

Stap 4: Toets voorbereiding

Toets voorbereiding
Toets voorbereiding

Voor die RPI -verbinding, moet die voltooide stroombaan getoets word.

Aangesien daar enige soldeerfoute bestaan, word DC -kragvoorsiener gebruik om skade te voorkom wanneer kortbroek of verkeerde bedrading voorkom.

Vir die toets van INDIKATOR word twee ekstra kragtoevoerkabels gekoppel aan die 5V -kragtoevoeraansluiting van die stroombaan.

Stap 5: Toets (CPU -temperatuur is mediumvlak)

Toets (CPU -temperatuur is mediumvlak)
Toets (CPU -temperatuur is mediumvlak)

As geen 5V -inset toegepas word nie, dan 74LS139 -dekodeerinvoer en aktiveer uitset Y0 as LAAG (Groen LED aangeskakel).

Maar 5V toegepas op invoer A, uitset Y1 van 74LS139 aktiveer (LAAG).

Daarom word die geel LED aangeskakel soos in die prent hierbo getoon.

Stap 6: Toets (CPU benodig koelvlak)

Toets (CPU benodig koelvlak)
Toets (CPU benodig koelvlak)

As 5V beide insette (A en B) van 74LS139 toepas, flikker die 4de rooi LED.

Die knippertempo kan verander word deur 100K VR aan te pas soos in die prent hierbo getoon.

As die toets voltooi is, kan twee Molex 3 -pins vrouekabels verwyder word.

Stap 7: Kragtoevoer na INDICATOR -stroombaan

Kragtoevoer na INDICATOR -stroombaan
Kragtoevoer na INDICATOR -stroombaan

Vir die aandrywing van die INDICATOR-kring gebruik ek 'n gewone selfoonlaaier wat 'n 5V- en USB-tipe B-adapter lewer, soos op die foto hierbo getoon.

Om 'n probleem met RPI te vermy deur 'n 3.3V GPIO- en 5V -aangedrewe INDICATOR -stroombaan aan te sluit, is die koppelvlak en die kragtoevoer heeltemal van mekaar afgesonder.

Stap 8: RPI -bedrading

RPI bedrading
RPI bedrading

Vir die koppeling van die INDICATOR -kring met RPI, moet twee GPIO -penne saam met twee grondpenne toegewys word.

Daar is geen spesifieke vereiste vir die keuse van GPIO -penne nie.

U kan enige GPIO -penne gebruik om INDICATOR aan te sluit.

Maar bedrade penne moet aangewys word as insette tot 74LS139 (bv. A, B) in die python -program.

Stap 9: Python -program

Python -program
Python -program

Namate die stroombaan voltooi is, is 'n python -program nodig om die INDICATOR -funksie te gebruik.

Raadpleeg die vloeidiagram hierbo vir meer inligting oor programlogika.

#-*-kodering: utf-8-*-

invoer subproses, sein, sys

invoer tyd, re

voer RPi. GPIO in as g

A = 12

B = 16

g.setmodus (g. BCM)

g.opstelling (A, g. OUT)

g.opstelling (B, g. OUT)

##

def signal_handler (sig, raam):

print ('U het op Ctrl+C gedruk!')

g. uitvoer (A, onwaar)

g. uitvoer (B, onwaar)

f.close ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

terwyl dit waar is:

f = open ('/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 (kodering = 'UTF-8', foute = 'streng')

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

# die huidige CPU -temperatuur onttrek

current_temp = float (CPU_temp [0])

as huidige_temp> 30 en huidige_temp <40:

# temperatuur laag A = 0, B = 0

g. uitvoer (A, onwaar)

g. uitvoer (B, onwaar)

tyd. slaap (5)

elif current_temp> = 40 en current_temp <45:

# temperatuurmedium A = 0, B = 1

g. uitvoer (A, onwaar)

g. uitvoer (B, waar)

tyd. slaap (5)

elif current_temp> = 45 en current_temp <50:

# temperatuur hoog A = 1, B = 0

g. uitvoer (A, waar)

g. uitvoer (B, onwaar)

tyd. slaap (5)

elif current_temp> = 50:

# CPU -verkoeling word vereis hoog A = 1, B = 1

g. uitvoer (A, waar)

g. uitvoer (B, waar)

tyd. slaap (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 ()

Die belangrikste funksie van die python -program is soos hieronder.

- Stel eerstens GPIO 12, 16 as uitvoerpoort in

- Definieer Ctrl+C interrupt handler om die loglêer te sluit en skakel GPIO 12, 16 uit

- As u die oneindige lus binnegaan, maak u die loglêer oop as 'n byvoegingsmodus

- Lees die CPU -temperatuur deur die opdrag "/opt/vc/bin/vcgencmd measure_temp" uit te voer

- As die temperatuur binne die reeks 30 ~ 39 is, voer dan 00 uit om die groen LED aan te skakel

- As die temperatuur binne die reeks 40 ~ 44 is, moet die uitset 01 aangeskakel word om die geel LED aan te skakel

- As die temperatuur binne die bereik van 45 ~ 49 is, voer dan 10 uit om die rooi LED aan te skakel

- As die temperatuur meer as 50 is, voer dan 11 uit om die rooi LED te laat knipper

- Skryf tydstempel en temperatuurdata in die lêer

Stap 10: INDIKATOR -werking

INDIKATOR Bediening
INDIKATOR Bediening

As alles in orde is, kan u sien dat elke LED aanskakel of knip volgens die CPU -temperatuur.

U hoef nie die dopopdrag in te voer om die huidige temperatuur te kontroleer nie.

Nadat u data in die loglêer versamel het en teksdata met behulp van Excel in die grafiek omskep is, word die resultaat hierbo getoon.

As hoë ladings toegepas word (deur middel van twee Midori -blaaiers en speel van YouTube -video), is die CPU -temperatuur tot 57,9C hoër.

Stap 11: Alternatiewe vervaardiging (met behulp van NPN -transistor) en verdere ontwikkeling

Alternatiewe vervaardiging (met behulp van NPN -transistor) en verdere ontwikkeling
Alternatiewe vervaardiging (met behulp van NPN -transistor) en verdere ontwikkeling

Dit is 'n vorige voorbeeld van die INDICATOR -projek met behulp van NPN -transistors (2N3904 en BD139).

Soos u kan sien, is nog 'n IC (74HC04, Quad -omvormers) nodig om die NPN -transistor aan te dryf, aangesien 'n HOOGVLAK -spanning op die basis van die NPN aangebring moet word om die transistor aan te skakel.

As 'n opsomming, die gebruik van NPN -transistor voeg onnodige kompleksiteit by om 'n INDICATOR -stroombaan te maak.

Vir die verdere ontwikkeling van hierdie projek sal ek 'n koelwaaier byvoeg soos in die prent hierbo getoon om die INDICATOR -stroombaan meer bruikbaar te maak.

Aanbeveel: