جدول المحتويات:
- اللوازم
- الخطوة 1: قم بإعداد المروحة الخاصة بك
- الخطوة 2: إنشاء وحدة تحكم PI (D)
- الخطوة 3: قم بتشغيل Control Script عند بدء التشغيل
فيديو: تحكم دقيق في درجة الحرارة على Raspberry Pi 4: 3 Steps
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:37
يعتبر 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)
وحدة التحكم بالمشتقات التكاملية المتناسبة (PID) هي نظام يستخدم للتحكم في قيمة عملية معينة (درجة حرارة وحدة المعالجة المركزية) عن طريق معالجة بعض الأجهزة المادية (سرعة المروحة). يمكننا معالجة "سرعة" وضوضاء المروحة من خلال تشغيلها وإيقافها بشكل دوري (تعديل موجة النبض). يحدد طول الوقت الذي يتم تشغيله فيه في فترة معينة (على سبيل المثال ثانية واحدة) مدى سرعة ومدى ارتفاع صوت المروحة (900 مللي ثانية = عالي وسريع ، 100 مللي ثانية = هادئ وبطيء). سنستخدم PID للتلاعب بسرعة المروحة وبالتالي التحكم في درجة الحرارة.
يمكننا تقسيم استخدام معرف المنتج إلى عدد من الخطوات.
- حدد قيمة متغير العملية الذي تريد تحقيقه (مثل درجة حرارة وحدة المعالجة المركزية = 55). هذا يسمى نقطة الضبط الخاصة بك.
- احسب خطأ PID. إذا كانت نقطة الضبط 55 درجة ودرجة الحرارة الفعلية 60 درجة ، يكون الخطأ 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 عند بدء التشغيل
يمكنك تشغيل هذا البرنامج النصي في كل مرة تبدأ فيها pi أو يمكنك تشغيله تلقائيًا عند إعادة التشغيل. هذا أمر بسيط للغاية للقيام به مع crontab.
- افتح المحطة
- اكتب crontab-e في الجهاز
- أضف السطر التالي من التعليمات البرمجية إلى الملف "reboot python /home/pi/bootScripts/fanControl.py &"
- الخروج وإعادة التشغيل
لقد وضعت البرنامج النصي (fanControl.py) في floder يسمى bootScripts ولكن يمكنك وضعه في أي مكان فقط تأكد من تحديد المسار الصحيح في crontab.
كله تمام! الآن ستتحكم مروحتك في درجة حرارة وحدة المعالجة المركزية الخاصة بك إلى قيمة محددة ، مع تقليل الضوضاء المسموعة التي تصدرها.
موصى به:
كيفية عمل وحدة تحكم أوتوماتيكية في درجة الحرارة والرطوبة من Arduino: 3 خطوات
كيفية جعل وحدة التحكم في درجة الحرارة والرطوبة من Arduino تلقائية: 1
ESP8266 مراقبة درجة حرارة Nodemcu باستخدام DHT11 على خادم ويب محلي - احصل على درجة حرارة الغرفة ورطوبتها على متصفحك: 6 خطوات
ESP8266 مراقبة درجة حرارة Nodemcu باستخدام DHT11 على خادم ويب محلي | احصل على درجة حرارة الغرفة ورطوبتها على متصفحك: مرحبًا يا شباب اليوم سنصنع الرطوبة & amp؛ نظام مراقبة درجة الحرارة باستخدام ESP 8266 NODEMCU & amp؛ جهاز استشعار درجة الحرارة DHT11. سيتم الحصول على درجة الحرارة والرطوبة من مستشعر DHT11 & amp؛ يمكن رؤيته على متصفح أي صفحة ويب ستتم إدارتها
قراءة درجة الحرارة باستخدام مستشعر درجة الحرارة LM35 مع Arduino Uno: 4 خطوات
قراءة درجة الحرارة باستخدام مستشعر درجة الحرارة LM35 مع Arduino Uno: مرحبًا يا رفاق في هذه التعليمات ، سوف نتعلم كيفية استخدام LM35 مع Arduino. Lm35 هو مستشعر لدرجة الحرارة يمكنه قراءة قيم درجة الحرارة من -55 درجة مئوية إلى 150 درجة مئوية. إنه جهاز ثلاثي الأطراف يوفر جهدًا تناظريًا يتناسب مع درجة الحرارة. عالية
جهاز مراقبة الطقس ESP32 Based M5Stack M5stick C مع DHT11 - مراقبة درجة الحرارة والرطوبة ومؤشر الحرارة على M5stick-C مع DHT11: 6 خطوات
جهاز مراقبة الطقس ESP32 Based M5Stack M5stick C مع DHT11 | مراقبة درجة الحرارة والرطوبة ومؤشر الحرارة على M5stick-C مع DHT11: مرحبًا يا رفاق ، في هذه التعليمات سوف نتعلم كيفية واجهة مستشعر درجة حرارة DHT11 مع m5stick-C (لوحة تطوير بواسطة m5stack) وعرضها على شاشة m5stick-C. لذلك في هذا البرنامج التعليمي سوف نقرأ درجة الحرارة والرطوبة وأمبير. الحرارة أنا
ميزان حرارة للطهي بمسبار درجة الحرارة ESP32 NTP مع تصحيح Steinhart-Hart وإنذار درجة الحرارة: 7 خطوات (بالصور)
ميزان حرارة للطهي بمسبار درجة الحرارة ESP32 NTP مع تصحيح Steinhart-Hart وإنذار درجة الحرارة: لا يزال في رحلة لإكمال & quot؛ المشروع القادم & quot ؛، & quot؛ ESP32 NTP ميزان حرارة للطهي بمسبار درجة الحرارة مع تصحيح Steinhart-Hart وإنذار درجة الحرارة & quot؛ هو Instructable يوضح كيف يمكنني إضافة مسبار درجة حرارة NTP ، بيزو ب