Inhoudsopgave:
- Stap 1: Schema's voorbereiden
- Stap 2: PCB-tekening maken
- Stap 3: Solderen
- Stap 4: Testvoorbereiding
- Stap 5: Testen (CPU-temperatuur is gemiddeld)
- Stap 6: Testen (CPU-koelniveau nodig)
- Stap 7: Voeding naar INDICATOR Circuit
- Stap 8: RPI-bedrading
- Stap 9: Python-programma
- Stap 10: INDICATOR Bediening
- Stap 11: Alternatief maken (met behulp van NPN-transistor) en verdere ontwikkeling
Video: Raspberry Pi CPU-temperatuurindicator: 11 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Eerder had ik het eenvoudige Raspberry pi (hierna RPI) operationele statusindicatorcircuit geïntroduceerd.
Deze keer zal ik een nuttiger indicatorcircuit uitleggen voor RPI die als headless (zonder monitor) werkt.
Het bovenstaande circuit toont de CPU-temperatuur in 4 verschillende niveaus, zoals:
- Groene LED gaat aan wanneer de CPU-temperatuur binnen 30 ~ 39 graden is
- Gele LED geeft aan dat de temperatuur is verhoogd in het bereik van 40 tot 45 graden
- 3e rode LED geeft aan dat de CPU een beetje heet wordt door 46 ~ 49 graden te bereiken
- Een andere rode LED knippert wanneer de temperatuur meer dan 50 graden overschrijdt
De bovenstaande CPU-temperatuurbereiken zijn mijn persoonlijke ontwerpconcept (andere temperatuurbereiken kunnen worden geconfigureerd door de testomstandigheden van het python-programma dat dit circuit bestuurt te wijzigen).
Door dit circuit te gebruiken, voert u niet noodzakelijkerwijs de opdracht "vcgencmd measure_temp" vaak uit op de consoleterminal.
Dit circuit zal de huidige CPU-temperatuur continu en gemakkelijk informeren.
Stap 1: Schema's voorbereiden
Hoewel je 4 LED's rechtstreeks kunt besturen door alleen python-codes te gebruiken, zal de besturingslogica van het programma RPI laden en als gevolg daarvan zal de CPU-temperatuur meer worden verhoogd omdat je continu een beetje complexe python-code moet uitvoeren.
Daarom minimaliseer ik de complexiteit van de pythoncode zo eenvoudig mogelijk en ontlaad ik de LED-besturingslogica naar een extern hardwarecircuit.
Het circuit van de CPU-temperatuurindicator (hierna INICATOR genoemd) bestaat uit de volgende hoofdonderdelen.
- Twee opto-couplers zijn aangesloten op RPI GPIO-pinnen om temperatuurniveaugegevens te krijgen, zoals 00->LOW, 01->Medium, 10->High, 11-> Cooling nodig.
- 74LS139 (of 74HC139, 2-to-4 decoder en de-multiplexer) besturen uitgangen (Y0, Y1, Y2, Y3) volgens de ingangen (A, B)
- Wanneer de temperatuur binnen 30 ~ 39 graden ligt, voert pythoncode 00 uit naar GPIO-pinnen. Daarom krijgen 74LS139 invoergegevens 00 (A->0, B->0)
- Als 00 wordt ingevoerd, wordt de Y0-uitgang LAAG. (Zie waarheidstabel van 74LS139)
- Wanneer de Y0-uitgang LAAG wordt, wordt de 2N3906 PNP-transistor geactiveerd en als gevolg daarvan gaat de groene LED branden
- Evenzo zal Y1 (01 -> CPU-temperatuurmedium) de gele LED inschakelen, enzovoort
- Wanneer Y3 LAAG wordt, activeert DB140 het NE555 LED-knippercircuit (dit is een gewone 555 IC-gebaseerde LED-knipper) die de BD140 PNP-transistor belast
Het belangrijkste onderdeel van dit circuit is 74LS139, dat de invoer van 2 cijfers in 4 verschillende enkele uitvoer decodeert, zoals weergegeven in de onderstaande waarheidstabel.
Invoer | Uitgang:
G (Inschakelen) | B | een | 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 |
Aangezien de output van 74LS139 LAAG wordt, kan de PNP-type transistor de algehele schakeling eenvoudig maken, aangezien de PNP-transistor wordt ingeschakeld wanneer de basisterminal LAAG wordt. (Ik zal de NPN-versie aan het einde van dit verhaal laten zien)
Omdat een 100K-potentiometer is opgenomen in het NE555 LED-knipperlichtcircuit, kan de rode LED AAN / UIT-tijd vrij worden aangepast aan de behoeften.
Stap 2: PCB-tekening maken
Als het bedieningsschema van de INDICATOR wordt uitgelegd, laten we beginnen met het maken van het circuit.
Voordat u iets op een universeel bord gaat solderen, is het handig om de bovenstaande PCB-tekening voor te bereiden om eventuele fouten te minimaliseren.
De tekening is gemaakt door powerpoint te gebruiken om elk onderdeel op het universele bord te lokaliseren en bedradingspatronen te maken tussen onderdelen met draden.
Omdat IC- en transistor-pin-out-afbeeldingen samen met het PCB-bedradingspatroon zijn geplaatst, kan solderen worden uitgevoerd met behulp van deze tekening.
Stap 3: Solderen
Hoewel de originele PCB-tekening is gemaakt zonder enkele draden om componenten op PCB aan te sluiten, soldeer ik iets anders.
Door een enkele geleider van draden te gebruiken (geen tindraad), probeer ik de universele PCB-grootte te verkleinen die het INDICATOR-circuit bevat.
Maar zoals je aan de soldeerzijde van PCB kunt zien, gebruik ik ook tindraad volgens de patronen die zijn weergegeven in de PCB-tekening.
Wanneer elk onderdeel is aangesloten volgens het originele ontwerp van de PCB-tekening, zal het solderen van de voltooide printplaat inclusief het INDICATOR-circuit correct werken.
Stap 4: Testvoorbereiding
Voordat de RPI-verbinding wordt gemaakt, moet het voltooide circuit worden getest.
Aangezien er soldeerfouten kunnen bestaan, wordt DC-stroomleverancier gebruikt om schade te voorkomen bij kortsluiting of verkeerde bedrading.
Voor het testen van INDICATOR worden twee extra voedingskabels aangesloten op de 5V-voedingsconnector van het circuit.
Stap 5: Testen (CPU-temperatuur is gemiddeld)
Als er geen 5V-ingang wordt toegepast, dan decodeert 74LS139 de ingang en activeert uitgang Y0 als LAAG (Groene LED aan).
Maar 5V toegepast op ingang A, uitgang Y1 van 74LS139 wordt geactiveerd (LAAG).
Daarom is de gele LED ingeschakeld zoals weergegeven in de bovenstaande afbeelding.
Stap 6: Testen (CPU-koelniveau nodig)
Wanneer 5V op beide ingangen (A en B) van 74LS139 is aangesloten, knippert de 4e rode LED.
De knippersnelheid kan worden gewijzigd door 100K VR aan te passen zoals weergegeven in de bovenstaande afbeelding.
Wanneer het testen is voltooid, kunnen twee Molex 3-pins vrouwelijke kabels worden verwijderd.
Stap 7: Voeding naar INDICATOR Circuit
Voor het voeden van het INDICATOR-circuit gebruik ik een gewone handtelefoonoplader die 5V en een USB type-B-adapter uitvoert, zoals weergegeven in de bovenstaande afbeelding.
Om problemen met RPI te voorkomen door 3.3V GPIO en 5V aangedreven INDICATOR-circuit aan te sluiten, zijn signaalinterface en voeding volledig van elkaar geïsoleerd.
Stap 8: RPI-bedrading
Voor het koppelen van het INDICATOR-circuit met RPI, moeten twee GPIO-pinnen worden toegewezen samen met twee aardingspinnen.
Er zijn geen specifieke vereisten voor het kiezen van GPIO-pinnen.
U kunt alle GPIO-pinnen gebruiken om INDICATOR aan te sluiten.
Maar bedrade pinnen moeten worden aangewezen als invoer voor 74LS139 (bijv. A, B) in het Python-programma.
Stap 9: Python-programma
Als het circuit is voltooid, is het maken van een python-programma vereist om de INDICATOR-functie te gebruiken.
Raadpleeg het bovenstaande stroomschema voor meer informatie over programmalogica.
#-*- codering:utf-8 -*-
importeer subproces, signaal, sys
import tijd, opnieuw
importeer RPi. GPIO als g
A = 12
B = 16
g.setmode(g. BCM)
g.setup(A, g. OUT)
g.setup(B, g. OUT)
##
def signal_handler (sig, frame):
print('Je hebt op Ctrl+C gedrukt!')
g.output (A, False)
g.output (B, False)
f.sluiten()
sys.exit(0)
signaal.signaal(signaal. SIGINT, signaal_handler)
##
terwijl waar:
f = open('/home/pi/Mijn_project/CPU_temperatuur_log.txt', 'a+')
temp_str = subprocess.check_output('/opt/vc/bin/vcgencmd measure_temp', shell=True)
temp_str = temp_str.decode (codering = 'UTF-8', errors = 'strikt')
CPU_temp = re.findall("\d+\.\d+", temp_str)
# huidige CPU-temperatuur extraheren
huidige_temp = zwevend(CPU_temp[0])
als current_temp > 30 en current_temp < 40:
# temperatuur laag A=0, B=0
g.output (A, False)
g.output (B, False)
tijd.slaap(5)
elif current_temp >= 40 en current_temp < 45:
# temperatuur medium A=0, B=1
g.output (A, False)
g.output (B, True)
tijd.slaap(5)
elif current_temp >= 45 en current_temp < 50:
# temperatuur hoog A=1, B=0
g.output (A, True)
g.output (B, False)
tijd.slaap(5)
elif huidige_temp >= 50:
# CPU-koeling is vereist hoog A=1, B=1
g.output (A, True)
g.output (B, True)
tijd.slaap(5)
huidige_tijd = tijd.tijd()
formated_time = time.strftime("%H:%M:%S", time.gmtime(current_time))
f.write(str(geformatteerde_tijd)+'\t'+str(huidige_temp)+'\n')
f.sluiten()
De belangrijkste functie van het python-programma is zoals hieronder.
- Eerst GPIO 12, 16 instellen als uitvoerpoort
- Ctrl+C interrupt-handler definiëren voor het sluiten van het logbestand en het uitschakelen van GPIO 12, 16
- Wanneer u naar de oneindige lus gaat, opent u het logbestand als toevoegmodus
- Lees de CPU-temperatuur door de opdracht "/opt/vc/bin/vcgencmd measure_temp" uit te voeren
- Wanneer de temperatuur binnen het bereik van 30 ~ 39 ligt, voer dan 00 uit om de groene LED in te schakelen
- Wanneer de temperatuur binnen het bereik van 40 ~ 44 ligt, voert u 01 uit om de gele LED in te schakelen
- Wanneer de temperatuur binnen het bereik van 45 ~ 49 ligt, voert u 10 uit om de rode LED in te schakelen
- Wanneer de temperatuur hoger is dan 50, uitgang 11 om de rode LED te laten knipperen
- Schrijf tijdstempel en temperatuurgegevens naar logbestand
Stap 10: INDICATOR Bediening
Als alles in orde is, kunt u zien dat elke LED aan is of knippert volgens de CPU-temperatuur.
U hoeft geen shell-opdracht in te voeren om de huidige temperatuur te controleren.
Na het verzamelen van gegevens in het logbestand en het omzetten van tekstgegevens in een grafiek met behulp van Excel, wordt het resultaat weergegeven in de bovenstaande afbeelding.
Bij hoge belasting (twee Midori-browsers draaien en YouTube-video afspelen), stijgt de CPU-temperatuur tot 57,9 ° C.
Stap 11: Alternatief maken (met behulp van NPN-transistor) en verdere ontwikkeling
Dit is een eerder voorbeeld van een INDICATOR-project waarin NPN-transistoren (2N3904 en BD139) worden gebruikt.
Zoals u kunt zien, is er nog een IC (74HC04, Quad-omvormers) nodig om de NPN-transistor aan te sturen, aangezien er een HOOG niveau-spanning moet worden toegepast op de basis van de NPN om de transistor in te schakelen.
Samenvattend: het gebruik van een NPN-transistor voegt onnodige complexiteit toe om een INDICATOR-circuit te maken.
Voor de verdere ontwikkeling van dit project zal ik een koelventilator toevoegen zoals weergegeven in de afbeelding hierboven om het INDICATOR-circuit nuttiger te maken.
Aanbevolen:
$ 3 Computer CPU-inlaatventilatorkanaal 7 stappen (met afbeeldingen) - Ajarnpa
$ 3 Computer CPU-inlaatventilatorkanaal: Als u een inlaatkanaal rechtstreeks van de zijkant van uw computerkast naar de CPU-ventilator heeft, kunt u veel betere koeling krijgen dan elke andere (lucht)koelingsoptie. In plaats van lucht te gebruiken die wordt aangezogen uit een poort aan de voorkant, die tijd heeft om op te warmen van andere componenten
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
DIY CPU-waterblok: 11 stappen (met afbeeldingen)
DIY CPU-waterblok: ik wilde al een tijdje een CPU-waterkoelblok maken en nadat ik had gezien hoe Linus van LinusTechTips er een maakte in zijn Scrapyard Wars-serie, besloot ik dat het tijd werd dat ik er zelf een ging maken. block is geïnspireerd op Linus', w
Een computer demonteren met eenvoudige stappen en afbeeldingen: 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een computer demonteren met eenvoudige stappen en afbeeldingen: dit is een instructie over het demonteren van een pc. De meeste basiscomponenten zijn modulair en gemakkelijk te verwijderen. Wel is het belangrijk dat je er goed over georganiseerd bent. Dit zal helpen voorkomen dat u onderdelen kwijtraakt, en ook bij het maken van de hermontage e
Laptop Cooling Pad DIY - Geweldige lifehacks met CPU-ventilator - Creatieve ideeën - Computerventilator: 12 stappen (met afbeeldingen)
Laptop Cooling Pad DIY | Geweldige lifehacks met CPU-ventilator | Creatieve ideeën | Computerfan: je moet deze video tot het einde bekijken. voor het begrijpen van de video