جدول المحتويات:

تحكم دقيق في درجة الحرارة على Raspberry Pi 4: 3 Steps
تحكم دقيق في درجة الحرارة على Raspberry Pi 4: 3 Steps

فيديو: تحكم دقيق في درجة الحرارة على Raspberry Pi 4: 3 Steps

فيديو: تحكم دقيق في درجة الحرارة على Raspberry Pi 4: 3 Steps
فيديو: Raspberry Pi 4 Cooling 2024, شهر نوفمبر
Anonim
تحكم دقيق في درجة الحرارة على Raspberry Pi 4
تحكم دقيق في درجة الحرارة على Raspberry Pi 4

يعتبر Pimoroni Fan Shim حلاً رائعًا لتقليل درجة حرارة Pi عندما يكون ساخنًا. يوفر المصنعون أيضًا برنامجًا يقوم بتشغيل المروحة عندما ترتفع درجة حرارة وحدة المعالجة المركزية فوق عتبة معينة (على سبيل المثال 65 درجة). تنخفض درجة الحرارة بسرعة إلى ما دون عتبة منخفضة وتوقف تشغيل المروحة. هذا رائع ولكنه يتسبب في ارتفاع درجة الحرارة وانخفاضها تحت أحمال معتدلة ويحدث ضوضاء مروحة مسموعة. ستعمل هذه التعليمات على تقليل ضوضاء المروحة أثناء تثبيت درجة حرارة وحدة المعالجة المركزية على قيمة محددة باستخدام شيء يسمى وحدة تحكم PID. ستؤدي العتبات الأعلى (على سبيل المثال 65 درجة) إلى مروحة أكثر هدوءًا بينما ستؤدي العتبات المنخفضة (على سبيل المثال 50 درجة) إلى مروحة أعلى ولكن تحكم أفضل في درجة الحرارة.

يوضح المثال أعلاه نتائجي من تشغيل وحدة تحكم PID وتغيير درجة حرارة الهدف كل 500 ثانية. الدقة هي +/- 1 درجة مع بعض التجاوزات على التغييرات المفاجئة في درجة الحرارة.

الأهم من ذلك ، تم إجراء هذا الاختبار تحت نفس الحمل لإجمالي وقت الاختبار (مشاهدة BBC iPlayer).

اللوازم

  • رازبيري باي 4
  • بيموروني فان شيم

الخطوة 1: قم بإعداد المروحة الخاصة بك

قم بإعداد المروحة الخاصة بك
قم بإعداد المروحة الخاصة بك

الخطوة الأولى هي إعداد المروحة الخاصة بك. البرنامج التعليمي Pimorini رائع!

ثم افتح Terminal على Pi الخاص بك (ctrl alt t)

وقم بتثبيت الكود المقدم من Pimoroni

بوابة استنساخ https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh

الخطوة 2: إنشاء وحدة تحكم PI (D)

قم بإنشاء وحدة تحكم PI (D)
قم بإنشاء وحدة تحكم PI (D)

وحدة التحكم بالمشتقات التكاملية المتناسبة (PID) هي نظام يستخدم للتحكم في قيمة عملية معينة (درجة حرارة وحدة المعالجة المركزية) عن طريق معالجة بعض الأجهزة المادية (سرعة المروحة). يمكننا معالجة "سرعة" وضوضاء المروحة من خلال تشغيلها وإيقافها بشكل دوري (تعديل موجة النبض). يحدد طول الوقت الذي يتم تشغيله فيه في فترة معينة (على سبيل المثال ثانية واحدة) مدى سرعة ومدى ارتفاع صوت المروحة (900 مللي ثانية = عالي وسريع ، 100 مللي ثانية = هادئ وبطيء). سنستخدم PID للتلاعب بسرعة المروحة وبالتالي التحكم في درجة الحرارة.

يمكننا تقسيم استخدام معرف المنتج إلى عدد من الخطوات.

  1. حدد قيمة متغير العملية الذي تريد تحقيقه (مثل درجة حرارة وحدة المعالجة المركزية = 55). هذا يسمى نقطة الضبط الخاصة بك.
  2. احسب خطأ PID. إذا كانت نقطة الضبط 55 درجة ودرجة الحرارة الفعلية 60 درجة ، يكون الخطأ 5 درجات (درجة الحرارة - نقطة الضبط)
  3. غيّر المروحة في الوقت المناسب بما يتناسب مع الخطأ (تؤدي الأخطاء الكبيرة إلى تغييرات كبيرة في سرعة المروحة ، وتتسبب الأخطاء الصغيرة في تغييرات طفيفة في سرعة المروحة).
  4. اضبط المروحة وفقًا للقيم السابقة (تكامل / مجموع جميع الأخطاء السابقة)
  5. اختياريًا ، يمكنك ضبط سرعة المروحة بناءً على معدل تغيير الخطأ (مشتق) لكننا لن نفعل ذلك هنا

الآن بعد أن أصبح لديك النظرية ، قم بتشغيل الكود أدناه في Thonny IDE (أو بعض بيئة تطوير Python الأخرى). غيّر قيمة "الهدف" في الكود أدناه لتغيير نوع التربة الذي تريد الاحتفاظ به في Pi. لقد قمت بتعيين المصطلحات "P" و "أنا" على قيم عشوائية إلى حد ما. لا تتردد في تعديلها إذا لم تعمل من أجلك. جعل "P" أكبر يعني أن وحدة التحكم ستستجيب بسرعة للأخطاء الجديدة (ولكنها قد لا تكون مستقرة). سيؤدي تغيير "أنا" إلى وزن وحدة التحكم في استجابتها للقيم السابقة. لن أحاول جعل هذه المصطلحات كبيرة جدًا لأن التغيير السريع لسرعة المروحة لن يغير درجة الحرارة بسرعة. أيضًا ، إذا كنت تقوم بعمل شاق بشكل لا يصدق على Pi الخاص بك ، فقد لا تحقق درجة الحرارة المطلوبة (لا تزال حدود المروحة سارية).

من fanShim استيراد FanShim

من وقت استيراد السكون واستيراد نظام التشغيل للوقت # إرجاع درجة حرارة وحدة المعالجة المركزية كسلسلة أحرف تعريف getCPUtemperature (): res = os.popen ('vcgencmd Meas_temp'). readline () return (res.replace ("temp ="، " ").replace (" 'C / n "،" ")) fanshim = FanShim () الهدف = 55 # درجة الحرارة المرغوبة (العب بهذا وانظر ما سيحدث) الفترة = 1 # فترة PWM على =.1 # بدء إلى 0 ٪ إيقاف دورة العمل = فترة التشغيل # التهيئة إلى 0 ٪ دورة العمل P =.01 # مصطلح الربح النسبي (العب مع هذا وانظر ما يحدث) intErr = 0 # خطأ لا يتجزأ I =.0001 # مصطلح كسب intergral (العب بهذا وانظر ماذا يحدث) بينما صحيح: # الحصول على درجة الحرارة الحرارية = int (float (getCPUtemperature ())) # حساب الخطأ والخطأ السلس = temp-target # حساب صحيح خطأ وتقييده 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 the fanshim pin if on == period: fanshim.set_fan (True) sleep (on) else: fanshim.set_fan (True) s leep (on) fanshim.set_fan (خطأ) النوم (إيقاف)

الخطوة 3: قم بتشغيل Control Script عند بدء التشغيل

قم بتشغيل Control Script عند بدء التشغيل
قم بتشغيل Control Script عند بدء التشغيل

يمكنك تشغيل هذا البرنامج النصي في كل مرة تبدأ فيها pi أو يمكنك تشغيله تلقائيًا عند إعادة التشغيل. هذا أمر بسيط للغاية للقيام به مع crontab.

  1. افتح المحطة
  2. اكتب crontab-e في الجهاز
  3. أضف السطر التالي من التعليمات البرمجية إلى الملف "reboot python /home/pi/bootScripts/fanControl.py &"
  4. الخروج وإعادة التشغيل

لقد وضعت البرنامج النصي (fanControl.py) في floder يسمى bootScripts ولكن يمكنك وضعه في أي مكان فقط تأكد من تحديد المسار الصحيح في crontab.

كله تمام! الآن ستتحكم مروحتك في درجة حرارة وحدة المعالجة المركزية الخاصة بك إلى قيمة محددة ، مع تقليل الضوضاء المسموعة التي تصدرها.

موصى به: