İçindekiler:

Raspberry Pi 4: 3 Adımda Hassas Sıcaklık Kontrolü
Raspberry Pi 4: 3 Adımda Hassas Sıcaklık Kontrolü

Video: Raspberry Pi 4: 3 Adımda Hassas Sıcaklık Kontrolü

Video: Raspberry Pi 4: 3 Adımda Hassas Sıcaklık Kontrolü
Video: AKILLI CİHAZLARINIZI TEK YERDEN YÖNETİN | Home Assistant (Hassio) kurulumu 2024, Kasım
Anonim
Raspberry Pi 4'te Hassas Sıcaklık Kontrolü
Raspberry Pi 4'te Hassas Sıcaklık Kontrolü

Pimoroni Fan Shim, Pi'niz ısındığında sıcaklığını düşürmek için harika bir çözümdür. Üreticiler, CPU sıcaklığı belirli bir eşiğin üzerine çıktığında (örneğin 65 derece) fanı tetikleyen bir yazılım bile sağlıyor. Sıcaklık, daha düşük bir eşiğin altına hızla düşer ve fanı kapatır. Bu harikadır ancak orta dereceli yükler altında sıcaklığın yükselmesine ve düşmesine neden olur ve duyulabilir fan gürültüsü oluşturur. Bu talimat, PID denetleyici adı verilen bir şey kullanarak CPU sıcaklığını belirli bir değere sabitlerken fanın sesini azaltacaktır. Daha yüksek eşikler (örn. 65 derece) çok daha sessiz bir fan sağlarken, daha düşük eşikler (örn. 50 derece) daha yüksek bir fan ancak daha iyi sıcaklık kontrolü sağlar.

Yukarıdaki örnek, PID denetleyicisini çalıştırma ve her 500 saniyede bir hedef sıcaklığı değiştirme sonuçlarımı göstermektedir. Sıcaklıktaki ani değişikliklerde bir miktar aşırılık ile doğruluk +/- 1 derecedir.

Daha da önemlisi, bu test toplam test süresi boyunca (BBC iPlayer izlerken) aynı yük altında gerçekleştirilmiştir.

Gereçler

  • Ahududu Pi 4
  • Pimoroni Fan Şimi

1. Adım: Hayranınızı Kurun

Fanınızı Kurun
Fanınızı Kurun

İlk adım, fanınızı kurmaktır. Pimorini öğreticisi harika!

Ardından Pi'nizdeki terminali açın (ctrl alt t)

Ve Pimoroni tarafından sağlanan kodu yükleyin

git klon https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh

Adım 2: Bir PI(D) Denetleyicisi Oluşturun

Bir PI(D) Denetleyicisi Oluşturun
Bir PI(D) Denetleyicisi Oluşturun

Orantılı İntegral Türev (PID) denetleyicisi, bazı fiziksel aygıtları (Fan Hızı) manipüle ederek belirli bir işlemin (CPU sıcaklığı) değerini kontrol etmek için kullanılan bir sistemdir. Periyodik olarak açıp kapatarak fanın 'hızını' ve gürültüsünü değiştirebiliriz (Darbe Dalga Modülasyonu). Belirli bir periyotta (örn. 1 saniye) açık kaldığı süre, fanın ne kadar hızlı ve ne kadar gürültülü olduğunu belirler (900ms = sesli ve hızlı, 100ms = sessiz ve yavaş). Fanın hızını değiştirmek ve böylece sıcaklığı kontrol etmek için PID'yi kullanacağız.

Bir PID kullanımını adım sayısına bölebiliriz.

  1. Ulaşmak istediğiniz proses değişkeninin değerine karar verin (örn. CPU sıcaklığı = 55). Buna ayar noktanız denir.
  2. PID hatasını hesaplayın. Ayar noktanız 55 derece ve gerçek sıcaklık 60 derece ise hatanız 5 derecedir (Sıcaklık - ayar noktası)
  3. Fanın çalışma süresini hatayla orantılı olarak değiştirin (Büyük hatalar fan hızında büyük değişikliklere, küçük hatalar fan hızında küçük değişikliklere neden olur).
  4. Fanı geçmiş değerlere göre ayarlayın (İntegral/önceki tüm hataların toplamı)
  5. İsteğe bağlı olarak hatanın (türev) değişim hızına göre fan hızını ayarlarsınız ama biz burada bunu yapmayacağız.

Artık teoriye sahip olduğunuza göre, Thonny IDE'de (veya başka bir python IDE'de) aşağıdaki kodu çalıştırın. Pi'nizi hangi sıcaklıkta tutmak istediğinizi değiştirmek için aşağıdaki koddaki 'hedef' değerini değiştirin. 'P' ve 'I' terimlerini biraz keyfi değerlere ayarladım. Sizin için işe yaramazlarsa, bunları ayarlamaktan çekinmeyin. 'P'yi büyütmek, denetleyicinin yeni hatalara hızla yanıt vereceği anlamına gelir (ancak kararlı olmayabilir). 'I'yi değiştirmek, denetleyicinin yanıtını geçmiş değerlere daha fazla ağırlıklandırmasına neden olur. Fan hızını hızlı bir şekilde değiştirmek sıcaklığı hızla değiştirmeyeceğinden bu terimleri çok büyük yapmaya çalışmazdım. Ayrıca, Pi'niz üzerinde inanılmaz derecede ağır işler yapıyorsanız, istediğiniz sıcaklığa ulaşamayabilirsiniz (fanın sınırları hala geçerlidir).

fanshim'den FanShim'i içe aktar

zamandan içe aktarma uyku, zaman içe aktarma os içe aktarma matematiği # CPU sıcaklığını karakter dizesi olarak döndürme def getCPUtemperature(): res = os.popen('vcgencmd Measure_temp').readline() return(res.replace("temp=", ") ").replace("'C\n", "")) fanshim = FanShim() target = 55 # istenen sıcaklık (bununla oynayın ve ne olduğunu görün) period=1 # PWM period on=.1 # 0'a başlangıç % görev döngüsü kapalı=dönem açık # %0 görev döngüsüne başlat P=.01 # orantılı Kazanç terimi (bununla oynayın ve ne olduğunu görün) intErr=0 # integral hatası I=.0001 # intergral kazanç terimi (bununla oynayın ve ne olduğunu görün) while True: # get temperaute temp=int(float(getCPUtemperature())) # hatayı hesaplayın ve düzgün err = temp-target # integral lerror'u hesaplayın ve intErr>10 ise onu kısıtlayın intErr=intErr+err: intErr =10 if intErr=dönem: açık=dönem kapalı=0 else: açık=açık kapalı = dönem-açık # eğer açıksa minimum görev döngüsünü ayarla<.09: açık=.09 else: açık=açık # eğer fanshim pininde PWM on ==period: fanhim.set_fan(True) sleep(on) else: fanhim.set_fan(True) s leep(açık) fanhim.set_fan(Yanlış) uyku(kapalı)

3. Adım: Başlangıçta Kontrol Komut Dosyasını Çalıştırın

Denetim Komut Dosyasını Başlangıçta Çalıştırın
Denetim Komut Dosyasını Başlangıçta Çalıştırın

Pi'nizi her başlattığınızda bu betiği çalıştırabilir veya yeniden başlatma sırasında otomatik olarak tetiklenmesini sağlayabilirsiniz. Bunu crontab ile yapmak çok basit.

  1. terminali aç
  2. terminale crontab-e yazın
  3. aşağıdaki kod satırını '@reboot python /home/pi/bootScripts/fanControl.py &' dosyasına ekleyin
  4. çık ve yeniden başlat

Komut dosyasını (fanControl.py) bootScripts adlı bir floder içine koydum, ancak herhangi bir yere koyabilirsiniz, sadece crontab'da doğru yolu belirttiğinizden emin olun.

Hepsi tamam! Artık fanınız, ürettiği duyulabilir gürültüyü en aza indirirken CPU'nuzun sıcaklığını belirli bir değere kadar kontrol edecektir.

Önerilen: