Isi kandungan:
- Bekalan
- Langkah 1: Sediakan Kipas Anda
- Langkah 2: Buat Pengawal PI (D)
- Langkah 3: Jalankan Skrip Kawalan pada Permulaan
Video: Kawalan Suhu Tepat pada Raspberry Pi 4: 3 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
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
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)
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.
- Tentukan nilai pemboleh ubah proses yang ingin anda capai (mis. Suhu CPU = 55). Ini disebut titik tolak anda.
- Hitung ralat PID. Sekiranya titik seting anda 55 darjah dan suhu sebenar 60 darjah kesalahan anda adalah 5 darjah (Suhu - setpoint)
- Ubah on-time kipas sesuai dengan kesalahan (Kesalahan besar mengakibatkan perubahan besar pada kecepatan kipas, kesalahan kecil menyebabkan perubahan kecil pada kecepatan kipas).
- Selaraskan kipas mengikut nilai yang lalu (Integral / jumlah semua kesalahan sebelumnya)
- 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
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.
- buka terminal
- taip crontab-e ke terminal
- tambahkan baris kod berikut ke fail '@reboot python /home/pi/bootScripts/fanControl.py &'
- 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:
Pistol Ringan Wiimote yang Tepat untuk Raspberry PI: 9 Langkah (dengan Gambar)
Gun Gun Wiimote yang Tepat untuk Raspberry PI: Biasanya, Wii Remote yang digunakan sebagai senapang ringan tidak cukup tepat untuk permainan retro seperti NES Duck Hunt, kerana Wii Remote sebenarnya tidak memilih titik di TV yang ditunjukkannya. Tidak boleh! Wii Remote mempunyai kamera inframerah di depan
ESP8266 Pemantauan Suhu Nodemcu Menggunakan DHT11 pada Pelayan Web Tempatan - Dapatkan Suhu & Kelembapan Bilik di Penyemak Imbas Anda: 6 Langkah
ESP8266 Pemantauan Suhu Nodemcu Menggunakan DHT11 pada Pelayan Web Tempatan | Dapatkan Suhu & Kelembapan Bilik di Penyemak Imbas Anda: Hai kawan-kawan hari ini kita akan membuat kelembapan & sistem pemantauan suhu menggunakan ESP 8266 NODEMCU & Sensor suhu DHT11. Suhu dan kelembapan akan diperolehi dari DHT11 Sensor & ia dapat dilihat pada penyemak imbas yang laman webnya akan diuruskan
ALTERNATIF GENERATOR SIGNAL KAWALAN UNTUK KAWALAN SPEED ELEKTRONIK (ESC): 7 Langkah
KONTROL SIGNAL GENERATOR ALTERNATIF UNTUK KAWALAN SPEED ELEKTRONIK (ESC): Beberapa waktu yang lalu saya menerbitkan video (https://www.youtube.com/watch?v=-4sblF1GY1E) di saluran YouTube saya di mana saya menunjukkan cara membuat turbin angin dari motor DC tanpa berus. Saya membuat video dalam bahasa Sepanyol dan menjelaskan bahawa enjin ini telah diberikan kepada
Kit Alat Kawalan Jauh Biasa Diubah menjadi Alat Kawalan Jauh Mainan RC Empat saluran: 4 Langkah
Kit Alat Kawalan Jauh Biasa Diubah menjadi Alat Kawalan Jauh Mainan RC Empat saluran: 如何 将 通用 遥控 器 套件 转换 为 玩具 模型 中 使用 的 四 通道 遥控 器。 遥控 器 套件 非常 便宜。 采用 62 2262 和 2272 芯片 和 433 个 模块 构建 构建。改造 方法 非常 简单。 只需 准备 一些 瓦楞纸 板 , 然后 按照 视频 教程 完成 这个 电子 项目 并 为 您 服务。 玩具 车船 提供 远程 无线 控制。
Menghantar sms dengan suhu tepat pada waktunya: 5 langkah (dengan gambar)
Menghantar sms dengan suhu tepat pada waktunya: Ideanya adalah untuk mendapatkan sms temperatur dari rumah ayah saya. Tidak ada yang menarik hanya dengan menyatukan bahagian. Bahagiannya adalah: Geekcreit ® ATmega328P Nano V3 Controller Board Compatible ArduinoDIY NANO IO Shield V1.O Expansion Board Untuk ArduinoDS130