Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Ρυθμίστε τον ανεμιστήρα σας
- Βήμα 2: Δημιουργήστε έναν ελεγκτή PI (D)
- Βήμα 3: Εκτέλεση σεναρίου ελέγχου κατά την εκκίνηση
Βίντεο: Ακριβής έλεγχος θερμοκρασίας στα βήματα Raspberry Pi 4: 3
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:33
Το Pimoroni Fan Shim είναι μια εξαιρετική λύση για τη μείωση της θερμοκρασίας του Pi σας όταν ζεσταίνεται. Οι κατασκευαστές παρέχουν ακόμη και λογισμικό που ενεργοποιεί τον ανεμιστήρα όταν η θερμοκρασία της CPU ανέβει πάνω από ένα ορισμένο όριο (π.χ. 65 μοίρες). Η θερμοκρασία μειώνεται γρήγορα κάτω από ένα χαμηλότερο όριο και απενεργοποιεί τον ανεμιστήρα. Αυτό είναι εξαιρετικό, αλλά προκαλεί την άνοδο και την πτώση της θερμοκρασίας κάτω από μέτρια φορτία και δημιουργεί ηχητικό θόρυβο ανεμιστήρα. Αυτό το εκπαιδευτικό θα μειώσει τον θόρυβο του ανεμιστήρα ενώ θα καθορίσει τη θερμοκρασία της CPU σε μια συγκεκριμένη τιμή χρησιμοποιώντας κάτι που ονομάζεται ελεγκτής PID. Υψηλότερα κατώφλια (π.χ. 65 μοίρες) θα έχουν ως αποτέλεσμα έναν πολύ πιο αθόρυβο ανεμιστήρα, ενώ τα χαμηλότερα κατώφλια (π.χ. 50 μοίρες) θα έχουν ως αποτέλεσμα έναν δυνατότερο ανεμιστήρα αλλά καλύτερο έλεγχο θερμοκρασίας.
Το παραπάνω παράδειγμα δείχνει τα αποτελέσματά μου από τη λειτουργία του ελεγκτή PID και την αλλαγή της θερμοκρασίας στόχου κάθε 500 δευτερόλεπτα. Η ακρίβεια είναι +/- 1 μοίρα με κάποια υπέρβαση σε ξαφνικές αλλαγές θερμοκρασίας.
Είναι σημαντικό ότι αυτή η δοκιμή πραγματοποιήθηκε με το ίδιο φορτίο για το συνολικό χρόνο δοκιμής (παρακολούθηση του iPlayer του BBC).
Προμήθειες
- Raspberry Pi 4
- Pimoroni Fan Shim
Βήμα 1: Ρυθμίστε τον ανεμιστήρα σας
Το πρώτο βήμα είναι να ρυθμίσετε τον ανεμιστήρα σας. Το φροντιστήριο Pimorini είναι υπέροχο!
Στη συνέχεια, ανοίξτε το τερματικό στο Pi σας (ctrl alt t)
Και εγκαταστήστε τον κωδικό που παρέχεται από το Pimoroni
git clone https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh
Βήμα 2: Δημιουργήστε έναν ελεγκτή PI (D)
Ένας ελεγκτής Proportional Integral Derivative (PID) είναι ένα σύστημα που χρησιμοποιείται για τον έλεγχο της τιμής μιας συγκεκριμένης διαδικασίας (θερμοκρασία CPU) με χειρισμό κάποιας φυσικής συσκευής (Fan Speed). Μπορούμε να χειριστούμε την «ταχύτητα» και τον θόρυβο του ανεμιστήρα ενεργοποιώντας και απενεργοποιώντας τον περιοδικά (Διαμόρφωση Παλμικού Κύματος). Το χρονικό διάστημα που είναι ενεργοποιημένο για μια δεδομένη περίοδο (π.χ. 1 δευτερόλεπτο) καθορίζει πόσο γρήγορα και πόσο δυνατά είναι ο ανεμιστήρας (900ms = δυνατά και γρήγορα, 100ms = αθόρυβα και αργά). Θα χρησιμοποιήσουμε το PID για να χειριστούμε την ταχύτητα του ανεμιστήρα και έτσι να ελέγξουμε τη θερμοκρασία.
Μπορούμε να χωρίσουμε τη χρήση ενός PID σε πολλά βήματα.
- Αποφασίστε για την τιμή της μεταβλητής διεργασίας που θέλετε να επιτύχετε (π.χ. θερμοκρασία CPU = 55). Αυτό ονομάζεται σημείο ρύθμισης.
- Υπολογίστε το σφάλμα PID. Εάν το σημείο ρύθμισης είναι 55 μοίρες και η πραγματική θερμοκρασία 60 μοίρες, το σφάλμα σας είναι 5 μοίρες (Θερμοκρασία - σημείο ρύθμισης)
- Αλλάξτε την έγκαιρη λειτουργία του ανεμιστήρα ανάλογα με το σφάλμα (Μεγάλα σφάλματα έχουν ως αποτέλεσμα μεγάλες αλλαγές στην ταχύτητα του ανεμιστήρα, μικρά σφάλματα προκαλούν μικρές αλλαγές στην ταχύτητα του ανεμιστήρα).
- Προσαρμόστε τον ανεμιστήρα ανάλογα με τις προηγούμενες τιμές (Ολόκληρο/άθροισμα όλων των προηγούμενων σφαλμάτων)
- Προαιρετικά, μπορείτε να ρυθμίσετε την ταχύτητα του ανεμιστήρα με βάση το ρυθμό αλλαγής του σφάλματος (παράγωγο), αλλά δεν θα το κάνουμε εδώ
Τώρα που έχετε τη θεωρία εκτελέστε τον παρακάτω κώδικα στο Thonny IDE (ή σε κάποιο άλλο IDE python). Αλλάξτε την τιμή του "στόχου" στον παρακάτω κώδικα για να αλλάξετε τη θερμοκρασία στην οποία θέλετε να διατηρήσετε το Pi σας. Έχω θέσει τους όρους "P" και "I" σε κάπως αυθαίρετες τιμές. Μη διστάσετε να τα προσαρμόσετε αν δεν λειτουργούν για εσάς. Μεγαλύτερο «P» σημαίνει ότι ο ελεγκτής θα ανταποκριθεί γρήγορα σε νέα σφάλματα (αλλά μπορεί να μην είναι σταθερός). Η αλλαγή του "I" θα προκαλέσει στον ελεγκτή τη βαρύτητα της απόκρισης του σε προηγούμενες τιμές. Δεν θα προσπαθούσα να κάνω αυτούς τους όρους πολύ μεγάλους καθώς η γρήγορη αλλαγή της ταχύτητας του ανεμιστήρα δεν θα αλλάξει γρήγορα τη θερμοκρασία. Επίσης, εάν κάνετε απίστευτα βαριά δουλειά στο Pi σας, μπορεί να μην επιτύχετε την επιθυμητή θερμοκρασία (τα όρια του ανεμιστήρα εξακολουθούν να ισχύουν).
από την εισαγωγή fanshim FanShim
από εισαγωγή ύπνου χρόνου, εισαγωγή χρόνου os εισαγωγή μαθηματικών # Επιστροφή θερμοκρασίας CPU ως συμβολοσειρά χαρακτήρων def getCPUtemperature (): res = os.popen ('vcgencmd μέτρο_temp'). readline () return (res.replace ("temp =", " "). αντικατάσταση (" 'C / n "," ")) fanshim = FanShim () target = 55 # επιθυμητή θερμοκρασία (παίξτε με αυτό και δείτε τι συμβαίνει) περίοδο = 1 # Περίοδος PWM σε =.1 # αρχικοποίηση σε 0 % off cycle cycle = period-on # αρχικοποίηση σε 0% κύκλος λειτουργίας P =.01 # αναλογική Όρος κέρδους (παίξτε με αυτό και δείτε τι συμβαίνει) intErr = 0 # ολοκληρωμένο σφάλμα I =.0001 # όρος intergral κέρδους (παίξτε με αυτό και δείτε τι συμβαίνει) ενώ True: # get temperaute temp = int (float (getCPUtemperature ())) # υπολογισμός σφάλματος και ομαλή err = temp-target # compute integra lerror και περιορισμό intErr = intErr+err if intErr> 10: intErr = 10 εάν intErr = period: on = period off = 0 else: on = on off = period-on # ορίστε τον ελάχιστο κύκλο λειτουργίας εάν είναι ενεργοποιημένο <.09: on =.09 else: on = on # PWM on the fanshim pin if σε == περίοδο: fanshim.set_fan (True) sleep (on) else: fanshim.set_fan (True) s leep (on) fanshim.set_fan (False) sleep (off)
Βήμα 3: Εκτέλεση σεναρίου ελέγχου κατά την εκκίνηση
Θα μπορούσατε να εκτελέσετε αυτό το σενάριο κάθε φορά που ξεκινάτε το pi ή θα μπορούσατε να το ενεργοποιήσετε αυτόματα κατά την επανεκκίνηση. Αυτό είναι εξαιρετικά απλό να το κάνετε με το crontab.
- ανοίξτε το τερματικό
- πληκτρολογήστε crontab-e στο τερματικό
- προσθέστε την ακόλουθη γραμμή κώδικα στο αρχείο '@reboot python /home/pi/bootScripts/fanControl.py &'
- έξοδο και επανεκκίνηση
Έβαλα το σενάριο (fanControl.py) σε ένα floder που ονομάζεται bootScripts, αλλά μπορείτε να το βάλετε οπουδήποτε, βεβαιωθείτε ότι έχετε καθορίσει τη σωστή διαδρομή στο crontab.
Ολα τελείωσαν! Τώρα ο ανεμιστήρας σας θα ελέγχει τη θερμοκρασία της CPU σας σε μια συγκεκριμένη τιμή, ελαχιστοποιώντας ταυτόχρονα τον ηχητικό θόρυβο που παράγει.
Συνιστάται:
‘Round’ Word Clock (στα ολλανδικά και στα αγγλικά!): 8 βήματα (με εικόνες)
‘Round’ Word Clock (στα ολλανδικά και στα αγγλικά!): Πριν από μερικά χρόνια είδα για πρώτη φορά ένα ρολόι λέξεων στο διαδίκτυο. Από τότε, ήθελα πάντα να φτιάξω ένα μόνος μου. Υπάρχουν πολλές οδηγίες χρήσης, αλλά ήθελα να φτιάξω κάτι πρωτότυπο. Δεν ξέρω πολλά για ηλεκτρονικά, οπότε χρησιμοποίησα ένα
Αποστολή δεδομένων ασύρματης δόνησης και θερμοκρασίας στα Υπολογιστικά φύλλα Google χρησιμοποιώντας το Node-RED: 37 βήματα
Αποστολή δεδομένων ασύρματης δόνησης και θερμοκρασίας στα Υπολογιστικά φύλλα Google χρησιμοποιώντας το Node-RED: Παρουσίαση του ασύρματου αισθητήρα δόνησης και θερμοκρασίας NCD's Long Range IoT Industrial, με εύρος έως και 2 μιλίων με τη χρήση ασύρματης δομής δικτύωσης πλέγματος. Ενσωματώνοντας έναν αισθητήρα δόνησης και θερμοκρασίας 16-bit ακριβείας, αυτή η συσκευή μετατρέπει
Έλεγχος φωτεινότητας Έλεγχος LED βασισμένος σε PWM χρησιμοποιώντας κουμπιά, Raspberry Pi και Scratch: 8 βήματα (με εικόνες)
Έλεγχος φωτεινότητας PWM Βασισμένος έλεγχος LED χρησιμοποιώντας κουμπιά, Raspberry Pi και Scratch: Προσπαθούσα να βρω έναν τρόπο να εξηγήσω πώς λειτουργούσε το PWM στους μαθητές μου, οπότε έθεσα τον εαυτό μου στην προσπάθεια να ελέγξω τη φωτεινότητα ενός LED χρησιμοποιώντας 2 κουμπιά - το ένα κουμπί αυξάνει τη φωτεινότητα ενός LED και το άλλο το μειώνει. Για να προχωρήσει
ESP8266 RGB LED STRIP WIFI Έλεγχος - NODEMCU Ως τηλεχειριστήριο IR για Led Strip που ελέγχεται μέσω Wifi - Έλεγχος Smartphone RGB LED STRIP: 4 βήματα
ESP8266 RGB LED STRIP WIFI Έλεγχος | NODEMCU Ως τηλεχειριστήριο IR για Led Strip που ελέγχεται μέσω Wifi | RGB LED STRIP Smartphone Control: Γεια σας παιδιά σε αυτό το σεμινάριο θα μάθουμε πώς να χρησιμοποιούμε το nodemcu ή το esp8266 ως τηλεχειριστήριο IR για τον έλεγχο μιας λωρίδας LED RGB και το Nodemcu θα ελέγχεται από smartphone μέσω wifi. Έτσι, βασικά μπορείτε να ελέγξετε το RGB LED STRIP με το smartphone σας
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