สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ตั้งค่าพัดลมของคุณ
- ขั้นตอนที่ 2: สร้างตัวควบคุม PI(D)
- ขั้นตอนที่ 3: เรียกใช้สคริปต์ควบคุมเมื่อเริ่มต้น
วีดีโอ: การควบคุมอุณหภูมิที่แม่นยำบน Raspberry Pi 4: 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
Pimoroni Fan Shim เป็นวิธีแก้ปัญหาที่ยอดเยี่ยมในการลดอุณหภูมิของ Pi ของคุณเมื่อมันร้อน ผู้ผลิตยังจัดหาซอฟต์แวร์ที่กระตุ้นพัดลมเมื่ออุณหภูมิของ CPU สูงกว่าเกณฑ์ที่กำหนด (เช่น 65 องศา) อุณหภูมิจะลดลงอย่างรวดเร็วต่ำกว่าเกณฑ์ที่ต่ำกว่าและปิดพัดลม วิธีนี้ดีมากแต่ทำให้อุณหภูมิเพิ่มขึ้นและลดลงภายใต้โหลดปานกลาง และสร้างเสียงรบกวนจากพัดลม คำแนะนำนี้จะช่วยลดเสียงรบกวนของพัดลมในขณะที่แก้ไขอุณหภูมิ CPU เป็นค่าเฉพาะโดยใช้สิ่งที่เรียกว่าตัวควบคุม PID เกณฑ์ที่สูงขึ้น (เช่น 65 องศา) จะส่งผลให้พัดลมเงียบกว่ามาก ในขณะที่เกณฑ์ที่ต่ำกว่า (เช่น 50 องศา) จะส่งผลให้พัดลมดังขึ้นแต่ควบคุมอุณหภูมิได้ดีกว่า
ตัวอย่างข้างต้นแสดงผลของฉันจากการเรียกใช้ตัวควบคุม PID และเปลี่ยนอุณหภูมิเป้าหมายทุกๆ 500 วินาที ความแม่นยำคือ +/- 1 องศาโดยมีการโอเวอร์โหลดเมื่ออุณหภูมิเปลี่ยนแปลงอย่างกะทันหัน
ที่สำคัญ การทดสอบนี้ดำเนินการภายใต้ภาระเดียวกันสำหรับเวลาทดสอบทั้งหมด (ดู BBC iPlayer)
เสบียง
- ราสเบอร์รี่ Pi 4
- พิโมโรนี ฟาน ชิม
ขั้นตอนที่ 1: ตั้งค่าพัดลมของคุณ
ขั้นตอนแรกคือการตั้งค่าพัดลมของคุณ บทช่วยสอนของ Pimorini นั้นยอดเยี่ยมมาก!
จากนั้นเปิดเทอร์มินัลบน Pi ของคุณ (ctrl alt t)
และติดตั้งโค้ดจาก Pimoroni
โคลน git https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh
ขั้นตอนที่ 2: สร้างตัวควบคุม PI(D)
ตัวควบคุม Proportional Integral Derivative (PID) คือระบบที่ใช้ในการควบคุมค่าของกระบวนการบางอย่าง (อุณหภูมิ CPU) โดยจัดการอุปกรณ์ทางกายภาพบางอย่าง (ความเร็วพัดลม) เราสามารถจัดการ 'ความเร็ว' และเสียงรบกวนของพัดลมได้โดยการเปิดและปิดเป็นระยะ (Pulse Wave Modulation) ระยะเวลาที่เปิดไว้ในช่วงเวลาที่กำหนด (เช่น 1 วินาที) กำหนดว่าพัดลมจะดังและเร็วแค่ไหน (900ms = ดังและเร็ว 100ms = เงียบและช้า) เราจะใช้ PID เพื่อควบคุมความเร็วของพัดลมและควบคุมอุณหภูมิ
เราสามารถแบ่งการใช้ PID ออกเป็นหลายขั้นตอนได้
- ตัดสินใจเลือกค่าของตัวแปรกระบวนการที่คุณต้องการบรรลุ (เช่น อุณหภูมิ CPU = 55) นี่เรียกว่าจุดตั้งค่าของคุณ
- คำนวณข้อผิดพลาด PID หากค่าที่ตั้งไว้ของคุณคือ 55 องศา และอุณหภูมิจริงคือ 60 องศา ข้อผิดพลาดของคุณคือ 5 องศา (อุณหภูมิ - ค่าที่ตั้งไว้)
- เปลี่ยนการตรงเวลาของพัดลมตามสัดส่วนของข้อผิดพลาด (ข้อผิดพลาดใหญ่ส่งผลให้ความเร็วพัดลมเปลี่ยนแปลงอย่างมาก ข้อผิดพลาดเล็กน้อยทำให้ความเร็วพัดลมเปลี่ยนแปลงเล็กน้อย)
- ปรับพัดลมให้เหมาะสมกับค่าในอดีต (Integral/ผลรวมของข้อผิดพลาดก่อนหน้าทั้งหมด)
- คุณสามารถเลือกปรับความเร็วพัดลมตามอัตราการเปลี่ยนแปลงของข้อผิดพลาด (อนุพันธ์) แต่เราจะไม่ทำที่นี่
ตอนนี้คุณมีทฤษฎีแล้วให้รันโค้ดด้านล่างใน Thonny IDE (หรือ python IDE อื่นๆ) เปลี่ยนค่าของ 'เป้าหมาย' ในโค้ดด้านล่างเพื่อเปลี่ยนขอบเขตที่คุณต้องการรักษา Pi ของคุณไว้ ฉันได้กำหนดเงื่อนไข 'P' และ 'I' ด้วยค่าที่ไม่แน่นอน คุณสามารถปรับเปลี่ยนสิ่งเหล่านี้ได้หากไม่ได้ผลสำหรับคุณ การทำให้ 'P' ใหญ่ขึ้นหมายความว่าคอนโทรลเลอร์จะตอบสนองต่อข้อผิดพลาดใหม่อย่างรวดเร็ว (แต่อาจไม่เสถียร) การเปลี่ยน 'I' จะทำให้ตัวควบคุมมีน้ำหนัก ซึ่งตอบสนองต่อค่าที่ผ่านมามากกว่า ฉันจะไม่พยายามทำให้คำเหล่านี้ใหญ่เกินไปเพราะการเปลี่ยนความเร็วพัดลมอย่างรวดเร็วจะไม่เปลี่ยนอุณหภูมิอย่างรวดเร็ว นอกจากนี้ หากคุณใช้งาน Pi อย่างหนักอย่างเหลือเชื่อ คุณอาจไม่ได้อุณหภูมิที่ต้องการ (ขีดจำกัดของพัดลมยังคงมีผล)
จากfanshimนำเข้าFanShim
จาก time import sleep, time import os import math # ส่งคืนอุณหภูมิ CPU เป็นสตริงอักขระ def getCPUtemperature(): res = os.popen('vcgencmd measure_temp').readline() return(res.replace("temp=", " ").replace("'C\n", "")) fanshim = FanShim() target = 55 # อุณหภูมิที่ต้องการ (เล่นกับสิ่งนี้และดูว่าเกิดอะไรขึ้น) period=1 # PWM period on=.1 # initialise to 0 % รอบการทำงานปิด = เปิดตามช่วงเวลา # เริ่มต้นเป็น 0% รอบการทำงาน P=.01 # ระยะเกนตามสัดส่วน (เล่นกับสิ่งนี้และดูว่าเกิดอะไรขึ้น) intErr = 0 # ข้อผิดพลาดที่สำคัญ I =.0001 # ระยะกำไรระหว่างกัน (เล่นกับสิ่งนี้ และดูว่าเกิดอะไรขึ้น) ในขณะที่ True: # get temperaute temp=int(float(getCPUtemperature())) # คำนวณข้อผิดพลาดและ smooth 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 leep(on) fanshim.set_fan(False) นอนหลับ(ปิด)
ขั้นตอนที่ 3: เรียกใช้สคริปต์ควบคุมเมื่อเริ่มต้น
คุณสามารถเรียกใช้สคริปต์นี้ทุกครั้งที่คุณเริ่ม pi หรือคุณอาจเรียกใช้สคริปต์นี้โดยอัตโนมัติเมื่อรีบูต มันง่ายมากที่จะทำกับ crontab
- เปิดเทอร์มินัล
- พิมพ์ crontab-e ลงในเทอร์มินัล
- เพิ่มบรรทัดต่อไปนี้ของโค้ดลงในไฟล์ '@reboot python /home/pi/bootScripts/fanControl.py &'
- ออกและรีบูต
ฉันใส่สคริปต์ (fanControl.py) ไว้ใน floder ชื่อ bootScripts แต่คุณสามารถวางไว้ที่ใดก็ได้ เพียงตรวจสอบให้แน่ใจว่าคุณระบุเส้นทางที่ถูกต้องใน crontab
ทุกอย่างเสร็จเรียบร้อย! ตอนนี้พัดลมของคุณจะควบคุมอุณหภูมิของ CPU ของคุณเป็นค่าที่กำหนด ในขณะที่ลดเสียงรบกวนที่ได้ยิน
แนะนำ:
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
LED กะพริบด้วย Raspberry Pi - วิธีใช้พิน GPIO บน Raspberry Pi: 4 ขั้นตอน
LED กะพริบด้วย Raspberry Pi | วิธีใช้ GPIO Pins บน Raspberry Pi: สวัสดีทุกคนในคำแนะนำนี้เราจะเรียนรู้วิธีใช้ GPIO ของ Raspberry pi หากคุณเคยใช้ Arduino คุณอาจรู้ว่าเราสามารถเชื่อมต่อสวิตช์ LED ฯลฯ เข้ากับหมุดของมันและทำให้มันทำงานได้ ทำให้ไฟ LED กะพริบหรือรับอินพุตจากสวิตช์ดังนั้น
อินเทอร์เฟซ ADXL335 Sensor บน Raspberry Pi 4B ใน 4 ขั้นตอน: 4 ขั้นตอน
อินเทอร์เฟซ ADXL335 Sensor บน Raspberry Pi 4B ใน 4 ขั้นตอน: ในคำแนะนำนี้ เราจะเชื่อมต่อเซ็นเซอร์ ADXL335 (accelerometer) บน Raspberry Pi 4 กับ Shunya O/S
การติดตั้ง Raspbian Buster บน Raspberry Pi 3 - เริ่มต้นใช้งาน Raspbian Buster ด้วย Raspberry Pi 3b / 3b+: 4 ขั้นตอน
การติดตั้ง Raspbian Buster บน Raspberry Pi 3 | เริ่มต้นใช้งาน Raspbian Buster ด้วย Raspberry Pi 3b / 3b+: สวัสดี องค์กร Raspberry pi ที่เพิ่งเปิดตัว Raspbian OS ใหม่ที่เรียกว่า Raspbian Buster เป็นเวอร์ชันใหม่ของ Raspbian สำหรับ Raspberry pi ดังนั้นวันนี้ในคำแนะนำนี้ เราจะได้เรียนรู้วิธีติดตั้ง Raspbian Buster OS บน Raspberry pi 3 ของคุณ
การติดตั้ง Raspbian ใน Raspberry Pi 3 B โดยไม่ต้องใช้ HDMI - เริ่มต้นใช้งาน Raspberry Pi 3B - การตั้งค่า Raspberry Pi ของคุณ 3: 6 ขั้นตอน
การติดตั้ง Raspbian ใน Raspberry Pi 3 B โดยไม่ต้องใช้ HDMI | เริ่มต้นใช้งาน Raspberry Pi 3B | การตั้งค่า Raspberry Pi ของคุณ 3: อย่างที่พวกคุณบางคนรู้ว่าคอมพิวเตอร์ Raspberry Pi นั้นยอดเยี่ยมมากและคุณสามารถรับคอมพิวเตอร์ทั้งหมดได้บนบอร์ดเล็ก ๆ ตัวเดียว Raspberry Pi 3 Model B มี ARM Cortex A53 แบบ 64 บิตแบบ quad-core โอเวอร์คล็อกที่ 1.2 GHz ทำให้ Pi 3 ประมาณ 50