Πίνακας περιεχομένων:

Δείκτης θερμοκρασίας CPU Raspberry Pi: 11 βήματα (με εικόνες)
Δείκτης θερμοκρασίας CPU Raspberry Pi: 11 βήματα (με εικόνες)

Βίντεο: Δείκτης θερμοκρασίας CPU Raspberry Pi: 11 βήματα (με εικόνες)

Βίντεο: Δείκτης θερμοκρασίας CPU Raspberry Pi: 11 βήματα (με εικόνες)
Βίντεο: 5 Δωρεάν Εφαρμογές Windows 10 που ΔΕΝ ΠΡΕΠΕΙ ΝΑ ΛΕΙΠΟΥΝ Από Κανένα PC 2024, Ιούλιος
Anonim
Δείκτης θερμοκρασίας CPU Raspberry Pi
Δείκτης θερμοκρασίας CPU Raspberry Pi

Προηγουμένως είχα εισαγάγει το απλό κύκλωμα δείκτη λειτουργίας raspberry pi (στο εξής ως RPI).

Αυτή τη φορά, θα εξηγήσω ένα πιο χρήσιμο κύκλωμα ενδείξεων για το RPI που λειτουργεί ως ακέφαλο (χωρίς οθόνη).

Το παραπάνω κύκλωμα δείχνει τη θερμοκρασία της CPU σε 4 διαφορετικά επίπεδα, όπως:

- Η πράσινη λυχνία LED ανάβει όταν η θερμοκρασία της CPU είναι εντός 30 ~ 39 μοίρες

- Η κίτρινη λυχνία LED δείχνει ότι η θερμοκρασία είναι αυξημένη σε εύρος 40 έως 45 μοίρες

- Η 3η κόκκινη λυχνία LED δείχνει ότι η CPU ζεσταίνεται λίγο φτάνοντας τους 46 ~ 49 βαθμούς

- Ένα άλλο κόκκινο LED θα αναβοσβήνει όταν η θερμοκρασία υπερβεί τους 50 βαθμούς

Τα παραπάνω εύρη θερμοκρασίας CPU είναι η προσωπική μου ιδέα σχεδιασμού (Άλλα εύρη θερμοκρασίας μπορούν να διαμορφωθούν με αλλαγή των συνθηκών δοκιμής του προγράμματος python που ελέγχουν αυτό το κύκλωμα).

Χρησιμοποιώντας αυτό το κύκλωμα, δεν εκτελείτε απαραιτήτως την εντολή "vcgencmd μέτρησης_temp" συχνά στο τερματικό της κονσόλας.

Αυτό το κύκλωμα ενημερώνει συνεχώς και βολικά την τρέχουσα θερμοκρασία της CPU.

Βήμα 1: Προετοιμασία σχημάτων

Προετοιμασία σχημάτων
Προετοιμασία σχημάτων

Παρόλο που μπορείτε να ελέγξετε 4 LED απευθείας χρησιμοποιώντας μόνο κώδικες python, οι λογικές ελέγχου του προγράμματος θα φορτώσουν το RPI και ως αποτέλεσμα, η θερμοκρασία της CPU θα αυξηθεί περισσότερο επειδή θα πρέπει να εκτελείτε λίγο πολύπλοκο κώδικα python συνεχώς.

Ως εκ τούτου, ελαχιστοποιώ την πολυπλοκότητα του κώδικα python όσο το δυνατόν απλούστερα και τη λογική ελέγχου LED χωρίς φόρτωση σε εξωτερικό κύκλωμα υλικού.

Το κύκλωμα του δείκτη θερμοκρασίας CPU (στο εξής INICATOR) αποτελείται από τα ακόλουθα κύρια μέρη.

-Δύο οπτικοί συζεύκτες είναι συνδεδεμένοι με ακίδες RPI GPIO για να λάβουν δεδομένα επιπέδου θερμοκρασίας όπως 00-> LOW, 01-> Medium, 10-> High, 11-> Χρειάζονται ψύξη.

-74LS139 (ή 74HC139, αποκωδικοποιητής 2 έως 4 και de-multiplexer) έξοδοι ελέγχου (Y0, Y1, Y2, Y3) σύμφωνα με τις εισόδους (A, B)

- Όταν η θερμοκρασία είναι εντός 30 ~ 39 μοίρες, ο κωδικός python εξέρχεται 00 σε ακίδες GPIO. Επομένως, το 74LS139 λαμβάνει δεδομένα εισόδου 00 (A-> 0, B-> 0)

- Καθώς εισάγεται το 00, η έξοδος Y0 γίνεται ΧΑΜΗΛΗ. (Παρακαλώ ανατρέξτε στον πίνακα αλήθειας του 74LS139)

- Όταν η έξοδος Y0 γίνεται ΧΑΜΗΛΗ, ενεργοποιεί το τρανζίστορ 2N3906 PNP και ως αποτέλεσμα, ανάβει το πράσινο LED

- Ομοίως, το Y1 (01 -> μέσο θερμοκρασίας CPU) θα ανάψει το κίτρινο LED και ούτω καθεξής

- Όταν το Y3 γίνεται ΧΑΜΗΛΟ, το DB140 ενεργοποιεί το κύκλωμα αναβοσβήνει LED NE555 (αυτό είναι το κοινό 555 IC που αναβοσβήνει με βάση το IC) το οποίο είναι φορτίο του τρανζίστορ BD140 PNP

Το πιο σημαντικό στοιχείο αυτού του κυκλώματος είναι το 74LS139, το οποίο αποκωδικοποιεί 2 ψηφία εισόδου σε 4 διαφορετικές μονές εξόδους, όπως φαίνεται στον παρακάτω πίνακα αλήθειας.

Εισαγωγή | Παραγωγή

G (Ενεργοποίηση) | Β | A | Υ0 | Υ1 | Υ2 | Υ3 |

Η | Χ | Χ | Η | Η | Η | Η |

L | L | L | L | Η | Η | Η |

L | L | Η | Η | L | Η | Η |

L | Η | L | Η | Η | L | Η |

L | Η | Η | Η | Η | Η | L |

Καθώς η έξοδος 74LS139 γίνεται ΧΑΜΗΛΗ, το τρανζίστορ τύπου PNP μπορεί να κάνει το συνολικό κύκλωμα απλό καθώς το τρανζίστορ PNP είναι ενεργοποιημένο όταν ο ακροδέκτης βάσης γίνεται ΧΑΜΗΛΟΣ. (Θα δείξω την έκδοση NPN στο τέλος αυτής της ιστορίας)

Καθώς το ποτενσιόμετρο 100K περιλαμβάνεται στο κύκλωμα αναλαμπής LED NE555, ο χρόνος ενεργοποίησης/απενεργοποίησης του κόκκινου LED μπορεί να ρυθμιστεί ελεύθερα σύμφωνα με τις ανάγκες.

Βήμα 2: Δημιουργία σχεδίου PCB

Κατασκευή σχεδίου PCB
Κατασκευή σχεδίου PCB

Καθώς εξηγείται το σχήμα λειτουργίας του ΔΕΙΚΤΗ, ας ξεκινήσουμε να κάνουμε το κύκλωμα.

Πριν συγκολλήσετε κάτι σε γενική πλακέτα, η προετοιμασία του σχεδίου PCB που φαίνεται παραπάνω είναι χρήσιμη για να ελαχιστοποιήσετε τυχόν λάθη.

Το σχέδιο γίνεται με τη χρήση power-point για τον εντοπισμό κάθε τμήματος στον γενικό πίνακα και την κατασκευή μοτίβων καλωδίωσης μεταξύ τμημάτων με σύρματα.

Καθώς οι εικόνες IC-pin και τρανζίστορ συνδέονται μαζί με το μοτίβο καλωδίωσης PCB, η συγκόλληση μπορεί να πραγματοποιηθεί χρησιμοποιώντας αυτό το σχέδιο.

Βήμα 3: Συγκόλληση

Συγκόλληση
Συγκόλληση

Παρόλο που το αρχικό σχέδιο PCB δεν χρησιμοποιείται μεμονωμένα καλώδια για τη σύνδεση εξαρτημάτων στο PCB, κολλάω κάπως διαφορετικά.

Χρησιμοποιώντας έναν αγωγό καλωδίων (όχι καλώδιο από κασσίτερο), προσπαθώ να μειώσω το γενικό μέγεθος PCB που περιέχει το κύκλωμα ΕΝΔΕΙΞΗ.

Αλλά όπως μπορείτε να δείτε στην πλευρά συγκόλλησης του PCB, χρησιμοποιώ καλώδιο κασσίτερου επίσης σύμφωνα με τα μοτίβα που απεικονίζονται στο σχέδιο PCB.

Όταν κάθε στοιχείο συνδέεται σύμφωνα με τον αρχικό σχεδιασμό του σχεδίου PCB, η συγκόλληση της ολοκληρωμένης πλακέτας PCB συμπεριλαμβανομένου του κυκλώματος INDICATOR θα λειτουργήσει σωστά.

Βήμα 4: Προετοιμασία δοκιμής

Προετοιμασία δοκιμής
Προετοιμασία δοκιμής

Πριν από τη σύνδεση RPI, το τελικό κύκλωμα απαιτεί δοκιμή.

Καθώς μπορεί να υπάρχουν λάθη συγκόλλησης, ο παροχέας ισχύος DC χρησιμοποιείται για την αποφυγή ζημιών όταν προκύψει βραχυκύκλωμα ή λάθος καλωδίωση.

Για τη δοκιμή του INDICATOR, δύο επιπλέον καλώδια τροφοδοσίας είναι συνδεδεμένα στο βύσμα τροφοδοσίας 5V του κυκλώματος.

Βήμα 5: Δοκιμή (η θερμοκρασία της CPU είναι μεσαίου επιπέδου)

Δοκιμή (η θερμοκρασία της CPU είναι μεσαίου επιπέδου)
Δοκιμή (η θερμοκρασία της CPU είναι μεσαίου επιπέδου)

Όταν δεν εφαρμόζεται είσοδος 5V τότε 74LS139 αποκωδικοποιεί την είσοδο και ενεργοποιεί την έξοδο Y0 ως LOW (η πράσινη λυχνία LED είναι ενεργοποιημένη).

Αλλά 5V εφαρμόστηκε στην είσοδο Α, η έξοδος Y1 του 74LS139 ενεργοποιείται (LOW).

Επομένως, το κίτρινο LED ανάβει όπως φαίνεται στην παραπάνω εικόνα.

Βήμα 6: Δοκιμή (CPU Need Cooling Level)

Δοκιμή (CPU Need Cooling Level)
Δοκιμή (CPU Need Cooling Level)

Όταν 5V εφαρμόζει και τις δύο εισόδους (Α και Β) του 74LS139, αναβοσβήνει η 4η κόκκινη λυχνία LED.

Ο ρυθμός αναλαμπής μπορεί να αλλάξει προσαρμόζοντας 100K VR όπως φαίνεται στην παραπάνω εικόνα.

Όταν ολοκληρωθεί ο έλεγχος, μπορούν να αφαιρεθούν δύο θηλυκά καλώδια Molex 3 ακίδων.

Βήμα 7: Τροφοδοσία στο κύκλωμα INDICATOR

Τροφοδοσία στο κύκλωμα INDICATOR
Τροφοδοσία στο κύκλωμα INDICATOR

Για την τροφοδοσία του κυκλώματος INDICATOR, χρησιμοποιώ κοινό φορτιστή τηλεφώνου, ο οποίος εξάγει προσαρμογέα 5V και USB τύπου B, όπως φαίνεται στην παραπάνω εικόνα.

Για να αποφύγετε το πρόβλημα με το RPI συνδέοντας κύκλωμα ΔΕΙΚΤΗ 3.3V GPIO και 5V, η διασύνδεση σήματος και η τροφοδοσία απομονώνονται πλήρως μεταξύ τους.

Βήμα 8: Καλωδίωση RPI

Καλωδίωση RPI
Καλωδίωση RPI

Για τη διασύνδεση κυκλώματος INDICATOR με RPI, πρέπει να αφιερωθούν δύο ακροδέκτες GPIO μαζί με δύο ακίδες γείωσης.

Δεν υπάρχει συγκεκριμένη απαίτηση για την επιλογή καρφιτσών GPIO.

Μπορείτε να χρησιμοποιήσετε οποιαδήποτε καρφίτσα GPIO για σύνδεση ΕΝΔΕΙΞΗ.

Αλλά οι ενσύρματες ακίδες πρέπει να ορίζονται ως είσοδοι στο 74LS139 (π.χ. Α, Β) στο πρόγραμμα python.

Βήμα 9: Πρόγραμμα Python

Πρόγραμμα Python
Πρόγραμμα Python

Καθώς ολοκληρώνεται το κύκλωμα, απαιτείται η δημιουργία προγράμματος python για τη χρήση της συνάρτησης INDICATOR.

Ανατρέξτε στο παραπάνω διάγραμμα ροής για περισσότερες λεπτομέρειες σχετικά με τη λογική του προγράμματος.

#-*-κωδικοποίηση: utf-8-*-

εισαγωγή υποεπεξεργασίας, σήματος, sys

χρόνος εισαγωγής, re

εισαγωγή RPi. GPIO ως g

Α = 12

Β = 16

g.setmode (g. BCM)

g.setup (A, g. OUT)

g.setup (B, g. OUT)

##

def signal_handler (sig, frame):

εκτύπωση ('Πιέσατε Ctrl+C!')

g.output (A, False)

g. έξοδος (B, False)

στ. κλείσιμο ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

ενώ True:

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

temp_str = subprocess.check_output ('/opt/vc/bin/vcgencmd masë_temp', shell = True)

temp_str = temp_str.decode (κωδικοποίηση = 'UTF-8', λάθη = 'αυστηρό')

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

# εξαγωγή τρέχουσας θερμοκρασίας CPU

current_temp = float (CPU_temp [0])

εάν current_temp> 30 και current_temp <40:

# χαμηλή θερμοκρασία Α = 0, Β = 0

g.output (A, False)

g. έξοδος (B, False)

ώρα. ύπνος (5)

elif current_temp> = 40 και current_temp <45:

# μέσο θερμοκρασίας Α = 0, Β = 1

g.output (A, False)

g. έξοδος (B, True)

ώρα. ύπνος (5)

elif current_temp> = 45 και current_temp <50:

# υψηλή θερμοκρασία Α = 1, Β = 0

g.output (A, True)

g. έξοδος (B, False)

ώρα. ύπνος (5)

elif current_temp> = 50:

# Απαιτείται ψύξη CPU υψηλή A = 1, B = 1

g.output (A, True)

g. έξοδος (B, True)

ώρα. ύπνος (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')

στ. κλείσιμο ()

Η κύρια λειτουργία του προγράμματος python είναι όπως παρακάτω.

- Πρώτα ρυθμίστε το GPIO 12, 16 ως θύρα εξόδου

- Ορισμός χειριστή διακοπών Ctrl+C για κλείσιμο αρχείου καταγραφής και απενεργοποίηση GPIO 12, 16

- Όταν εισάγετε σε άπειρο βρόχο, ανοίξτε το αρχείο καταγραφής ως λειτουργία προσάρτησης

- Διαβάστε τη θερμοκρασία της CPU εκτελώντας την εντολή "/opt/vc/bin/vcgencmd μέτρηση_temp"

- Όταν η θερμοκρασία είναι στην περιοχή 30 ~ 39, τότε βγάλτε 00 για να ενεργοποιήσετε το πράσινο LED

- Όταν η θερμοκρασία είναι στην περιοχή 40 ~ 44, τότε εξάγετε 01 για να ενεργοποιήσετε την κίτρινη λυχνία LED

- Όταν η θερμοκρασία είναι στην περιοχή 45 ~ 49, τότε βγείτε 10 για να ενεργοποιήσετε την κόκκινη λυχνία LED

- Όταν η θερμοκρασία είναι πάνω από 50, τότε βγείτε 11 για να αναβοσβήνει η κόκκινη λυχνία LED

- Γράψτε χρονική σφραγίδα και δεδομένα θερμοκρασίας στο αρχείο καταγραφής

Βήμα 10: ΛΕΙΤΟΥΡΓΙΑ ΔΕΙΚΤΗΣ

ΛΕΙΤΟΥΡΓΙΑ ΛΕΙΤΟΥΡΓΙΑΣ
ΛΕΙΤΟΥΡΓΙΑ ΛΕΙΤΟΥΡΓΙΑΣ

Όταν όλα είναι εντάξει, μπορείτε να δείτε ότι κάθε LED ανάβει ή αναβοσβήνει ανάλογα με τη θερμοκρασία της CPU.

Δεν χρειάζεται να εισαγάγετε την εντολή κελύφους για να ελέγξετε την τρέχουσα θερμοκρασία.

Μετά τη συλλογή δεδομένων στο αρχείο καταγραφής και την απόδοση δεδομένων κειμένου σε γράφημα χρησιμοποιώντας το Excel, το αποτέλεσμα εμφανίζεται στην παραπάνω εικόνα.

Κατά την εφαρμογή υψηλών φορτίων (Εκτέλεση δύο προγράμματα περιήγησης Midori και αναπαραγωγή βίντεο στο Youtube), η θερμοκρασία της CPU αυξάνεται έως τους 57,9C.

Βήμα 11: Εναλλακτική κατασκευή (χρήση τρανζίστορ NPN) και περαιτέρω ανάπτυξη

Εναλλακτική κατασκευή (χρήση τρανζίστορ NPN) και περαιτέρω ανάπτυξη
Εναλλακτική κατασκευή (χρήση τρανζίστορ NPN) και περαιτέρω ανάπτυξη

Αυτό είναι προηγούμενο παράδειγμα έργου INDICATOR που χρησιμοποιεί τρανζίστορ NPN (2N3904 και BD139).

Όπως μπορείτε να δείτε ένα ακόμη IC (74HC04, Quad invertors) είναι απαραίτητο για να οδηγήσετε το τρανζίστορ NPN καθώς θα πρέπει να εφαρμοστεί υψηλή τάση στη βάση του NPN για να ενεργοποιήσετε το τρανζίστορ.

Συνοψίζοντας, η χρήση τρανζίστορ NPN προσθέτει περιττή πολυπλοκότητα για να κάνει κύκλωμα ΔΕΙΚΤΗΣ.

Για την περαιτέρω ανάπτυξη αυτού του έργου, θα προσθέσω ανεμιστήρα ψύξης όπως φαίνεται στην παραπάνω εικόνα για να καταστήσω το κύκλωμα INDICATOR πιο χρήσιμο.

Συνιστάται: