Πίνακας περιεχομένων:
- Βήμα 1: Προετοιμασία σχημάτων
- Βήμα 2: Δημιουργία σχεδίου PCB
- Βήμα 3: Συγκόλληση
- Βήμα 4: Προετοιμασία δοκιμής
- Βήμα 5: Δοκιμή (η θερμοκρασία της CPU είναι μεσαίου επιπέδου)
- Βήμα 6: Δοκιμή (CPU Need Cooling Level)
- Βήμα 7: Τροφοδοσία στο κύκλωμα INDICATOR
- Βήμα 8: Καλωδίωση RPI
- Βήμα 9: Πρόγραμμα Python
- Βήμα 10: ΛΕΙΤΟΥΡΓΙΑ ΔΕΙΚΤΗΣ
- Βήμα 11: Εναλλακτική κατασκευή (χρήση τρανζίστορ NPN) και περαιτέρω ανάπτυξη
Βίντεο: Δείκτης θερμοκρασίας CPU Raspberry Pi: 11 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Προηγουμένως είχα εισαγάγει το απλό κύκλωμα δείκτη λειτουργίας 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 που φαίνεται παραπάνω είναι χρήσιμη για να ελαχιστοποιήσετε τυχόν λάθη.
Το σχέδιο γίνεται με τη χρήση power-point για τον εντοπισμό κάθε τμήματος στον γενικό πίνακα και την κατασκευή μοτίβων καλωδίωσης μεταξύ τμημάτων με σύρματα.
Καθώς οι εικόνες IC-pin και τρανζίστορ συνδέονται μαζί με το μοτίβο καλωδίωσης PCB, η συγκόλληση μπορεί να πραγματοποιηθεί χρησιμοποιώντας αυτό το σχέδιο.
Βήμα 3: Συγκόλληση
Παρόλο που το αρχικό σχέδιο PCB δεν χρησιμοποιείται μεμονωμένα καλώδια για τη σύνδεση εξαρτημάτων στο PCB, κολλάω κάπως διαφορετικά.
Χρησιμοποιώντας έναν αγωγό καλωδίων (όχι καλώδιο από κασσίτερο), προσπαθώ να μειώσω το γενικό μέγεθος PCB που περιέχει το κύκλωμα ΕΝΔΕΙΞΗ.
Αλλά όπως μπορείτε να δείτε στην πλευρά συγκόλλησης του PCB, χρησιμοποιώ καλώδιο κασσίτερου επίσης σύμφωνα με τα μοτίβα που απεικονίζονται στο σχέδιο PCB.
Όταν κάθε στοιχείο συνδέεται σύμφωνα με τον αρχικό σχεδιασμό του σχεδίου PCB, η συγκόλληση της ολοκληρωμένης πλακέτας PCB συμπεριλαμβανομένου του κυκλώματος INDICATOR θα λειτουργήσει σωστά.
Βήμα 4: Προετοιμασία δοκιμής
Πριν από τη σύνδεση RPI, το τελικό κύκλωμα απαιτεί δοκιμή.
Καθώς μπορεί να υπάρχουν λάθη συγκόλλησης, ο παροχέας ισχύος DC χρησιμοποιείται για την αποφυγή ζημιών όταν προκύψει βραχυκύκλωμα ή λάθος καλωδίωση.
Για τη δοκιμή του INDICATOR, δύο επιπλέον καλώδια τροφοδοσίας είναι συνδεδεμένα στο βύσμα τροφοδοσίας 5V του κυκλώματος.
Βήμα 5: Δοκιμή (η θερμοκρασία της CPU είναι μεσαίου επιπέδου)
Όταν δεν εφαρμόζεται είσοδος 5V τότε 74LS139 αποκωδικοποιεί την είσοδο και ενεργοποιεί την έξοδο Y0 ως LOW (η πράσινη λυχνία LED είναι ενεργοποιημένη).
Αλλά 5V εφαρμόστηκε στην είσοδο Α, η έξοδος Y1 του 74LS139 ενεργοποιείται (LOW).
Επομένως, το κίτρινο LED ανάβει όπως φαίνεται στην παραπάνω εικόνα.
Βήμα 6: Δοκιμή (CPU Need Cooling Level)
Όταν 5V εφαρμόζει και τις δύο εισόδους (Α και Β) του 74LS139, αναβοσβήνει η 4η κόκκινη λυχνία LED.
Ο ρυθμός αναλαμπής μπορεί να αλλάξει προσαρμόζοντας 100K VR όπως φαίνεται στην παραπάνω εικόνα.
Όταν ολοκληρωθεί ο έλεγχος, μπορούν να αφαιρεθούν δύο θηλυκά καλώδια Molex 3 ακίδων.
Βήμα 7: Τροφοδοσία στο κύκλωμα INDICATOR
Για την τροφοδοσία του κυκλώματος INDICATOR, χρησιμοποιώ κοινό φορτιστή τηλεφώνου, ο οποίος εξάγει προσαρμογέα 5V και USB τύπου B, όπως φαίνεται στην παραπάνω εικόνα.
Για να αποφύγετε το πρόβλημα με το RPI συνδέοντας κύκλωμα ΔΕΙΚΤΗ 3.3V GPIO και 5V, η διασύνδεση σήματος και η τροφοδοσία απομονώνονται πλήρως μεταξύ τους.
Βήμα 8: Καλωδίωση RPI
Για τη διασύνδεση κυκλώματος INDICATOR με RPI, πρέπει να αφιερωθούν δύο ακροδέκτες GPIO μαζί με δύο ακίδες γείωσης.
Δεν υπάρχει συγκεκριμένη απαίτηση για την επιλογή καρφιτσών GPIO.
Μπορείτε να χρησιμοποιήσετε οποιαδήποτε καρφίτσα GPIO για σύνδεση ΕΝΔΕΙΞΗ.
Αλλά οι ενσύρματες ακίδες πρέπει να ορίζονται ως είσοδοι στο 74LS139 (π.χ. Α, Β) στο πρόγραμμα python.
Βήμα 9: Πρόγραμμα 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) και περαιτέρω ανάπτυξη
Αυτό είναι προηγούμενο παράδειγμα έργου INDICATOR που χρησιμοποιεί τρανζίστορ NPN (2N3904 και BD139).
Όπως μπορείτε να δείτε ένα ακόμη IC (74HC04, Quad invertors) είναι απαραίτητο για να οδηγήσετε το τρανζίστορ NPN καθώς θα πρέπει να εφαρμοστεί υψηλή τάση στη βάση του NPN για να ενεργοποιήσετε το τρανζίστορ.
Συνοψίζοντας, η χρήση τρανζίστορ NPN προσθέτει περιττή πολυπλοκότητα για να κάνει κύκλωμα ΔΕΙΚΤΗΣ.
Για την περαιτέρω ανάπτυξη αυτού του έργου, θα προσθέσω ανεμιστήρα ψύξης όπως φαίνεται στην παραπάνω εικόνα για να καταστήσω το κύκλωμα INDICATOR πιο χρήσιμο.
Συνιστάται:
Δείκτης WiFi εργασίας από το σπίτι: 5 βήματα (με εικόνες)
Δείκτης WiFi Work From Home: Για όσους είναι αρκετά τυχεροί για να μπορούν να εργάζονται από το σπίτι, πιθανότατα διαπιστώνουμε ότι υπάρχουν μερικές σημαντικές προκλήσεις όταν πρόκειται για όρια με άλλους στο σπίτι. Για να βοηθήσω σε αυτό, δημιούργησα αυτό πραγματικά απλή κατασκευή που σας επιτρέπει να
Ρυθμιζόμενος ανεμιστήρας PWM βάσει θερμοκρασίας CPU για Raspberry Pi: 4 βήματα (με εικόνες)
Ρυθμιζόμενος ανεμιστήρας PWM με βάση τη θερμοκρασία της CPU για το Raspberry Pi: Πολλές θήκες για το Raspberry Pi συνοδεύονται από μικρό ανεμιστήρα 5V για να βοηθήσουν στην ψύξη της CPU. Ωστόσο, αυτοί οι ανεμιστήρες είναι συνήθως αρκετά θορυβώδεις και πολλοί άνθρωποι το συνδέουν στην ακίδα 3V3 για να μειώσουν τον θόρυβο. Αυτοί οι ανεμιστήρες συνήθως βαθμολογούνται για 200mA που είναι αρκετά ω
Δείκτης θερμοκρασίας και υγρασίας από Arduino: 7 βήματα (με εικόνες)
Δείκτης θερμοκρασίας και υγρασίας από Arduino: Αυτή η οδηγία θα δείξει πώς να φτιάξετε ένα κουτί που μπορεί να υποδεικνύει θερμοκρασία και υγρασία με το Arduino Μπορείτε να το βάλετε στο τραπέζι για τη μέτρηση της θερμοκρασίας και της υγρασίας στο δωμάτιό σας Με υψηλή ποιότητα κουτιού MDF με κοπή λέιζερ, κάθε πράγμα συμπιεσμένο f
Ανάγνωση θερμοκρασίας με χρήση αισθητήρα θερμοκρασίας LM35 με Arduino Uno: 4 βήματα
Ανάγνωση θερμοκρασίας με χρήση αισθητήρα θερμοκρασίας LM35 με Arduino Uno: Γεια σας παιδιά σε αυτό το εκπαιδευτικό εγχειρίδιο θα μάθουμε πώς να χρησιμοποιούμε το LM35 με το Arduino. Το Lm35 είναι ένας αισθητήρας θερμοκρασίας που μπορεί να διαβάσει τιμές θερμοκρασίας από -55 ° C έως 150 ° C. Είναι μια τερματική συσκευή που παρέχει αναλογική τάση ανάλογη της θερμοκρασίας. Υψηλή
ESP32 NTP Θερμόμετρο μαγειρέματος θερμοκρασίας ανιχνευτή θερμοκρασίας με διόρθωση και συναγερμό θερμοκρασίας Steinhart-Hart .: 7 βήματα (με εικόνες)
ESP32 NTP Θερμόμετρο Θερμόμετρο μαγειρέματος με διόρθωση και συναγερμό θερμοκρασίας Steinhart-Hart .: Ακόμα στο ταξίδι για να ολοκληρώσετε ένα «επερχόμενο έργο», ", ESP32 NTP Temperature Probe Cooking Thermometer With Steinhart-Hart Correction and Temperature Alarm " είναι ένας οδηγός που δείχνει πώς προσθέτω έναν αισθητήρα θερμοκρασίας NTP, piezo b