Isi kandungan:

Kawalan Suhu Tepat pada Raspberry Pi 4: 3 Langkah
Kawalan Suhu Tepat pada Raspberry Pi 4: 3 Langkah

Video: Kawalan Suhu Tepat pada Raspberry Pi 4: 3 Langkah

Video: Kawalan Suhu Tepat pada Raspberry Pi 4: 3 Langkah
Video: SULTAN MEDAN INDRAKENZ NAIK JET PRIBADI KE PULAU PRIBADI!! 2024, November
Anonim
Kawalan Suhu Tepat pada Raspberry Pi 4
Kawalan Suhu Tepat pada Raspberry Pi 4

Pimoroni Fan Shim adalah penyelesaian yang baik untuk mengurangkan suhu Pi anda ketika panas. Pembuatnya bahkan menyediakan perisian yang mencetuskan kipas ketika suhu CPU meningkat di atas ambang tertentu (mis. 65 darjah). Suhu dengan cepat berkurang di bawah ambang yang lebih rendah dan mematikan kipas. Ini bagus tetapi menyebabkan suhu naik dan turun di bawah beban sederhana dan menimbulkan bunyi kipas yang dapat didengar. Pengajaran ini akan mengurangkan kebisingan kipas sambil menetapkan suhu CPU ke nilai tertentu menggunakan sesuatu yang disebut pengawal PID. Ambang yang lebih tinggi (mis. 65 darjah) akan menghasilkan kipas yang lebih senyap manakala ambang yang lebih rendah (mis. 50 darjah) akan menghasilkan kipas yang lebih kuat tetapi kawalan suhu yang lebih baik.

Contoh di atas menunjukkan hasil saya dari menjalankan pengawal PID dan mengubah jangka masa sasaran setiap 500 saat. Ketepatannya adalah +/- 1 darjah dengan beberapa kelebihan mengenai perubahan suhu badan secara tiba-tiba.

Yang penting, ujian ini dilakukan dengan beban yang sama untuk keseluruhan masa ujian (menonton BBC iPlayer).

Bekalan

  • Raspberry Pi 4
  • Pimoroni Fan Shim

Langkah 1: Sediakan Kipas Anda

Sediakan Kipas Anda
Sediakan Kipas Anda

Langkah pertama ialah memasang kipas anda. Tutorial Pimorini hebat!

Kemudian buka terminal pada Pi anda (ctrl alt t)

Dan pasang kod yang disediakan oleh Pimoroni

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

Langkah 2: Buat Pengawal PI (D)

Buat Pengawal PI (D)
Buat Pengawal PI (D)

Pengawal Proportional Integral Derivative (PID) adalah sistem yang digunakan untuk mengawal nilai proses tertentu (suhu CPU) dengan memanipulasi beberapa peranti fizikal (Fan Speed). Kita boleh memanipulasi 'kelajuan' dan bunyi kipas dengan menghidupkan dan mematikannya secara berkala (Pulse Wave Modulation). Lamanya masa dihidupkan dalam jangka waktu tertentu (mis. 1 saat) menentukan seberapa cepat dan seberapa kuat kipas (900ms = keras dan cepat, 100ms = senyap dan perlahan). Kami akan menggunakan PID untuk memanipulasi kelajuan kipas dan dengan itu mengawal suhu.

Kita boleh membahagikan penggunaan PID menjadi beberapa langkah.

  1. Tentukan nilai pemboleh ubah proses yang ingin anda capai (mis. Suhu CPU = 55). Ini disebut titik tolak anda.
  2. Hitung ralat PID. Sekiranya titik seting anda 55 darjah dan suhu sebenar 60 darjah kesalahan anda adalah 5 darjah (Suhu - setpoint)
  3. Ubah on-time kipas sesuai dengan kesalahan (Kesalahan besar mengakibatkan perubahan besar pada kecepatan kipas, kesalahan kecil menyebabkan perubahan kecil pada kecepatan kipas).
  4. Selaraskan kipas mengikut nilai yang lalu (Integral / jumlah semua kesalahan sebelumnya)
  5. Secara pilihan anda menyesuaikan kelajuan kipas berdasarkan kadar perubahan ralat (turunan) tetapi kami tidak akan melakukannya di sini

Sekarang anda mempunyai teori menjalankan kod di bawah ini di Thonny IDE (atau beberapa python IDE lain). Ubah nilai 'target' dalam kod di bawah ini untuk mengubah kehebatan yang anda inginkan untuk mengekalkan Pi anda. Saya telah menetapkan istilah 'P' dan 'I' pada nilai yang agak sewenang-wenangnya. Jangan ragu untuk menyesuaikannya jika ia tidak sesuai untuk anda. menjadikan 'P' lebih besar bermaksud pengawal akan bertindak balas dengan cepat terhadap kesalahan baru (tetapi mungkin tidak stabil). Mengubah 'I' akan menyebabkan pengawal memberatkan tindak balasnya terhadap nilai masa lalu. Saya tidak akan berusaha menjadikan istilah-istilah ini terlalu besar kerana dengan cepat menukar kelajuan kipas tidak akan cepat mengubah suhu. Juga, jika anda melakukan kerja yang sangat berat pada Pi anda, anda mungkin tidak mencapai jangka masa yang diinginkan (had kipas tetap berlaku).

dari peminathim import FanShim

dari waktu import import, time import os import math # Return suhu CPU sebagai string karakter def getCPUtemperature (): res = os.popen ('vcgencmd Meas_temp'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," ")) fanshim = FanShim () target = 55 # suhu yang diinginkan (bermain dengan ini dan lihat apa yang berlaku) tempoh = 1 # tempoh PWM pada =.1 # memulakan ke 0 % duty cycle off = period-on # initialise to 0% duty cycle P =.01 # proportional Gain term (main dengan ini dan lihat apa yang berlaku) intErr = 0 # integral error I =.0001 # intergral gain term (main dengan ini dan lihat apa yang berlaku) sementara True: # get temperaute temp = int (float (getCPUtemperature ())) # hitung ralat dan lancar err = temp-target # compute integra lerror dan hadkannya intErr = intErr + err jika intErr> 10: intErr = 10 if intErr = period: on = period off = 0 else: on = on off = period-on # tetapkan kitar tugas minimum jika pada <.09: on =.09 lain: on = on # PWM pada pin fanshim jika on == period: fanshim.set_fan (True) tidur (on) lain: fanshim.set_fan (True) s leep (on) fanshim.set_fan (False) tidur (mati)

Langkah 3: Jalankan Skrip Kawalan pada Permulaan

Jalankan Skrip Kawalan pada Permulaan
Jalankan Skrip Kawalan pada Permulaan

Anda boleh menjalankan skrip ini setiap kali anda memulakan pi atau anda boleh memicu automatik secara automatik semasa reboot. Ini sangat mudah dilakukan dengan crontab.

  1. buka terminal
  2. taip crontab-e ke terminal
  3. tambahkan baris kod berikut ke fail '@reboot python /home/pi/bootScripts/fanControl.py &'
  4. keluar dan but semula

Saya meletakkan skrip (fanControl.py) dalam floder yang disebut bootScripts tetapi anda boleh meletakkannya di mana sahaja pastikan anda menentukan jalan yang betul di crontab.

Semua selesai! Kini kipas anda akan mengawal suhu CPU anda ke nilai tertentu, sambil meminimumkan bunyi yang didengar yang dihasilkannya.

Disyorkan: