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

Ακριβής έλεγχος θερμοκρασίας στα βήματα Raspberry Pi 4: 3
Ακριβής έλεγχος θερμοκρασίας στα βήματα Raspberry Pi 4: 3

Βίντεο: Ακριβής έλεγχος θερμοκρασίας στα βήματα Raspberry Pi 4: 3

Βίντεο: Ακριβής έλεγχος θερμοκρασίας στα βήματα Raspberry Pi 4: 3
Βίντεο: Νέα Raspberry Pi 3 Tutorial - Πώς να δημιουργήσει για Gaming & Entertainment Έργα 2024, Νοέμβριος
Anonim
Ακριβής έλεγχος θερμοκρασίας στο Raspberry Pi 4
Ακριβής έλεγχος θερμοκρασίας στο Raspberry Pi 4

Το 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)

Δημιουργήστε έναν ελεγκτή PI (D)
Δημιουργήστε έναν ελεγκτή PI (D)

Ένας ελεγκτής Proportional Integral Derivative (PID) είναι ένα σύστημα που χρησιμοποιείται για τον έλεγχο της τιμής μιας συγκεκριμένης διαδικασίας (θερμοκρασία CPU) με χειρισμό κάποιας φυσικής συσκευής (Fan Speed). Μπορούμε να χειριστούμε την «ταχύτητα» και τον θόρυβο του ανεμιστήρα ενεργοποιώντας και απενεργοποιώντας τον περιοδικά (Διαμόρφωση Παλμικού Κύματος). Το χρονικό διάστημα που είναι ενεργοποιημένο για μια δεδομένη περίοδο (π.χ. 1 δευτερόλεπτο) καθορίζει πόσο γρήγορα και πόσο δυνατά είναι ο ανεμιστήρας (900ms = δυνατά και γρήγορα, 100ms = αθόρυβα και αργά). Θα χρησιμοποιήσουμε το PID για να χειριστούμε την ταχύτητα του ανεμιστήρα και έτσι να ελέγξουμε τη θερμοκρασία.

Μπορούμε να χωρίσουμε τη χρήση ενός PID σε πολλά βήματα.

  1. Αποφασίστε για την τιμή της μεταβλητής διεργασίας που θέλετε να επιτύχετε (π.χ. θερμοκρασία CPU = 55). Αυτό ονομάζεται σημείο ρύθμισης.
  2. Υπολογίστε το σφάλμα PID. Εάν το σημείο ρύθμισης είναι 55 μοίρες και η πραγματική θερμοκρασία 60 μοίρες, το σφάλμα σας είναι 5 μοίρες (Θερμοκρασία - σημείο ρύθμισης)
  3. Αλλάξτε την έγκαιρη λειτουργία του ανεμιστήρα ανάλογα με το σφάλμα (Μεγάλα σφάλματα έχουν ως αποτέλεσμα μεγάλες αλλαγές στην ταχύτητα του ανεμιστήρα, μικρά σφάλματα προκαλούν μικρές αλλαγές στην ταχύτητα του ανεμιστήρα).
  4. Προσαρμόστε τον ανεμιστήρα ανάλογα με τις προηγούμενες τιμές (Ολόκληρο/άθροισμα όλων των προηγούμενων σφαλμάτων)
  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.

  1. ανοίξτε το τερματικό
  2. πληκτρολογήστε crontab-e στο τερματικό
  3. προσθέστε την ακόλουθη γραμμή κώδικα στο αρχείο '@reboot python /home/pi/bootScripts/fanControl.py &'
  4. έξοδο και επανεκκίνηση

Έβαλα το σενάριο (fanControl.py) σε ένα floder που ονομάζεται bootScripts, αλλά μπορείτε να το βάλετε οπουδήποτε, βεβαιωθείτε ότι έχετε καθορίσει τη σωστή διαδρομή στο crontab.

Ολα τελείωσαν! Τώρα ο ανεμιστήρας σας θα ελέγχει τη θερμοκρασία της CPU σας σε μια συγκεκριμένη τιμή, ελαχιστοποιώντας ταυτόχρονα τον ηχητικό θόρυβο που παράγει.

Συνιστάται: