תוכן עניינים:

בקרת טמפרטורה מדויקת ב- Raspberry Pi 4: 3 שלבים
בקרת טמפרטורה מדויקת ב- Raspberry Pi 4: 3 שלבים

וִידֵאוֹ: בקרת טמפרטורה מדויקת ב- Raspberry Pi 4: 3 שלבים

וִידֵאוֹ: בקרת טמפרטורה מדויקת ב- Raspberry Pi 4: 3 שלבים
וִידֵאוֹ: 30 лучших советов и рекомендаций по Windows 10 на 2020 год 2024, נוֹבֶמבֶּר
Anonim
בקרת טמפרטורה מדויקת ב- Raspberry Pi 4
בקרת טמפרטורה מדויקת ב- Raspberry Pi 4

פים פונימורוני מאוורר הוא פתרון מצוין להורדת הטמפרטורה של ה- Pi שלך כשהוא חם. היצרנים אפילו מספקים תוכנה שמפעילה את המאוורר כאשר טמפרטורת המעבד עולה מעל רף מסוים (למשל 65 מעלות). הטמפרטורה יורדת במהירות מתחת לסף התחתון ומכבה את המאוורר. זה נהדר אבל גורם לטמפרטורה לעלות ולרדת בעומסים מתונים ויוצר רעש מאוורר נשמע. הוראה זו תפחית את רעש המאוורר תוך תיקון טמפרטורת המעבד לערך ספציפי באמצעות משהו שנקרא בקר PID. ספים גבוהים יותר (למשל 65 מעלות) יגרמו למאוורר הרבה יותר שקט ואילו ספים נמוכים יותר (למשל 50 מעלות) יגרמו למאוורר חזק יותר אך לשלוט בטמפרטורה טובה יותר.

הדוגמה למעלה מציגה את התוצאות שלי מהפעלת בקר ה- PID ושינוי טווח הטווח של היעד כל 500 שניות. הדיוק הוא +/- מעלה אחת עם קצת חריגה על שינויים פתאומיים בטווח הטווח.

חשוב לציין כי בדיקה זו בוצעה תחת אותו עומס במשך כל זמן הבדיקה (צפייה ב- BBC iPlayer).

אספקה

  • פטל פי 4
  • Pimoroni Fan Shim

שלב 1: הגדר את המאוורר שלך

הגדר את המאוורר שלך
הגדר את המאוורר שלך

השלב הראשון הוא הגדרת המאוורר שלך. מדריך הפימוריני מעולה!

לאחר מכן פתח את הטרמינל ב- Pi שלך (ctrl alt t)

והתקן את הקוד שסיפק פימורוני

שיבוט git https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh

שלב 2: צור בקר PI (D)

צור בקר PI (D)
צור בקר PI (D)

בקר נגזר פרופורציונלי אינטגרלי (PID) הוא מערכת המשמשת לבקרת הערך של תהליך מסוים (טמפרטורת המעבד) על ידי מניפולציה של מכשיר פיזי כלשהו (מהירות מאוורר). אנו יכולים לתפעל את 'המהירות' והרעש של המאוורר על ידי הפעלה וכיבוי מעת לעת (אפנון גל דופק). משך הזמן בו הוא מופעל בתקופה מסוימת (למשל שנייה אחת) קובע כמה מהר המאוורר חזק (900ms = חזק ומהיר, 100ms = שקט ואיטי). נשתמש ב- PID כדי לתמרן את מהירות המאוורר ובכך לשלוט על הטמפרטורה.

אנו יכולים לחלק את השימוש ב- PID למספר שלבים.

  1. החליטו על ערך משתנה התהליכים שאתם רוצים להשיג (למשל טמפרטורת המעבד = 55). זה נקרא נקודת ההגדרה שלך.
  2. חשב את שגיאת ה- PID. אם נקודת ההגדרה שלך היא 55 מעלות והטמפרטורה בפועל היא 60 מעלות השגיאה שלך היא 5 מעלות (טמפרטורה - נקודת ערך)
  3. שנה את זמן המאוורר ביחס לשגיאה (טעויות גדולות גורמות לשינויים גדולים במהירות המאוורר, טעויות קטנות גורמות לשינויים קטנים במהירות המאוורר).
  4. התאם את המאוורר ביחס לערכי העבר (אינטגרל/סכום כל השגיאות הקודמות)
  5. לחלופין, אתה יכול להתאים את מהירות המאוורר בהתאם לשיעור השינוי של השגיאה (נגזרת) אך לא נעשה זאת כאן

עכשיו שיש לך את התיאוריה להריץ את הקוד שלהלן ב- Thonny IDE (או באיזה פיתון אחר). שנה את הערך של 'יעד' בקוד שלהלן כדי לשנות באיזו טמפרטורה תרצה לשמור על ה- Pi שלך. הגדרתי את המונחים 'P' ו- 'I' בערכים שרירותיים במקצת. אל תהסס להתאים את אלה אם הם לא עובדים עבורך. הגדלת 'P' פירושה שהבקר יגיב במהירות לשגיאות חדשות (אך יתכן שלא יהיה יציב). שינוי 'אני' יגרום לבקר לשקול את תגובתו יותר לערכי העבר. לא הייתי מנסה להפוך את המונחים האלה גדולים מדי מכיוון ששינוי מהיר של מהירות המאוורר לא ישנה במהירות את הטווח. כמו כן, אם אתה עושה עבודה כבדה להפליא על ה- Pi שלך ייתכן שלא תשיג את הטווח המתאים לך (גבולות המאוורר עדיין חלים).

מאת fanshim יבוא FanShim

זמן ייבוא שינה, זמן יבוא os מתמטיקה יבוא # החזר טמפרטורת המעבד כמחרוזת תווים def getCPUtemperature (): res = os.popen ('vcgencmd measure_temp'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," ")) fanshim = FanShim () target = 55 # הטמפרטורה הרצויה (שחק עם זה ותראה מה קורה) תקופה = 1 # PWM תקופה ב- =.1 # אתחול ל 0 % מחזור חובה כבוי = תקופה-על # אתחול ל -0% מחזור חובה P =.01 # מונח רווח פרופורציונלי (שחק עם זה ותראה מה קורה) intErr = 0 # שגיאה אינטגרלית I =.0001 # מונח רווח אינטגרלי (שחק עם זה ותראה מה קורה) בעוד נכון: # get temperaute temp = int (float (getCPUtemperature ())) # לחשב שגיאה והחלק err = temp-target # מחשב integra lerror ואילץ אותו intErr = intErr+err אם intErr> 10: intErr = 10 if intErr = period: on = period off = 0 else: on = on off = period-on # הגדר מחזור עבודה מינימלי אם מופעל <.09: on =.09 else: on = on # PWM על סיכת הפאנשים אם on == period: fanshim.set_fan (True) sleep (on) else: fanshim.set_fan (True) s צליל (מופעל) fanshim.set_fan (שקר) שינה (כבוי)

שלב 3: הפעל סקריפט בקרה בעת ההפעלה

הפעל את סקריפט הבקרה בעת ההפעלה
הפעל את סקריפט הבקרה בעת ההפעלה

אתה יכול להריץ את הסקריפט הזה בכל פעם שאתה מתחיל את ה- pi שלך או שאתה יכול להפעיל אותו אוטומטית בעת אתחול מחדש. זה מאוד פשוט לעשות עם crontab.

  1. לפתוח את הטרמינל
  2. הקלד crontab-e במסוף
  3. הוסף את שורת הקוד הבאה לקובץ '@reboot python /home/pi/bootScripts/fanControl.py &'
  4. צא והפעל מחדש

שמתי את הסקריפט (fanControl.py) בפלודר שנקרא bootScripts אבל אתה יכול לשים אותו בכל מקום רק וודא שאתה מציין את הנתיב הנכון ב- crontab.

הכל בוצע! כעת המאוורר שלך ישלוט על הטמפרטורה של המעבד שלך לערך ספציפי, תוך מזעור הרעש הקולי שהוא מפיק.

מוּמלָץ: